[PATCH v2 0/5] perf/x86/uncore: Overflow handling enhancements
From: Sandipan Das
Date: Thu Apr 17 2025 - 23:43:36 EST
Uncore counters on AMD processors either roll over or saturate on
overflow and the amd-uncore driver has no way of knowing if multiple
overflows have occurred between two successive pmu->read() requests for
an event. This makes the user-visible counter values inaccurate. Solve
this by periodically initiating pmu->read() in order to keep prev_count
up-to-date. The approach follows Intel's precedent in handling uncore
counters.
Previous versions can be found at:
v1: https://lore.kernel.org/all/cover.1744184837.git.sandipan.das@xxxxxxx/
Changes in v2:
- Add a Fixes tag for the first patch.
- Change the hrtimer mode for both the Intel and the AMD uncore drivers
based on Peter's suggestion.
- Fix an issue in the UMC workaround where prev_count is not zeroed out
after a counter is reset.
Sandipan Das (5):
perf/x86/amd/uncore: Remove unused member from amd_uncore_ctx
perf/x86/intel/uncore: Use HRTIMER_MODE_HARD for detecting overflows
perf/x86/amd/uncore: Use hrtimer for handling overflows
perf/x86/amd/uncore: Add parameter to configure hrtimer
perf/x86/amd/uncore: Prevent UMC counters from saturating
arch/x86/events/amd/uncore.c | 103 ++++++++++++++++++++++++++++++++-
arch/x86/events/intel/uncore.c | 12 +---
2 files changed, 103 insertions(+), 12 deletions(-)
--
2.43.0