From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0C4653806A1 for ; Thu, 11 Jun 2026 21:56:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.202 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781214998; cv=none; b=lRmK4BoTqpVChlrRbqc3/I0gL5cfxcQgAzMd6QOFB6vQn6VG6f8dE1aZvAM4iuunp/QS/84roYZwiH9vbcAxjFIEXVOwS4e09SyW5nMYqVXlm2O9lDXgTykuiYo9zXmFvIWvrOz1qjqMO36NjVuDfHZkFREOJTp/Yi1CFFtDJ6w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781214998; c=relaxed/simple; bh=8+AFBCqV50CvAzgL/OeyVKcvwuj1ZADaaBB8nMZQAJ0=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=R/urRzSVuF99wnbZ918T8ypnhEZN0F/3yP1XwEMBR8IWxJT4qTzDRbOopKhccFWMqxsltcYGCeZWxXvo/ANfX7V+ufWrVBmTrOem6B3Kf6ZFw7pyFcGOauZ28ZMvoaqh7ywvHjgPzwTbnDFYs+agDmTi+NRMMv0Vq0pL1cBNceE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--ctshao.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=JerskMXy; arc=none smtp.client-ip=209.85.210.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--ctshao.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="JerskMXy" Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-8422f987f2eso503249b3a.3 for ; Thu, 11 Jun 2026 14:56:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781214996; x=1781819796; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=G0lIB6DRyNVYwbBUxfsPqRD5ne6WkZNtjn+NqllxKh0=; b=JerskMXy3iZnW5aQod8QvwWHfFFVoDLtbRtGcfKcD0wg4ournZmwl1GSXmmoVRcwJt Su81GxR3eTNEc4+zKOy3Z2VvGpknidkJfC/7MzgrCSJLb3GnCyI7K8/2ckHKki8FZWBV 7ZVelNMOM9kiFDuIWY41UKtyDuMc1qMvlC4XnjgxYewLuiOIUKOFfZZzjgB2CWs9soTn P1oNW2t9/8uR4HM5PE1jNF8UpF/J2yD4yR4wkH6tlYPyIRjMhf146d9DUHAizZdxqZQh ebMmpUlHMI/C51T6CTPL5zOnfPLzW5yyjPg7LNTqXkXvZcaiO7jGLglChmvVyS4bsvc/ 0ALg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781214996; x=1781819796; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=G0lIB6DRyNVYwbBUxfsPqRD5ne6WkZNtjn+NqllxKh0=; b=DcIJWdOqthniIIsPU/qTlXtzNqn1v5rTST333gzP7Rw9k0lOPUMgUMHmPn1uFpbBGH lRZxKwl938DgEryk3m4iR8c4y01eeay/FBhBcEkhsHYolDEgnST005uc8rZPS45PV2KI 9JqLuqOb2QNdYiNpZ/VbfspGiVhz+fiTVosNCmVP/jGeVKTsZ6PZfphhmMrXY7G8DIeN tfnwsoyZT2o5mevbyt1kR0cAgq4nyRz7xALEXr6U7xj4fREnRlgAlKrSgYoeueBKemF9 cwoISyCFWsyOEPuSLSytqOPeAw1qhRPga6Af/oMUrFGFjGiUHH4UKeiMaRsgsht1drLk /SWg== X-Forwarded-Encrypted: i=1; AFNElJ9hXVCEEClPg1vADUxLY9ZEKOvck5yWgkqVmhzdN5iTICQlSpUT63X43VNEJNdT+Pp+Sv8Z+Higo2/L5xs=@vger.kernel.org X-Gm-Message-State: AOJu0YxFEPlG6d0huwMxrahVTdF1igkX9zY2mHUdw9/KE9QmKnuFfHzX sOjRBEMF0f4euB78gDB/hLzPvhQHmxT7yqd2ADuPCX6IpE+u6h7xem+u5A6c2VqjHC1ZvLwp0gW yEyYHwg== X-Received: from pfbk12.prod.google.com ([2002:a05:6a00:b00c:b0:82f:d8c0:fef8]) (user=ctshao job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3ccc:b0:83e:2c38:f5d5 with SMTP id d2e1a72fcca58-84336a8c7a3mr5110885b3a.28.1781214996216; Thu, 11 Jun 2026 14:56:36 -0700 (PDT) Date: Thu, 11 Jun 2026 14:56:32 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.54.0.1136.gdb2ca164c4-goog Message-ID: <20260611215632.562900-1-ctshao@google.com> Subject: [PATCH v2] perf stat: Fix false NMI watchdog warning in aggregation modes From: Chun-Tse Shao To: acme@kernel.org, namhyung@kernel.org Cc: irogers@google.com, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Chun-Tse Shao Content-Type: text/plain; charset="UTF-8" In aggregation modes (e.g. --per-socket, --per-die, etc.), a counter might not be scheduled or counted on specific aggregate groups if it was not assigned to the CPUs belonging to those groups. However, the printout() check triggers the "print_free_counters_hint" logic unconditionally for any supported counter with a missing count. This results in a false "Some events weren't counted. Try disabling the NMI watchdog" warning. Furthermore, the NMI watchdog only reserves performance counters on core PMUs. Uncore PMU events (e.g. CHA, IMC) are not affected by the NMI watchdog, but their failures also falsely triggered this warning. This warning was originally introduced in commit 02d492e5dcb7 ("perf stat: Issue a HW watchdog disable hint"). To fix this, restrict setting of print_free_counters_hint to only trigger for core PMU events by checking counter->pmu and counter->pmu->is_core. Example before/after: $ perf stat -M lpm_miss_lat --metric-only --per-socket -a -- sleep 1 Before: Performance counter stats for 'system wide': ns lpm_miss_lat_rem ns lpm_miss_lat_loc S0 126 202.3 207.9 S1 126 231.9 259.3 1.006029831 seconds time elapsed Some events weren't counted. Try disabling the NMI watchdog: echo 0 > /proc/sys/kernel/nmi_watchdog perf stat ... echo 1 > /proc/sys/kernel/nmi_watchdog After: Performance counter stats for 'system wide': ns lpm_miss_lat_rem ns lpm_miss_lat_loc S0 126 202.3 207.9 S1 126 231.9 259.3 1.006029831 seconds time elapsed Assisted-by: Gemini:gemini-next Signed-off-by: Chun-Tse Shao --- tools/perf/util/stat-display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c index 2b69d238858c..0a5750bb59fa 100644 --- a/tools/perf/util/stat-display.c +++ b/tools/perf/util/stat-display.c @@ -821,9 +821,9 @@ static void printout(struct perf_stat_config *config, struct outstate *os, ok = false; if (counter->supported) { - if (!evlist__has_hybrid_pmus(counter->evlist)) { + if (!evlist__has_hybrid_pmus(counter->evlist) && + counter->pmu && counter->pmu->is_core) config->print_free_counters_hint = 1; - } } } -- 2.54.0.1136.gdb2ca164c4-goog