Linux Documentation
 help / color / mirror / Atom feed
From: "Moger, Babu" <bmoger@amd.com>
To: Reinette Chatre <reinette.chatre@intel.com>,
	Babu Moger <babu.moger@amd.com>,
	tony.luck@intel.com, bp@alien8.de, ben.horgan@arm.com
Cc: corbet@lwn.net, skhan@linuxfoundation.org, rdunlap@infradead.org,
	x86@kernel.org, Dave.Martin@arm.com, james.morse@arm.com,
	tglx@kernel.org, mingo@redhat.com, dave.hansen@linux.intel.com,
	hpa@zytor.com, fenghuay@nvidia.com, kas@kernel.org,
	rick.p.edgecombe@intel.com, akpm@linux-foundation.org,
	rppt@kernel.org, dapeng1.mi@linux.intel.com, elver@google.com,
	enelsonmoore@gmail.com, jlayton@kernel.org, kuba@kernel.org,
	ebiggers@kernel.org, seanjc@google.com, ewanhai-oc@zhaoxin.com,
	binbin.wu@linux.intel.com, peterz@infradead.org,
	ashish.kalra@amd.com, superm1@kernel.org,
	chang.seok.bae@intel.com, prathyushi.nangia@amd.com,
	kim.phillips@amd.com, ackerleytng@google.com,
	elena.reshetova@intel.com, naveen@kernel.org,
	darwi@linutronix.de, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-coco@lists.linux.dev,
	kvm@vger.kernel.org, eranian@google.com, peternewman@google.com
Subject: Re: [PATCH v6 06/18] fs/resctrl: Introduce kernel mode states for resctrl
Date: Fri, 16 Oct 2026 10:10:10 -0500	[thread overview]
Message-ID: <351da689-6f30-4f56-8f3b-ea62cc501d7e@amd.com> (raw)
In-Reply-To: <b2c67318-b52d-440d-bf40-fde40b47ae07@intel.com>

Hi Reinette,

On 10/15/2026 9:37 AM, Reinette Chatre wrote:
> Hi Babu,
> 
> nit: "for resctrl" in subject is redundant.

ok.

> 
> On 10/1/26 8:10 AM, Babu Moger wrote:
>> The filesystem tracks supported kernel modes, the active mode, and the
>> control and monitoring association for the assigned group.
> 
> Please let the context describe the context at the time of the patch, not how
> things will work after entire series is applied.
> 
> Please use consistent terminology, this series switches between "assigned group"
> and "backing group" to refer to the same group.

Will use the "backing group". That seems more clearer.

> 
> Please use the changelog to guide the reader to understand the architecture
> and how things fit together. Many changelogs are very cryptic without explanation
> of what the patch does and why.
> 
Ack.

>>
>> Introduce struct resctrl_kmode_cfg and initialize the default configuration
>> from the platform's capabilities.
> 
> Please check all changelogs to ensure they all are able to provide an
> answer to "why". More specifically, please consider:
> 	https://lore.kernel.org/lkml/20250911165433.GBaML-yTUZHkywuJIe@fat_crate.local/
> 

Ack

>>
>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>> ---
> ...
> 
>> ---
>>   fs/resctrl/internal.h | 29 +++++++++++++++++++++++++++++
>>   fs/resctrl/rdtgroup.c | 25 +++++++++++++++++++++++++
>>   2 files changed, 54 insertions(+)
>>
>> diff --git a/fs/resctrl/internal.h b/fs/resctrl/internal.h
>> index e62a277dee85..98f04a2a762b 100644
>> --- a/fs/resctrl/internal.h
>> +++ b/fs/resctrl/internal.h
>> @@ -314,6 +314,35 @@ struct mbm_state {
>>   	u32	prev_bw;
>>   };
>>   
>> +/**
>> + * enum kmode_state - Control or monitoring association
> 
> What does "control or monitoring association" mean? This is becoming
> an overloaded term used to mean different things and becoming confusing.
> For comparison, earlier patch introduced *another*
> "control and monitoring association" enum:
> 
> 	enum resctrl_kernel_mode - Kernel mode control and monitoring association

Sure.

> 
>> + * @KMODE_INHERIT: Inherit from the user-space task.
>> + * @KMODE_ASSIGN: Use the backing group's CLOSID or RMID.
>> + */
>> +enum kmode_state {
>> +	KMODE_INHERIT,
>> +	KMODE_ASSIGN
>> +};
>> +
>> +/**
>> + * struct resctrl_kmode_cfg - Kernel mode configuration
>> + * @kmode_sup:	Bitmap of supported kernel modes.
>> + * @kmode_cur:	Currently selected kernel mode.
> 
> Adding this comment during a second pass ... please consider later motivations
> about naming of these fields. This field is introduced as "kmode_cur" but when
> considering the language used in rest of series "active" seems more appropriate.
> 
> @kmode_sup could also just be @supported (the "kmode" is redundant).

Sure. Will change kmode_cur to "current".


> 
>> + * @ctrl:	Control association for %RESCTRL_GLOBAL_ENABLE_PER_CPU.
>> + *		Kept while %RESCTRL_INHERIT_USER is selected.
> 
> The "Kept while ..." does not seem to match implementation. Looks like
> resctrl_kmode_switch() always resets it to KMODE_ASSIGN?

Yes. Will remove the line.

> 
> At this point the reader is left to decipher the architecture via cryptic
> changelogs and inaccurate comments. It is very difficult to parse.
> 
>> + * @mon:	Monitoring association for %RESCTRL_GLOBAL_ENABLE_PER_CPU.
>> + *		Kept while %RESCTRL_INHERIT_USER is selected.
> 
> Similar comment about "Kept ..."

Yes. Will remove the text.

> 
>> + * @rdtgrp:	Resource group backing %RESCTRL_GLOBAL_ENABLE_PER_CPU.
>> + *		%NULL while that mode is not selected.
>> + */
>> +struct resctrl_kmode_cfg {
>> +	DECLARE_BITMAP(kmode_sup, RESCTRL_NUM_KERNEL_MODES);
>> +	enum resctrl_kernel_mode	kmode_cur;
>> +	enum kmode_state		ctrl;
>> +	enum kmode_state		mon;
>> +	struct rdtgroup			*rdtgrp;
>> +};
>> +
>>   extern struct mutex rdtgroup_mutex;
>>   
>>   static inline const char *rdt_kn_name(const struct kernfs_node *kn)
>> diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
>> index 68be9b903ac6..7c39792be1fa 100644
>> --- a/fs/resctrl/rdtgroup.c
>> +++ b/fs/resctrl/rdtgroup.c
>> @@ -76,6 +76,9 @@ static void rdtgroup_destroy_root(void);
>>   
>>   struct dentry *debugfs_resctrl;
>>   
>> +/* Kernel mode for this system. */
>> +static struct resctrl_kmode_cfg resctrl_kmode;
>> +
>>   /*
>>    * Memory bandwidth monitoring event to use for the default CTRL_MON group
>>    * and each new CTRL_MON group created by the user.  Only relevant when
>> @@ -2297,6 +2300,26 @@ static void io_alloc_init(void)
>>   	}
>>   }
>>   
>> +/*
>> + * Set RESCTRL_INHERIT_USER as the default when the platform supports
>> + * allocation or monitoring. Otherwise leave kernel mode unsupported.
> 
> This (and why) would be useful to describe in changelog.

Ack.

> 
>> + */
>> +static void resctrl_kmode_init(void)
>> +{
>> +	if (!resctrl_arch_alloc_capable() && !resctrl_arch_mon_capable())
>> +		return;
>> +
> 
> This check seems unnecessary? resctrl_kmode_init() will only be called
> on a system that is capable of allocation or monitoring.
> The planned AET changes will change this behavior see
> https://lore.kernel.org/lkml/20260928221509.68002-16-tony.luck@intel.com/
> but in that case it still seems as though initializing the kernel mode as
> below always needs to be done.
> 
> That begs the question why is resctrl_kmode_init() needed at all? Why not use
> a static initializer?

Sure. Will do.

> 
> I find resctrl_kmode_init() to be potentially confusing since it does *not*
> actually initialize resctrl_kmode. This is only possible to see two patches
> later where get_rdt_resources() is changed so that x86 sets its supported
> modes and this runs *before* resctrl_kmode_init().
> 
> If anyone decides one day "this initialization code is missing a bitmap_zero()"
> then it will break PLZA.

Sounds good. Will remove resctrl_kmode_init() and statically initialize 
resctrl_kmode.

Thanks
Babu



  reply	other threads:[~2026-10-16 15:10 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-01 15:10 [PATCH v6 00/18] x86,fs/resctrl: Add kernel-mode (e.g., PLZA) support to the resctrl subsystem Babu Moger
2026-10-01 15:10 ` [PATCH v6 01/18] x86/cpufeatures: Support Privilege Level Zero Association (PLZA) Babu Moger
2026-10-15 14:16   ` Reinette Chatre
2026-10-15 23:02     ` Babu Moger
2026-10-01 15:10 ` [PATCH v6 02/18] x86/resctrl: Add PLZA support to command-line options Babu Moger
2026-10-15 14:17   ` Reinette Chatre
2026-10-15 23:03     ` Babu Moger
2026-10-01 15:10 ` [PATCH v6 03/18] x86/resctrl: Add PLZA configuration definitions and data structures Babu Moger
2026-10-15 14:22   ` Reinette Chatre
2026-10-15 23:07     ` Babu Moger
2026-10-01 15:10 ` [PATCH v6 04/18] fs/resctrl: Introduce kernel mode enum Babu Moger
2026-10-15 14:44   ` Reinette Chatre
2026-10-15 23:09     ` Babu Moger
2026-10-01 15:10 ` [PATCH v6 05/18] x86,arm,fs/resctrl: Introduce architecture hook to program global kernel mode Babu Moger
2026-10-15 14:30   ` Reinette Chatre
2026-10-15 23:12     ` Moger, Babu
2026-10-01 15:10 ` [PATCH v6 06/18] fs/resctrl: Introduce kernel mode states for resctrl Babu Moger
2026-10-15 14:37   ` Reinette Chatre
2026-10-16 15:10     ` Moger, Babu [this message]
2026-10-01 15:10 ` [PATCH v6 07/18] fs/resctrl: Introduce resctrl_set_kmode_support() to register supported modes Babu Moger
2026-10-15 14:40   ` Reinette Chatre
2026-10-16 15:27     ` Moger, Babu
2026-10-01 15:10 ` [PATCH v6 08/18] x86/resctrl: Register RESCTRL_GLOBAL_ENABLE_PER_CPU when PLZA is available Babu Moger
2026-10-15 14:46   ` Reinette Chatre
2026-10-16 15:50     ` Moger, Babu
2026-10-01 15:10 ` [PATCH v6 09/18] fs/resctrl: Add interface to display kernel mode status Babu Moger
2026-10-15 15:16   ` Reinette Chatre
2026-10-16 19:10     ` Moger, Babu
2026-10-01 15:10 ` [PATCH v6 10/18] fs/resctrl: Add support for hidden resource group files Babu Moger
2026-10-15 15:27   ` Reinette Chatre
2026-10-16 20:53     ` Moger, Babu
2026-10-01 15:10 ` [PATCH v6 11/18] fs/resctrl: Introduce kmode_cpus/kmode_cpus_list per rdtgroup Babu Moger
2026-10-15 15:31   ` Reinette Chatre
2026-10-01 15:10 ` [PATCH v6 12/18] fs/resctrl: Add CPU hotplug support for kernel mode associations Babu Moger
2026-10-15 15:33   ` Reinette Chatre
2026-10-01 15:10 ` [PATCH v6 13/18] fs/resctrl: Deactivate kernel mode associations when a group is removed Babu Moger
2026-10-15 15:43   ` Reinette Chatre
2026-10-01 15:10 ` [PATCH v6 14/18] fs/resctrl: Control visibility of global per-CPU kernel mode group files Babu Moger
2026-10-15 15:46   ` Reinette Chatre
2026-10-01 15:10 ` [PATCH v6 15/18] fs/resctrl: Reject mode changes for groups backing kernel mode Babu Moger
2026-10-15 15:49   ` Reinette Chatre
2026-10-01 15:10 ` [PATCH v6 16/18] fs/resctrl: Add interface to modify kernel mode via info/kernel_mode Babu Moger
2026-10-15 16:07   ` Reinette Chatre
2026-10-01 15:10 ` [PATCH v6 17/18] fs/resctrl: Allow user space to write kmode_cpus/kmode_cpus_list Babu Moger
2026-10-01 15:10 ` [PATCH v6 18/18] fs/resctrl: Add kernel mode documentation and examples Babu Moger

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=351da689-6f30-4f56-8f3b-ea62cc501d7e@amd.com \
    --to=bmoger@amd.com \
    --cc=Dave.Martin@arm.com \
    --cc=ackerleytng@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=ashish.kalra@amd.com \
    --cc=babu.moger@amd.com \
    --cc=ben.horgan@arm.com \
    --cc=binbin.wu@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=chang.seok.bae@intel.com \
    --cc=corbet@lwn.net \
    --cc=dapeng1.mi@linux.intel.com \
    --cc=darwi@linutronix.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=ebiggers@kernel.org \
    --cc=elena.reshetova@intel.com \
    --cc=elver@google.com \
    --cc=enelsonmoore@gmail.com \
    --cc=eranian@google.com \
    --cc=ewanhai-oc@zhaoxin.com \
    --cc=fenghuay@nvidia.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=jlayton@kernel.org \
    --cc=kas@kernel.org \
    --cc=kim.phillips@amd.com \
    --cc=kuba@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=naveen@kernel.org \
    --cc=peternewman@google.com \
    --cc=peterz@infradead.org \
    --cc=prathyushi.nangia@amd.com \
    --cc=rdunlap@infradead.org \
    --cc=reinette.chatre@intel.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=rppt@kernel.org \
    --cc=seanjc@google.com \
    --cc=skhan@linuxfoundation.org \
    --cc=superm1@kernel.org \
    --cc=tglx@kernel.org \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox