[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251231224233.113839-1-zide.chen@intel.com>
Date: Wed, 31 Dec 2025 14:42:17 -0800
From: Zide Chen <zide.chen@...el.com>
To: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Ian Rogers <irogers@...gle.com>,
Adrian Hunter <adrian.hunter@...el.com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Andi Kleen <ak@...ux.intel.com>,
Eranian Stephane <eranian@...gle.com>
Cc: linux-kernel@...r.kernel.org,
linux-perf-users@...r.kernel.org,
Dapeng Mi <dapeng1.mi@...ux.intel.com>,
Zide Chen <zide.chen@...el.com>,
Xudong Hao <xudong.hao@...el.com>,
Falcon Thomas <thomas.falcon@...el.com>
Subject: [PATCH V2 00/13] Add DMR/NVL and missing PTL uncore support
Similar to Sapphire Rapids, Diamond Rapids (DMR) relies on discovery
tables for uncore enumeration. Key differences and additions include:
- DMR may have two Integrated I/O and Memory Hub (IMH) dies, separate
from the compute tile (CBB) dies. Each CBB and each IMH die has its
own discovery domain.
- Unlike prior CPUs that retrieve the global discovery table portal
exclusively via PCI or MSR, DMR uses PCI for IMH PMON discovery and
MSR for CBB PMON discovery.
- DMR introduces several new PMON types: SCA, HAMVF, D2D_ULA, UBR,
PCIE4, CRS, CPC, ITC, OTC, CMS, and PCIE6.
- IIO free-running counters in DMR are MMIO-based, unlike SPR.
The uncore driver currently does not clear the freeze_all bit in the
Global Control Register. On platforms where it is set at power-on,
some units may not be enabled if they lack a per-unit enable bit.
Patch series overview:
- Patch 1–3, 7, 9: Cleanup or preparatory patches
- Patch 4–6, 8, 10–11: DMR uncore support
- Patch 12: Add missing PTL PMON units
- Patch 13: NVL uncore support
V2:
- Introduce struct uncore_discovery_domain[] to allow multiple
discovery base, and each could be either an MSR or a PCI device.
- Add global_init() callback.
- Add missing format_attr_umask in dmr_imc_uncore_formats_attr[].
- Address Dapeng’s comments.
- Add new patches for PTL and NVL uncore support.
V1: https://lore.kernel.org/linux-perf-users/20251212210007.13986-1-zide.chen@intel.com/
Zide Chen (13):
perf/x86/intel/uncore: Move uncore discovery init struct to header
perf/x86/intel/uncore: Support per-platform discovery base devices
perf/x86/intel/uncore: Remove has_generic_discovery_table()
perf/x86/intel/uncore: Add IMH PMON support for Diamond Rapids
perf/x86/intel/uncore: Add CBB PMON support for Diamond Rapids
perf/x86/intel/uncore: Add domain global init callback
perf/x86/intel/uncore: Add freerunning event descriptor helper macro
perf/x86/intel/uncore: Support IIO free-running counters on DMR
perf/x86/intel/uncore: Support uncore constraint ranges
perf/x86/intel/uncore: Update DMR uncore constraints preliminarily
perf pmu: Relax uncore wildcard matching to allow numeric suffix
perf/x86/intel/uncore: Add missing PMON units for Panther Lake
perf/x86/intel/uncore: Add Nova Lake support
arch/x86/events/intel/uncore.c | 142 +++--
arch/x86/events/intel/uncore.h | 26 +
arch/x86/events/intel/uncore_discovery.c | 78 ++-
arch/x86/events/intel/uncore_discovery.h | 8 +-
arch/x86/events/intel/uncore_snb.c | 85 +++
arch/x86/events/intel/uncore_snbep.c | 690 ++++++++++++++++-------
tools/perf/util/pmu.c | 14 +-
7 files changed, 735 insertions(+), 308 deletions(-)
--
2.52.0
Powered by blists - more mailing lists