All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mi, Dapeng" <dapeng1.mi@linux.intel.com>
To: Zide Chen <zide.chen@intel.com>,
	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,
	Xudong Hao <xudong.hao@intel.com>,
	Falcon Thomas <thomas.falcon@intel.com>
Subject: Re: [PATCH V2 13/13] perf/x86/intel/uncore: Add Nova Lake support
Date: Sun, 4 Jan 2026 10:51:20 +0800	[thread overview]
Message-ID: <469b889f-2497-420e-98ff-b6575d6c5643@linux.intel.com> (raw)
In-Reply-To: <20251231224233.113839-14-zide.chen@intel.com>


On 1/1/2026 6:42 AM, Zide Chen wrote:
> Nova Lake uncore PMON largely follows Panther Lake and supports CBOX,
> iMC, cNCU, SANTA, sNCU, and HBO units.
>
> As with Panther Lake, CBOX, cNCU, and SANTA are not enumerated via
> discovery tables.  Their programming model matches Panther Lake, with
> differences limited to MSR addresses and the number of boxes or counters
> per box.
>
> The remaining units are enumerated via discovery tables using a new
> base MSR (0x711) and otherwise reuse the Panther Lake implementation.
> Nova Lake also supports iMC free-running counters.
>
> Signed-off-by: Zide Chen <zide.chen@intel.com>
> ---
> V2: new patch
>
>  arch/x86/events/intel/uncore.c           |  9 ++++++
>  arch/x86/events/intel/uncore.h           |  1 +
>  arch/x86/events/intel/uncore_discovery.h |  2 ++
>  arch/x86/events/intel/uncore_snb.c       | 40 ++++++++++++++++++++++++
>  4 files changed, 52 insertions(+)
>
> diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
> index 07a9a2826398..2607bf178658 100644
> --- a/arch/x86/events/intel/uncore.c
> +++ b/arch/x86/events/intel/uncore.c
> @@ -1817,6 +1817,13 @@ static const struct uncore_plat_init ptl_uncore_init __initconst = {
>  	.domain[0].global_init = uncore_mmio_global_init,
>  };
>  
> +static const struct uncore_plat_init nvl_uncore_init __initconst = {
> +	.cpu_init = nvl_uncore_cpu_init,
> +	.mmio_init = ptl_uncore_mmio_init,
> +	.domain[0].discovery_base = PACKAGE_UNCORE_DISCOVERY_MSR,
> +	.domain[0].global_init = uncore_mmio_global_init,
> +};
> +
>  static const struct uncore_plat_init icx_uncore_init __initconst = {
>  	.cpu_init = icx_uncore_cpu_init,
>  	.pci_init = icx_uncore_pci_init,
> @@ -1916,6 +1923,8 @@ static const struct x86_cpu_id intel_uncore_match[] __initconst = {
>  	X86_MATCH_VFM(INTEL_LUNARLAKE_M,	&lnl_uncore_init),
>  	X86_MATCH_VFM(INTEL_PANTHERLAKE_L,	&ptl_uncore_init),
>  	X86_MATCH_VFM(INTEL_WILDCATLAKE_L,	&ptl_uncore_init),
> +	X86_MATCH_VFM(INTEL_NOVALAKE,		&nvl_uncore_init),
> +	X86_MATCH_VFM(INTEL_NOVALAKE_L,		&nvl_uncore_init),
>  	X86_MATCH_VFM(INTEL_SAPPHIRERAPIDS_X,	&spr_uncore_init),
>  	X86_MATCH_VFM(INTEL_EMERALDRAPIDS_X,	&spr_uncore_init),
>  	X86_MATCH_VFM(INTEL_GRANITERAPIDS_X,	&gnr_uncore_init),
> diff --git a/arch/x86/events/intel/uncore.h b/arch/x86/events/intel/uncore.h
> index 564cb26c4468..c35918c01afa 100644
> --- a/arch/x86/events/intel/uncore.h
> +++ b/arch/x86/events/intel/uncore.h
> @@ -636,6 +636,7 @@ void adl_uncore_cpu_init(void);
>  void lnl_uncore_cpu_init(void);
>  void mtl_uncore_cpu_init(void);
>  void ptl_uncore_cpu_init(void);
> +void nvl_uncore_cpu_init(void);
>  void tgl_uncore_mmio_init(void);
>  void tgl_l_uncore_mmio_init(void);
>  void adl_uncore_mmio_init(void);
> diff --git a/arch/x86/events/intel/uncore_discovery.h b/arch/x86/events/intel/uncore_discovery.h
> index 63b8f7634e42..e1330342b92e 100644
> --- a/arch/x86/events/intel/uncore_discovery.h
> +++ b/arch/x86/events/intel/uncore_discovery.h
> @@ -4,6 +4,8 @@
>  #define UNCORE_DISCOVERY_MSR			0x201e
>  /* Base address of uncore perfmon discovery table for CBB domain */
>  #define CBB_UNCORE_DISCOVERY_MSR		0x710
> +/* Base address of uncore perfmon discovery table for the package */
> +#define PACKAGE_UNCORE_DISCOVERY_MSR		0x711
>  
>  /* Generic device ID of a discovery table device */
>  #define UNCORE_DISCOVERY_TABLE_DEVICE		0x09a7
> diff --git a/arch/x86/events/intel/uncore_snb.c b/arch/x86/events/intel/uncore_snb.c
> index c663b00b68fe..e8e44741200e 100644
> --- a/arch/x86/events/intel/uncore_snb.c
> +++ b/arch/x86/events/intel/uncore_snb.c
> @@ -256,6 +256,19 @@
>  /* PTL cNCU register */
>  #define PTL_UNC_CNCU_MSR_OFFSET			0x140
>  
> +/* NVL cNCU register */
> +#define NVL_UNC_CNCU_BOX_CTL			0x202e
> +#define NVL_UNC_CNCU_FIXED_CTR			0x2028
> +#define NVL_UNC_CNCU_FIXED_CTRL			0x2022
> +
> +/* NVL SANTA register */
> +#define NVL_UNC_SANTA_CTR0			0x2048
> +#define NVL_UNC_SANTA_CTRL0			0x2042
> +
> +/* NVL CBOX register */
> +#define NVL_UNC_CBOX_PER_CTR0			0x2108
> +#define NVL_UNC_CBOX_PERFEVTSEL0		0x2102
> +
>  DEFINE_UNCORE_FORMAT_ATTR(event, event, "config:0-7");
>  DEFINE_UNCORE_FORMAT_ATTR(umask, umask, "config:8-15");
>  DEFINE_UNCORE_FORMAT_ATTR(chmask, chmask, "config:8-11");
> @@ -1979,3 +1992,30 @@ void ptl_uncore_cpu_init(void)
>  }
>  
>  /* end of Panther Lake uncore support */
> +
> +/* Nova Lake uncore support */
> +
> +static struct intel_uncore_type *nvl_msr_uncores[] = {
> +	&mtl_uncore_cbox,
> +	&ptl_uncore_santa,
> +	&mtl_uncore_cncu,
> +	NULL
> +};
> +
> +void nvl_uncore_cpu_init(void)
> +{
> +	mtl_uncore_cbox.num_boxes = 12;
> +	mtl_uncore_cbox.perf_ctr = NVL_UNC_CBOX_PER_CTR0,
> +	mtl_uncore_cbox.event_ctl = NVL_UNC_CBOX_PERFEVTSEL0,
> +
> +	ptl_uncore_santa.perf_ctr = NVL_UNC_SANTA_CTR0,
> +	ptl_uncore_santa.event_ctl = NVL_UNC_SANTA_CTRL0,
> +
> +	mtl_uncore_cncu.box_ctl = NVL_UNC_CNCU_BOX_CTL;
> +	mtl_uncore_cncu.fixed_ctr = NVL_UNC_CNCU_FIXED_CTR;
> +	mtl_uncore_cncu.fixed_ctl = NVL_UNC_CNCU_FIXED_CTRL;
> +
> +	uncore_msr_uncores = nvl_msr_uncores;
> +}
> +
> +/* end of Nova Lake uncore support */

Reviewed-by: Dapeng Mi <dapeng1.mi@linux.intel.com>



  reply	other threads:[~2026-01-04  2:51 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-31 22:42 [PATCH V2 00/13] Add DMR/NVL and missing PTL uncore support Zide Chen
2025-12-31 22:42 ` [PATCH V2 01/13] perf/x86/intel/uncore: Move uncore discovery init struct to header Zide Chen
2026-01-04  1:47   ` Mi, Dapeng
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 02/13] perf/x86/intel/uncore: Support per-platform discovery base devices Zide Chen
2026-01-04  2:00   ` Mi, Dapeng
2026-01-06 11:01   ` Peter Zijlstra
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 03/13] perf/x86/intel/uncore: Remove has_generic_discovery_table() Zide Chen
2026-01-04  2:03   ` Mi, Dapeng
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 04/13] perf/x86/intel/uncore: Add IMH PMON support for Diamond Rapids Zide Chen
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 05/13] perf/x86/intel/uncore: Add CBB " Zide Chen
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 06/13] perf/x86/intel/uncore: Add domain global init callback Zide Chen
2026-01-04  2:26   ` Mi, Dapeng
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 07/13] perf/x86/intel/uncore: Add freerunning event descriptor helper macro Zide Chen
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 08/13] perf/x86/intel/uncore: Support IIO free-running counters on DMR Zide Chen
2026-01-04  2:31   ` Mi, Dapeng
2026-02-06  0:26     ` Chun-Tse Shao
2026-02-06  5:51       ` Mi, Dapeng
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 09/13] perf/x86/intel/uncore: Support uncore constraint ranges Zide Chen
2026-01-04  2:36   ` Mi, Dapeng
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 10/13] perf/x86/intel/uncore: Update DMR uncore constraints preliminarily Zide Chen
2026-01-04  2:41   ` Mi, Dapeng
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 11/13] perf pmu: Relax uncore wildcard matching to allow numeric suffix Zide Chen
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2026-01-21  7:18   ` [PATCH V2 11/13] " Ian Rogers
2026-01-21  8:02     ` Mi, Dapeng
2026-01-21 14:33       ` Ian Rogers
2026-01-21 18:19         ` Ian Rogers
2026-01-21 19:03           ` Chen, Zide
2026-01-22  2:09             ` Mi, Dapeng
2026-01-22  7:10               ` Ian Rogers
2026-02-03 23:33                 ` Ian Rogers
2026-02-04 21:34                   ` Namhyung Kim
2025-12-31 22:42 ` [PATCH V2 12/13] perf/x86/intel/uncore: Add missing PMON units for Panther Lake Zide Chen
2026-01-04  2:48   ` Mi, Dapeng
2026-01-04  2:49   ` Mi, Dapeng
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2025-12-31 22:42 ` [PATCH V2 13/13] perf/x86/intel/uncore: Add Nova Lake support Zide Chen
2026-01-04  2:51   ` Mi, Dapeng [this message]
2026-01-12  8:03   ` [tip: perf/core] " tip-bot2 for Zide Chen
2026-01-06 15:08 ` [PATCH V2 00/13] Add DMR/NVL and missing PTL uncore support Peter Zijlstra
2026-01-06 21:19   ` Chen, Zide

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=469b889f-2497-420e-98ff-b6575d6c5643@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=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.