All of lore.kernel.org
 help / color / mirror / Atom feed
From: Babu Moger <babu.moger@amd.com>
To: Reinette Chatre <reinette.chatre@intel.com>,
	tony.luck@intel.com, Dave.Martin@arm.com, james.morse@arm.com,
	bp@alien8.de, ben.horgan@arm.com
Cc: corbet@lwn.net, skhan@linuxfoundation.org, rdunlap@infradead.org,
	tglx@kernel.org, mingo@redhat.com, dave.hansen@linux.intel.com,
	hpa@zytor.com, fenghuay@nvidia.com, akpm@linux-foundation.org,
	rppt@kernel.org, dapeng1.mi@linux.intel.com, elver@google.com,
	jlayton@kernel.org, enelsonmoore@gmail.com, kuba@kernel.org,
	ebiggers@kernel.org, seanjc@google.com, peterz@infradead.org,
	chao.gao@intel.com, jmattson@google.com, naveen@kernel.org,
	ricardo.neri-calderon@linux.intel.com, tiala@microsoft.com,
	chang.seok.bae@intel.com, prathyushi.nangia@amd.com,
	kim.phillips@amd.com, elena.reshetova@intel.com,
	darwi@linutronix.de, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org, x86@kernel.org
Subject: Re: [PATCH v5 12/16] fs/resctrl: Program kernel mode assignments on CPU hotplug
Date: Thu, 17 Sep 2026 13:26:46 -0500	[thread overview]
Message-ID: <114e1e54-3990-4498-9e27-42afa1aaa8fb@amd.com> (raw)
In-Reply-To: <f93c9241-8fc9-4076-a290-47b89021e1b2@intel.com>

Hi Reinette,

On 9/16/26 00:35, Reinette Chatre wrote:
> Hi Babu,
> 
> On 8/26/26 12:32 PM, Babu Moger wrote:
> 
> 
>> ---
>>   fs/resctrl/rdtgroup.c | 59 +++++++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 59 insertions(+)
>>
>> diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
>> index 06e74b027044..97e4176669e5 100644
>> --- a/fs/resctrl/rdtgroup.c
>> +++ b/fs/resctrl/rdtgroup.c
>> @@ -4951,11 +4951,67 @@ int resctrl_online_mon_domain(struct rdt_resource *r, struct rdt_domain_hdr *hdr
>>   	return err;
>>   }
>>   
>> +/*
>> + * resctrl_kmode_online_cpu() - Program kernel mode association for @cpu
>> + * @cpu: CPU that has just been brought online
>> + *
>> + * If assign_global_enable_per_cpu is active and the rdtgroup has an active
>> + * kernel-mode association, add @cpu to kmode_cpu_mask and program the
>> + * corresponding kernel mode association.
>> + */
>> +static void resctrl_kmode_online_cpu(unsigned int cpu)
>> +{
>> +	struct rdtgroup *rdtgrp = resctrl_kcfg.active.k_rdtgrp;
>> +	bool assign_ctrl, assign_mon;
>> +
>> +	if (resctrl_kcfg.active.kmode_cur != RESCTRL_ASSIGN_GLOBAL_ENABLE_PER_CPU ||
>> +	    !rdtgrp || !rdtgrp->kmode)
>> +		return;
>> +
>> +	assign_ctrl = (resctrl_kcfg.active.ctrl_mode == KMODE_ASSIGN);
>> +	assign_mon = (resctrl_kcfg.active.mon_mode == KMODE_ASSIGN);
>> +
>> +	cpumask_set_cpu(cpu, &rdtgrp->kmode_cpu_mask);
>> +
>> +	resctrl_arch_configure_kmode(cpumask_of(cpu), rdtgrp->closid, assign_ctrl,
>> +				     rdtgrp->mon.rmid, assign_mon, true);
> 
> If I counted right, at end of this series, resctrl_arch_configure_kmode() is called
> six times and _every_ call is preceded with the same two line pattern above:
> 
> 	assign_ctrl = (resctrl_kcfg.active.ctrl_mode == KMODE_ASSIGN);
> 	assign_mon = (resctrl_kcfg.active.mon_mode == KMODE_ASSIGN);
> 
> Could this be simplified with a single helper that does something like:
> 
> static void resctrl_configure_global_kmode(const struct cpumask *mask,
> 					   struct rdtgroup *rdtgrp, bool enable)
> {
>    	resctrl_arch_configure_global_kmode(mask, rdtgrp->closid,
>    					    resctrl_kcfg.active.ctrl_mode == KMODE_ASSIGN,
> 					    rdtgrp->mon.rmid,
> 					    resctrl_kcfg.active.mon_mode == KMODE_ASSIGN,
> 					    enable);
> }
> 

Sure. That will do. Thanks.

> 
>> +}
>> +
>> +/*
>> + * resctrl_kmode_offline_cpu() - Clear kernel mode association for @cpu
>> + * @cpu: CPU being taken offline.
>> + *
>> + * If assign_global_enable_per_cpu is active, disable the kernel mode
>> + * association for @cpu and remove it from kmode_cpu_mask.
>> + */
>> +static void resctrl_kmode_offline_cpu(unsigned int cpu)
>> +{
>> +	struct rdtgroup *rdtgrp = resctrl_kcfg.active.k_rdtgrp;
>> +	bool assign_ctrl, assign_mon;
>> +
>> +	if (resctrl_kcfg.active.kmode_cur != RESCTRL_ASSIGN_GLOBAL_ENABLE_PER_CPU ||
>> +	    !rdtgrp || !rdtgrp->kmode)
>> +		return;
>> +
>> +	if (!cpumask_test_cpu(cpu, &rdtgrp->kmode_cpu_mask))
>> +		return;
>> +
>> +	assign_ctrl = (resctrl_kcfg.active.ctrl_mode == KMODE_ASSIGN);
>> +	assign_mon = (resctrl_kcfg.active.mon_mode == KMODE_ASSIGN);
>> +
>> +	cpumask_clear_cpu(cpu, &rdtgrp->kmode_cpu_mask);
>> +
>> +	resctrl_arch_configure_kmode(cpumask_of(cpu), rdtgrp->closid, assign_ctrl,
>> +				     rdtgrp->mon.rmid, assign_mon, false);
>> +}
>> +
>>   void resctrl_online_cpu(unsigned int cpu)
>>   {
>>   	mutex_lock(&rdtgroup_mutex);
>>   	/* The CPU is set in default rdtgroup after online. */
>>   	cpumask_set_cpu(cpu, &rdtgroup_default.cpu_mask);
>> +	/* Program any active kernel mode association on this CPU. */
> 
> This comment is not helpful.

Will remove these comments.

Thanks
Babu

  reply	other threads:[~2026-09-17 18:26 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-26 19:32 [PATCH v5 00/16] x86/resctrl: Add kernel-mode (e.g., PLZA) support to the resctrl subsystem Babu Moger
2026-08-26 19:32 ` [PATCH v5 01/16] x86/cpufeatures: Support Privilege Level Zero Association (PLZA) Babu Moger
2026-09-16  5:12   ` Reinette Chatre
2026-09-16 20:45     ` Babu Moger
2026-09-17 15:04       ` Reinette Chatre
2026-09-17 17:08         ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 02/16] x86/resctrl: Add PLZA support to command-line options Babu Moger
2026-09-16  5:12   ` Reinette Chatre
2026-09-16 20:45     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 03/16] x86/resctrl: Add PLZA configuration definitions and data structures Babu Moger
2026-09-16  5:16   ` Reinette Chatre
2026-09-16 20:53     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 04/16] fs/resctrl: Introduce kernel mode policy enum Babu Moger
2026-09-16  5:14   ` Reinette Chatre
2026-09-16 20:53     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 05/16] x86,fs/resctrl: Introduce architecture hooks to program kernel mode Babu Moger
2026-09-16  5:26   ` Reinette Chatre
2026-09-16 20:57     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 06/16] fs/resctrl: Introduce kernel mode states for resctrl Babu Moger
2026-09-16  5:28   ` Reinette Chatre
2026-09-17 14:05     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 07/16] fs/resctrl: Introduce resctrl_set_kmode_support() to register supported modes Babu Moger
2026-09-16  5:29   ` Reinette Chatre
2026-09-17 14:20     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 08/16] x86/resctrl: Expose assign_global_enable_per_cpu when PLZA is available Babu Moger
2026-08-26 19:32 ` [PATCH v5 09/16] fs/resctrl: Add interface to display supported and active kernel modes Babu Moger
2026-09-16  5:32   ` Reinette Chatre
2026-09-17 15:29     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 10/16] fs/resctrl: Add support for hidden resource group files Babu Moger
2026-09-16  5:33   ` Reinette Chatre
2026-09-17 17:26     ` Babu Moger
2026-09-17 18:31       ` Reinette Chatre
2026-09-17 18:54         ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 11/16] fs/resctrl: Introduce kmode_cpus/kmode_cpus_list per rdtgroup Babu Moger
2026-09-16  5:34   ` Reinette Chatre
2026-09-17 18:19     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 12/16] fs/resctrl: Program kernel mode assignments on CPU hotplug Babu Moger
2026-09-16  5:35   ` Reinette Chatre
2026-09-17 18:26     ` Babu Moger [this message]
2026-08-26 19:32 ` [PATCH v5 13/16] fs/resctrl: Deactivate the kernel mode association when a group is removed Babu Moger
2026-09-16  5:36   ` Reinette Chatre
2026-09-17 19:25     ` Babu Moger
2026-09-17 19:48       ` Reinette Chatre
2026-08-26 19:32 ` [PATCH v5 14/16] fs/resctrl: Add interface to modify kernel mode via info/kernel_mode Babu Moger
2026-09-16  5:50   ` Reinette Chatre
2026-09-17 20:54     ` Babu Moger
2026-08-26 19:32 ` [PATCH v5 15/16] fs/resctrl: Allow user space to write kmode_cpus/kmode_cpus_list Babu Moger
2026-08-26 19:32 ` [PATCH v5 16/16] fs/resctrl: Add documentation on kernel_mode with example Babu Moger
2026-09-01 21:14   ` Luck, Tony
2026-09-01 23:28     ` Moger, Babu
2026-09-21  3:22 ` [PATCH v5 00/16] x86/resctrl: Add kernel-mode (e.g., PLZA) support to the resctrl subsystem Chen Yu
2026-09-21 19:27   ` Babu Moger
2026-09-22 15:04     ` Chen Yu

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=114e1e54-3990-4498-9e27-42afa1aaa8fb@amd.com \
    --to=babu.moger@amd.com \
    --cc=Dave.Martin@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=ben.horgan@arm.com \
    --cc=bp@alien8.de \
    --cc=chang.seok.bae@intel.com \
    --cc=chao.gao@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=fenghuay@nvidia.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=jlayton@kernel.org \
    --cc=jmattson@google.com \
    --cc=kim.phillips@amd.com \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=naveen@kernel.org \
    --cc=peterz@infradead.org \
    --cc=prathyushi.nangia@amd.com \
    --cc=rdunlap@infradead.org \
    --cc=reinette.chatre@intel.com \
    --cc=ricardo.neri-calderon@linux.intel.com \
    --cc=rppt@kernel.org \
    --cc=seanjc@google.com \
    --cc=skhan@linuxfoundation.org \
    --cc=tglx@kernel.org \
    --cc=tiala@microsoft.com \
    --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 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.