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/12] perf/x86/intel: PEBS data-source fixes and OMR updates
Date: Thu, 17 Sep 2026 09:52:22 +0800 [thread overview]
Message-ID: <20260917015234.981153-1-dapeng1.mi@linux.intel.com> (raw)
This series fixes several recently identified PEBS data-source issues on
both P-cores and E-cores.
On the P-core side, some memory events that can not provide valid PEBS
data-source information, like MEM_INST_RETIRED.STLB_MISS_LOADS, are
marked as data-source capable, which can lead to incorrect decoding
results.
On the E-core side, MEM_UOPS_RETIRED.STORE_LATENCY event isn't set the
STORE direction flag, causing store operations to be decoded as loads.
The last three patches add support for precise OMR events and rename the
DMR/NVL sysfs attribute from offcore_rsp to offmodule_rsp so the
interface matches the underlying OMR events and avoids user confusion.
Patch layout:
- Patches 01-04: Fix E-core memory operation decoding.
- Patches 05-06: Remove events without valid PEBS data-source support
from the PEBS constraint tables.
- Patch 07: Fix two incorrect snoop-state decodings for Panther Cove.
- Patch 08: Remove dead code from NVL data-source initialization.
- Patch 09: Update Panther Cove event constraints.
- Patch 10: Add precise OMR event support for DMR/NVL.
- Patches 11-12: Rename the DMR/NVL offcore_rsp sysfs attribute to
offmodule_rsp.
Tests:
- Run below commands on ARL and PTL, data source can be correctly
parsed for both P-core and E-core.
P-core:
1. perf record -e cpu_core/MEM_TRANS_RETIRED.LOAD_LATENCY_GT_4/p -d \
-c 1000 -a -- sleep 1 && perf script -F data_src
output:
"10268100142 |OP LOAD|LVL L1 hit|SNP None|TLB L1 or L2 hit|LCK No|BLK N/A"
2. perf record -e cpu_core/MEM_TRANS_RETIRED.STORE_SAMPLE/p -d \
-c 1000 -a -- sleep 1 && perf script -F data_src
output:
"10268100144 |OP STORE|LVL L1 hit|SNP None|TLB L1 or L2 hit|LCK No|BLK N/A"
3. perf record -e cpu_core/MEM_INST_RETIRED.STLB_MISS_LOADS/p -d \
-c 1000 -a -- sleep 1 && perf script -F data_src
output:
"1e05080021 |OP N/A|LVL N/A|SNP N/A|TLB N/A|LCK N/A|BLK N/A"
E-core:
1. perf record -e \
cpu_atom/event=0xd0,umask=0x5,ldlat=0x4,name=MEM_UOPS_RETIRED.LOAD_LATENCY_GT_4/p \
-d -c 1000 -a -- sleep 1 && perf script -F data_src
output:
"10268100142 |OP LOAD|LVL L1 hit|SNP None|TLB L1 or L2 hit|LCK No|BLK N/A"
2. perf record -e \
cpu_atom/event=0xd0,umask=0x6,name=MEM_UOPS_RETIRED.STORE_LATENCY/p \
-d -c 1000 -a -- sleep 1 && perf script -F data_src
output:
"10668080084 |OP STORE|LVL L3 miss|SNP N/A|TLB L1 or L2 hit|LCK No|BLK N/A"
- Run below precise OMR events on PTL P-core, records can be captured
successfully.
1. perf record -e cpu_core/MEM_LOAD_L2_MISS_RETIRED.L3_HIT_SAME_CBB/p \
-c 1000 -a -- sleep 1
2. perf record -e cpu_core/MEM_STORE_L2_MISS_RETIRED.L2_OTHER_MODULE.SAME_CBB.HITM.SNP_FWD/p \
-c 1000 -a -- sleep 1
Dapeng Mi (12):
perf/x86/intel: Fix GRT PEBS load/store direction for latency events
perf/x86/intel: Fix CMT PEBS load/store direction for latency events
perf/x86/intel: Fix DKT PEBS load/store direction for latency events
perf/x86/intel: Update arw_latency_data() mem-op direction handling
perf/x86/intel: Remove incorrect LionCove PEBS data-source constraints
perf/x86/intel: Remove incorrect PantherCove PEBS data-source
constraints
perf/x86/intel: Correct Panther cove data source snoop states
perf/x86/intel: Delete dead NVL PEBS data-source init call
perf/x86/intel: Constrain PantherCove UOPS_DISPATCHED events
perf/x86/intel: Add precise OMR event support for DMR/NVL
perf/x86/intel: Rename DMR offcore_rsp attribute to offmodule_rsp
perf/x86/intel: Rename NVL offcore_rsp attribute to offmodule_rsp
arch/x86/events/intel/core.c | 55 ++++++++++++++++++++++++---
arch/x86/events/intel/ds.c | 74 +++++++++++++++++-------------------
arch/x86/events/perf_event.h | 4 --
3 files changed, 83 insertions(+), 50 deletions(-)
base-commit: 68aca309e49c589f1922f4c5af2370e4df093175
--
2.34.1
next reply other threads:[~2026-09-17 1:59 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-17 1:52 Dapeng Mi [this message]
2026-09-17 1:52 ` [PATCH 01/12] perf/x86/intel: Fix GRT PEBS load/store direction for latency events Dapeng Mi
2026-09-17 2:14 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 02/12] perf/x86/intel: Fix CMT " Dapeng Mi
2026-09-17 2:08 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 03/12] perf/x86/intel: Fix DKT " Dapeng Mi
2026-09-17 2:09 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 04/12] perf/x86/intel: Update arw_latency_data() mem-op direction handling Dapeng Mi
2026-09-17 2:21 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 05/12] perf/x86/intel: Remove incorrect LionCove PEBS data-source constraints Dapeng Mi
2026-09-17 2:10 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 06/12] perf/x86/intel: Remove incorrect PantherCove " Dapeng Mi
2026-09-17 2:10 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 07/12] perf/x86/intel: Correct Panther cove data source snoop states Dapeng Mi
2026-09-17 2:05 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 08/12] perf/x86/intel: Delete dead NVL PEBS data-source init call Dapeng Mi
2026-09-17 2:11 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 09/12] perf/x86/intel: Constrain PantherCove UOPS_DISPATCHED events Dapeng Mi
2026-09-17 2:03 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 10/12] perf/x86/intel: Add precise OMR event support for DMR/NVL Dapeng Mi
2026-09-17 2:11 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 11/12] perf/x86/intel: Rename DMR offcore_rsp attribute to offmodule_rsp Dapeng Mi
2026-09-17 2:11 ` sashiko-bot
2026-09-17 1:52 ` [PATCH 12/12] perf/x86/intel: Rename NVL " Dapeng Mi
2026-09-17 2:14 ` sashiko-bot
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=20260917015234.981153-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.