From nobody Thu Apr 16 15:28:29 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fxMNY3s2fz6ZrF9 for ; Thu, 16 Apr 2026 15:28:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fxMNY1T6qz3Fqc for ; Thu, 16 Apr 2026 15:28:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776353309; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WGIYAot2eMmf84bLLBjUtXNowpVLeXeH1ETPh93h7Sc=; b=t24kE//hH+gelSwOLvzZSvhFQI1wt/+sK1lhMJx6YB25UJhLbMc+qq5RlAQaoksq7T9OO1 xr4EZXvWJ1GuTo8ugtbuWY5epzp/8xXTg6Q6JDI/esXrR4bhIH//saOCeHr5xqTDKf1ef8 dsA1cG9ZFJ6Of9ZHnWJxwuXg/G0zg348QtqfJJGdPldch8liOcqOk+dH5GTLGOk1yuE5P9 aLdqu6t+XbdjcRNkI4Vx9IcHBCtLCVGpq9+AJDVy8wq8IIvqag6sXZVoDQi24GdDyfbF7o 7SIzGHcQHMV1M0ssI5vBfIJSj40FbnkvZEzAD8PVYY3QqKRkOpYbLudvjBvXvA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776353309; a=rsa-sha256; cv=none; b=Y35SHzGh0mXDDxMANot7ja03ts4Jwvx8QtW7o6mhoyLLQNTF13s902ue6wJ8XvZJc0pw3y tcARHxYP8BhXlZ3pOeFrAtTnK+AXaWbKW31rwCLHYGWa9P2WzaH1BIYY9RNQ3aW88ksPZB 89r9CbXyCxFNseXIaMfjnXo3LOJBSiJZYTqfk0YHZF5fxMPbt2Nk49wSVVhf1UrjEXfJLK EAk9o3p4IVJDCk8TfUs6kuVmRiOARlsQtS0lf8dJBKHTyyugU3NhlOmmrGN9NBl/c2UwI/ kI+07lyuiHHFtMoUbjwtpzRMIGwSqH9X9BoVqIXMniYyUUdck/czigZpN0/L/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776353309; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WGIYAot2eMmf84bLLBjUtXNowpVLeXeH1ETPh93h7Sc=; b=E01UUsoNpUC2sbeP83JDrHsy7uP/+CYqjwXr1UqQjfr46PZ7X41Xq1nNthGZ5lO6wXmp2D WJyBVWS2IceaoaqW9oJP1oCy5NfJWQEk3NI5GtnzX531BMCiqNxxuqQHMwe39Jsyyh3R86 PPkflKDKnOlOsHFbyoTxehOmV+fiYW3NhZf6XD+5vfDICa3vTkrsfluuezbMFNZKNkEvxp S6+2TqI8w9fRUXoByiqRI6YZP9XcVI6vJ2kOWEX/PRuE7nB4pgdwmKXQiuHo4er4doAuS8 EqrZmVBgJOCSxgFMjY84iWDClShNGgSHZ4vsmO7lBUqDOoLS9oQsmuHzZrMy8g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fxMNY117Yz1CTd for ; Thu, 16 Apr 2026 15:28:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20236 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 16 Apr 2026 15:28:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Paulo Fragoso From: Mitchell Horne Subject: git: 290a7adfb1df - stable/15 - hwpmc: improve diagnostic messages for invalid tunables List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 290a7adfb1df0fb0e8ee4161cf002db929a10fc5 Auto-Submitted: auto-generated Date: Thu, 16 Apr 2026 15:28:29 +0000 Message-Id: <69e1001d.20236.25139544@gitrepo.freebsd.org> The branch stable/15 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=290a7adfb1df0fb0e8ee4161cf002db929a10fc5 commit 290a7adfb1df0fb0e8ee4161cf002db929a10fc5 Author: Paulo Fragoso AuthorDate: 2026-03-23 14:54:18 +0000 Commit: Mitchell Horne CommitDate: 2026-04-16 15:18:25 +0000 hwpmc: improve diagnostic messages for invalid tunables Replace printf() with log(LOG_WARNING, ...) in pmclog_initialize() so that tunable validation failures are visible in dmesg and /var/log/messages rather than only on the early console. Also improve the messages to report both the invalid value and the default it resets to, making it easier for users to understand why their tunable was ignored. While here, adjust some whitespacing/style. Reviewed by: Ali Mashtizadeh , mhorne MFC after: 1 week Sponsored by: NLINK (nlink.com.br) Differential Revision: https://reviews.freebsd.org/D56029 (cherry picked from commit b3a18736ec2fc2bd097995dedd8d09e79bcb2056) --- sys/dev/hwpmc/hwpmc_logging.c | 35 ++++++++++++++++++++++++++--------- sys/sys/pmc.h | 2 ++ 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_logging.c b/sys/dev/hwpmc/hwpmc_logging.c index 8fd7ef06a977..4f507523b6ab 100644 --- a/sys/dev/hwpmc/hwpmc_logging.c +++ b/sys/dev/hwpmc/hwpmc_logging.c @@ -58,6 +58,7 @@ #include #include #include +#include #if defined(__i386__) || defined(__amd64__) #include @@ -1236,24 +1237,39 @@ pmclog_initialize(void) struct pmclog_buffer *plb; int domain, ncpus, total; - if (pmclog_buffer_size <= 0 || pmclog_buffer_size > 16*1024) { - (void) printf("hwpmc: tunable logbuffersize=%d must be " - "greater than zero and less than or equal to 16MB.\n", - pmclog_buffer_size); + if (pmclog_buffer_size <= 0 || + pmclog_buffer_size > PMC_LOG_BUFFER_SIZE_MAX) { + log(LOG_WARNING, + "hwpmc: logbuffersize=%d must be greater than zero " + "and less than or equal to %d, resetting to %d\n", + pmclog_buffer_size, PMC_LOG_BUFFER_SIZE_MAX, + PMC_LOG_BUFFER_SIZE); + pmclog_buffer_size = PMC_LOG_BUFFER_SIZE; } if (pmc_nlogbuffers_pcpu <= 0) { - (void) printf("hwpmc: tunable nlogbuffers=%d must be greater " - "than zero.\n", pmc_nlogbuffers_pcpu); + log(LOG_WARNING, + "hwpmc: nbuffers_pcpu=%d must be greater than zero, " + "resetting to %d\n", + pmc_nlogbuffers_pcpu, PMC_NLOGBUFFERS_PCPU); + pmc_nlogbuffers_pcpu = PMC_NLOGBUFFERS_PCPU; } - if (pmc_nlogbuffers_pcpu*pmclog_buffer_size > 32*1024) { - (void) printf("hwpmc: memory allocated pcpu must be less than 32MB (is %dK).\n", - pmc_nlogbuffers_pcpu*pmclog_buffer_size); + + if (pmc_nlogbuffers_pcpu * pmclog_buffer_size > + PMC_NLOGBUFFERS_PCPU_MEM_MAX) { + log(LOG_WARNING, + "hwpmc: nbuffers_pcpu=%d * logbuffersize=%d exceeds " + "%dMB per CPU limit, resetting to defaults (%d * %d)\n", + pmc_nlogbuffers_pcpu, pmclog_buffer_size, + PMC_NLOGBUFFERS_PCPU_MEM_MAX / 1024, + PMC_NLOGBUFFERS_PCPU, PMC_LOG_BUFFER_SIZE); + pmc_nlogbuffers_pcpu = PMC_NLOGBUFFERS_PCPU; pmclog_buffer_size = PMC_LOG_BUFFER_SIZE; } + for (domain = 0; domain < vm_ndomains; domain++) { ncpus = pmc_dom_hdrs[domain]->pdbh_ncpus; total = ncpus * pmc_nlogbuffers_pcpu; @@ -1270,6 +1286,7 @@ pmclog_initialize(void) pmc_plb_rele_unlocked(plb); } } + mtx_init(&pmc_kthread_mtx, "pmc-kthread", "pmc-sleep", MTX_DEF); } diff --git a/sys/sys/pmc.h b/sys/sys/pmc.h index 12b8ddcb156f..69399ec24743 100644 --- a/sys/sys/pmc.h +++ b/sys/sys/pmc.h @@ -649,7 +649,9 @@ struct pmc_op_getdyneventinfo { #define PMC_HASH_SIZE 1024 #define PMC_MTXPOOL_SIZE 2048 #define PMC_LOG_BUFFER_SIZE 256 +#define PMC_LOG_BUFFER_SIZE_MAX (16 * 1024) #define PMC_NLOGBUFFERS_PCPU 32 +#define PMC_NLOGBUFFERS_PCPU_MEM_MAX (32 * 1024) #define PMC_NSAMPLES 256 #define PMC_CALLCHAIN_DEPTH 128 #define PMC_THREADLIST_MAX 128