From: Dapeng Mi <dapeng1.mi@linux.intel.com>
To: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Andi Kleen <ak@linux.intel.com>,
Eranian Stephane <eranian@google.com>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Dapeng Mi <dapeng1.mi@intel.com>, Zide Chen <zide.chen@intel.com>,
Falcon Thomas <thomas.falcon@intel.com>,
Xudong Hao <xudong.hao@intel.com>,
Dapeng Mi <dapeng1.mi@linux.intel.com>
Subject: [PATCH 00/15] perf/x86: Fix sampling bugs and relax slots-event grouping
Date: Mon, 28 Sep 2026 15:42:54 +0800 [thread overview]
Message-ID: <20260928074309.898043-1-dapeng1.mi@linux.intel.com> (raw)
This series fixes several recently discovered sampling issues:
- a warning about a missing ctx->mutex hold during LBR counter event
initialization.
- PEBS sampling failures after CPU offline/online for both legacy PEBS
and arch-PEBS.
- invalid counts reported by non-PEBS ACR events in SAMPLE_READ mode.
- stale or incorrect counts reported by PEBS events without counter
snapshot support.
- incorrect event counts are seen when multiple PEBS events are active
in a group.
It also relaxes the slots-event restriction for topdown event groups:
the slots event no longer has to be the group leader, which makes
sampling for groups containing topdown metric events more flexible.
Patch layout:
- patch 01: fix the warning triggered by for_each_sibling_event() while
iterating LBR counter events.
- patches 02-04: fix PEBS sampling failures after CPU offline/online for
both legacy PEBS and arch-PEBS.
- patches 05-06: fix minor PEBS handler issues.
- patch 07: fix invalid counts reported by non-PEBS ACR events in
SAMPLE_READ mode.
- patch 08: fix stale counts reported by PEBS events without counter
snapshot support.
- patches 09-11: refactor PEBS handlers to remove duplicated code and
fix incorrect counts when multiple PEBS events are active in group.
- patch 12: make ACR static_call updates architectural to avoid
model-specific updates on every platform
- patch 13: add is_x86_event() checks before testing for
slots/topdown/mem-loads events
- patches 14-15: allow a slots event to be a non-group leader, making
sampling for groups containing topdown metric events more flexible.
Dapeng Mi (15):
perf/x86/intel: Guard leader sibling walk on nr_siblings
perf/x86/intel: Reset active_fixed_ctrl_val on CPU teardown
perf/x86/intel: Reset active_pebs_data_cfg on CPU teardown
perf/x86/intel: Reset cached acr_cfg_b[] and cfg_c_val[] on CPU
teardown
perf/x86/intel: Pass correct PEBS counter mask to no-drain update path
perf/x86/intel: Limit PEBS counter iteration to valid array bounds
perf/x86/intel: Reject SAMPLE_READ for no-counter-snapshot ACR events
perf/x86/intel: Fix stale PEBS count without counter-group support
perf/x86/intel: Refactor intel_pmu_drain_arch_pebs()
perf/x86/intel: Refactor intel_pmu_drain_pebs_icl()
perf/x86/intel: Fix invalid PEBS counts with counter-group support
perf/x86/intel: Make ACR static_call update architectural
perf/x86: Validate event type before topdown/mem-loads classification
perf/core: Add event_caps dependency flags
perf/x86/intel: Allow Topdown metrics with a non-leader slots event
arch/x86/events/intel/core.c | 216 +++++++++++++++++--
arch/x86/events/intel/ds.c | 390 ++++++++++++++++++++++++-----------
arch/x86/events/perf_event.h | 14 +-
include/linux/perf_event.h | 8 +
kernel/events/core.c | 52 ++++-
5 files changed, 535 insertions(+), 145 deletions(-)
base-commit: 6350de8671b94afb7691d110f63bcda42f658a69
--
2.34.1
next reply other threads:[~2026-09-28 7:50 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 7:42 Dapeng Mi [this message]
2026-09-28 7:42 ` [PATCH 01/15] perf/x86/intel: Guard leader sibling walk on nr_siblings Dapeng Mi
2026-09-28 8:00 ` sashiko-bot
2026-09-28 7:42 ` [PATCH 02/15] perf/x86/intel: Reset active_fixed_ctrl_val on CPU teardown Dapeng Mi
2026-09-28 8:02 ` sashiko-bot
2026-09-28 7:42 ` [PATCH 03/15] perf/x86/intel: Reset active_pebs_data_cfg " Dapeng Mi
2026-09-28 8:07 ` sashiko-bot
2026-09-28 7:42 ` [PATCH 04/15] perf/x86/intel: Reset cached acr_cfg_b[] and cfg_c_val[] " Dapeng Mi
2026-09-28 8:01 ` sashiko-bot
2026-09-28 7:42 ` [PATCH 05/15] perf/x86/intel: Pass correct PEBS counter mask to no-drain update path Dapeng Mi
2026-09-28 7:58 ` sashiko-bot
2026-09-28 7:43 ` [PATCH 06/15] perf/x86/intel: Limit PEBS counter iteration to valid array bounds Dapeng Mi
2026-09-28 8:00 ` sashiko-bot
2026-09-28 7:43 ` [PATCH 07/15] perf/x86/intel: Reject SAMPLE_READ for no-counter-snapshot ACR events Dapeng Mi
2026-09-28 8:04 ` sashiko-bot
2026-09-29 6:08 ` Mi, Dapeng
2026-09-29 19:02 ` Falcon, Thomas
2026-09-30 1:12 ` Mi, Dapeng
2026-09-28 7:43 ` [PATCH 08/15] perf/x86/intel: Fix stale PEBS count without counter-group support Dapeng Mi
2026-09-28 8:02 ` sashiko-bot
2026-09-28 7:43 ` [PATCH 09/15] perf/x86/intel: Refactor intel_pmu_drain_arch_pebs() Dapeng Mi
2026-09-28 7:57 ` sashiko-bot
2026-09-28 7:43 ` [PATCH 10/15] perf/x86/intel: Refactor intel_pmu_drain_pebs_icl() Dapeng Mi
2026-09-28 7:59 ` sashiko-bot
2026-09-28 7:43 ` [PATCH 11/15] perf/x86/intel: Fix invalid PEBS counts with counter-group support Dapeng Mi
2026-09-28 8:00 ` sashiko-bot
2026-09-28 7:43 ` [PATCH 12/15] perf/x86/intel: Make ACR static_call update architectural Dapeng Mi
2026-09-28 8:02 ` sashiko-bot
2026-09-28 7:43 ` [PATCH 13/15] perf/x86: Validate event type before topdown/mem-loads classification Dapeng Mi
2026-09-28 8:01 ` sashiko-bot
2026-09-28 7:43 ` [PATCH 14/15] perf/core: Add event_caps dependency flags Dapeng Mi
2026-09-28 8:05 ` sashiko-bot
2026-09-29 6:34 ` Mi, Dapeng
2026-09-28 7:43 ` [PATCH 15/15] perf/x86/intel: Allow Topdown metrics with a non-leader slots event Dapeng Mi
2026-09-28 8:12 ` sashiko-bot
2026-09-29 7:04 ` Mi, Dapeng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260928074309.898043-1-dapeng1.mi@linux.intel.com \
--to=dapeng1.mi@linux.intel.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=dapeng1.mi@intel.com \
--cc=eranian@google.com \
--cc=irogers@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=thomas.falcon@intel.com \
--cc=xudong.hao@intel.com \
--cc=zide.chen@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.