All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Luck, Tony" <tony.luck@intel.com>
To: Reinette Chatre <reinette.chatre@intel.com>
Cc: Fenghua Yu <fenghuay@nvidia.com>,
	Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>,
	Peter Newman <peternewman@google.com>,
	James Morse <james.morse@arm.com>,
	Babu Moger <babu.moger@amd.com>,
	"Drew Fustini" <dfustini@baylibre.com>,
	Dave Martin <Dave.Martin@arm.com>, Chen Yu <yu.c.chen@intel.com>,
	David E Box <david.e.box@intel.com>, <x86@kernel.org>,
	Christoph Hellwig <hch@infradead.org>,
	<linux-kernel@vger.kernel.org>, <patches@lists.linux.dev>
Subject: Re: [PATCH v9 06/12] arm,x86,fs/resctrl: Handle change in number of RMIDs on each mount
Date: Tue, 14 Jul 2026 10:50:49 -0700	[thread overview]
Message-ID: <alZ2-eJ3yXWHVelp@agluck-desk3> (raw)
In-Reply-To: <cbbf71f2-06a0-4833-a7b3-b8c6df440e93@intel.com>

On Tue, Jul 14, 2026 at 09:45:04AM -0700, Reinette Chatre wrote:
> Hi Tony,

... trimming to open issue ...

> >> How much to rely on CPUID is not clear to me. The direction seems to
> >> be to move away from CPUID, which makes adding new CPUID dependencies
> >> less ideal? 

Where is this direction to move away from CPUID coming from?

> > Here's my current work-in-progress version:
> > 
> > u32 resctrl_arch_system_max_rmid_idx(void)
> > {
> > 	struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_L3].r_resctrl;
> > 	u32 ret;
> > 
> > 	/* CPUID provides maximum possible RMID value */
> > 	ret = cpuid_ebx(0xf) + 1;
> 
> There is also boot_cpu_data.x86_cache_max_rmid initialized in resctrl_cpu_detect() that
> could be used directly? Looks like resctrl_cpu_detect() already scales the number of
> RMID down if needed when L3 monitoring is supported, but it does not take SNC into account.

I looked at that, but rejected it because it isn't adjusted for SNC.

> 
> > 
> > 	/*
> > 	 * if system is capable of L3 monitoring the maximum RMID value may
> > 	 * be lower that system maximum. Either because the L3 monitoring
> > 	 * feature supports fewer RMIDs (CPUID(0xF, 0x1).ECX), or because SNC
> > 	 * (Sub-NUMA Cluster) is enabled and divides RMIDs per cluster.
> > 	 */
> > 	if (r->mon_capable)
> > 		ret = r->mon.num_rmid;
> > 
> > 	return ret;
> > }
> > 
> > CPUID seems unavoidable in the case that the platform doesn't support
> > (or has disabled the various L3 monitoring events). In that case using
> 
> Since L3 monitoring is the only CPUID supported monitoring resource I do not
> think cpuid_ebx(0xf) can be used if the platform does not support L3 monitoring.
> I expect that would mean that leaf 0x7 would indicate that monitoring is
> not supported which would make leaf 0xf invalid? Interestingly resctrl does
> not seem to consider X86_FEATURE_CQM from leaf 0x7 at all and just goes straight
> to leaf 0xf.

I disagree. The definition of IA32_PQR_ASSOC says:

1) The MSR exists if either of CPUID.07H.00H:EBX[12] or CPUID.07H.00H:EBX[15] is set
   (in this case bit 12 for monitoring, It does appear to be a bug that resctrl is
   not checking bit 12 before looking at leaf 0xF).

2) The supported width of the RMID field is Ceil(Log2 (CPUID.0FH.00H:EBX[31:0] +1))

So I believe that a theoretical system that supported AET (or some other
monitoring) but didn't support L3 monitoring, would have to set CPUID.07H.00H:EBX[12]
and provide the max RMID value in CPUID.0FH.00H:EBX[31:0].

For resctrl we have the practical case of booting with "rdt=!cmt,!mbmtotal,!mbmlocal"
to software disable all L3 monitoring.

-Tony

  reply	other threads:[~2026-07-14 17:51 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-01 21:35 [PATCH v9 00/12] Allow AET to use PMT as loadable module Tony Luck
2026-07-01 21:35 ` [PATCH v9 01/12] platform/x86/intel/{pmt,vsec}: Prevent unbind via sysfs Tony Luck
2026-07-08 22:45   ` Reinette Chatre
2026-07-09 17:41     ` Luck, Tony
2026-07-09 20:48       ` Reinette Chatre
2026-07-09 21:12         ` Luck, Tony
2026-07-10 17:01           ` Luck, Tony
2026-07-10 20:24             ` Luck, Tony
2026-07-01 21:35 ` [PATCH v9 02/12] fs/resctrl: Remove redundant calls to resctrl_arch_mon_capable() Tony Luck
2026-07-01 21:35 ` [PATCH v9 03/12] x86/resctrl: Honor rdt=perf option to force enable AET perf events Tony Luck
2026-07-08 22:46   ` Reinette Chatre
2026-07-10 20:29     ` Luck, Tony
2026-07-01 21:35 ` [PATCH v9 04/12] fs/resctrl: Add interface to disable a monitor event Tony Luck
2026-07-01 21:35 ` [PATCH v9 05/12] x86/resctrl: Drop global 'rdt_mon_capable' flag Tony Luck
2026-07-08 22:47   ` Reinette Chatre
2026-07-10 20:31     ` Luck, Tony
2026-07-01 21:35 ` [PATCH v9 06/12] arm,x86,fs/resctrl: Handle change in number of RMIDs on each mount Tony Luck
2026-07-08 22:50   ` Reinette Chatre
2026-07-10 20:51     ` Luck, Tony
2026-07-14 15:18       ` Reinette Chatre
2026-07-14 16:01         ` Luck, Tony
2026-07-14 16:45           ` Reinette Chatre
2026-07-14 17:50             ` Luck, Tony [this message]
2026-07-14 18:16               ` Reinette Chatre
2026-07-14 20:28                 ` Luck, Tony
2026-07-14 21:07                   ` Reinette Chatre
2026-07-14 22:14                     ` Luck, Tony
2026-07-01 21:35 ` [PATCH v9 07/12] x86/resctrl: Add PMT registration API for AET enumeration callbacks Tony Luck
2026-07-08 22:51   ` Reinette Chatre
2026-07-10 20:54     ` Luck, Tony
2026-07-14 15:18       ` Reinette Chatre
2026-07-14 15:41         ` Luck, Tony
2026-07-01 21:35 ` [PATCH v9 08/12] platform/x86/intel/pmt: Register enumeration functions with resctrl Tony Luck
2026-07-01 21:35 ` [PATCH v9 09/12] arm,x86/resctrl: Resolve INTEL_PMT_TELEMETRY symbols at runtime Tony Luck
2026-07-08 22:52   ` Reinette Chatre
2026-07-10 20:59     ` Luck, Tony
2026-07-01 21:35 ` [PATCH v9 10/12] fs/resctrl: Call architecture hooks for every mount/unmount Tony Luck
2026-07-08 22:53   ` Reinette Chatre
2026-07-10 21:01     ` Luck, Tony
2026-07-01 21:35 ` [PATCH v9 11/12] x86/resctrl: Simplify Kconfig options for resctrl Tony Luck
2026-07-08 23:01   ` Reinette Chatre
2026-07-10 21:08     ` Luck, Tony
2026-07-01 21:35 ` [PATCH v9 12/12] Documentation/filesystems/resctrl: Document telemetry mount timing caveat Tony Luck

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=alZ2-eJ3yXWHVelp@agluck-desk3 \
    --to=tony.luck@intel.com \
    --cc=Dave.Martin@arm.com \
    --cc=babu.moger@amd.com \
    --cc=david.e.box@intel.com \
    --cc=dfustini@baylibre.com \
    --cc=fenghuay@nvidia.com \
    --cc=hch@infradead.org \
    --cc=james.morse@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maciej.wieczor-retman@intel.com \
    --cc=patches@lists.linux.dev \
    --cc=peternewman@google.com \
    --cc=reinette.chatre@intel.com \
    --cc=x86@kernel.org \
    --cc=yu.c.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.