lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ