[Patch v2 0/4] perf/x86/intel: Fix several bugs of auto counter

Dapeng Mi
2026-04-20T02:50:09Z

Changes:
v1 -> v2:
- Clear stale mask for all events (Sashiko, Patch 1/4)
- Enable auto counter reload for DMR. (Patch 3/4)
- Remove duplicated CFG_C MSR value tracking. (Patch 4/4)

This small patch-set fixes 2 issues in auto counter reload support.
- The stale ACR mask is not cleared before setting a new one. Patch 1/2
fixes this issue.
- PMI is enabled by default for self-reloaded ACR events which causes
suspicious NMI warning. Patch 2/2 fixes this issue.

Besides an ACR unit test is added into perf tests which would be posted
in a separate session.

Tests:

Run below ACR sampling commands on CWF, DMR, PTL and NVL (hybrid
platforms), no issues are found.

a. Non-PEBS ACR sampling

perf record -e '{instructions/period=20000,acr_mask=0x2/u,cycles/period=40000,acr_mask=0x3/u}' ~/test

b. PEBS ACR sampling

perf record -e '{instructions/period=20000,acr_mask=0x2/pu,cycles/period=40000,acr_mask=0x3/u}' ~/test

History:
v1: https://lore.kernel.org/all/20260413010157.535990-1-dapeng1.mi@linux.intel.com/

Dapeng Mi (4):
perf/x86/intel: Clear stale ACR mask before updating new mask
perf/x86/intel: Disable PMI for self-reloaded ACR events
perf/x86/intel: Enable auto counter reload for DMR
perf/x86/intel: Consolidate MSR_IA32_PERF_CFG_C tracking

arch/x86/events/intel/core.c | 37 ++++++++++++++++++++++++++----------
arch/x86/events/perf_event.h | 14 +++++++++++---
2 files changed, 38 insertions(+), 13 deletions(-)

base-commit: 9805ed3c91478b08a586861b874bd8b6a2fed648
--
2.34.1