The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: "Moger, Babu" <bmoger@amd.com>, "Luck, Tony" <tony.luck@intel.com>
Cc: Ben Horgan <ben.horgan@arm.com>,
	James Morse <james.morse@arm.com>,
	"Dave Martin" <Dave.Martin@arm.com>,
	Babu Moger <babu.moger@amd.com>,
	Drew Fustini <fustini@kernel.org>,
	Fenghua Yu <fenghuay@nvidia.com>, Chen Yu <yu.c.chen@intel.com>,
	Borislav Petkov <bp@alien8.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Peter Newman <peternewman@google.com>,
	"x86@kernel.org" <x86@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC v2] arm,x86,fs/resctrl: Generic schema description Proof of Concept
Date: Fri, 7 Aug 2026 08:35:31 -0700	[thread overview]
Message-ID: <bc22b70e-7058-4aa7-9c61-669ec76efd0f@intel.com> (raw)
In-Reply-To: <c1137f17-801d-43dd-a442-159fad34e47f@amd.com>

Hi Babu,

On 8/7/26 7:14 AM, Moger, Babu wrote:
> On 8/6/2026 12:11 PM, Reinette Chatre wrote:
>> On 8/6/26 10:04 AM, Luck, Tony wrote:
>>> On Wed, Aug 05, 2026 at 04:57:04PM -0700, Reinette Chatre wrote:
>>>> On 8/5/26 9:59 AM, Ben Horgan wrote:
>>>>> Just given a go at running this on a model with MPAM and I can mount resctrl with this
>>>>> small patch to initialise the emulated_by lists so that list_empty() behaves.
>>>>>
>>>>> diff --git a/drivers/resctrl/mpam_resctrl.c b/drivers/resctrl/mpam_resctrl.c
>>>>> index 21dcbf5764cc..638095649151 100644
>>>>> --- a/drivers/resctrl/mpam_resctrl.c
>>>>> +++ b/drivers/resctrl/mpam_resctrl.c
>>>>> @@ -1018,6 +1018,7 @@ static int mpam_resctrl_control_init(struct mpam_resctrl_res *res)
>>>>>          case RDT_RESOURCE_L3:
>>>>>                  mpam_ctrl->r_ctrl.type = RESCTRL_CTRL_BITMAP;
>>>>>                  mpam_ctrl->r_ctrl.name = RESCTRL_CTRL_NAME_DEF;
>>>>> +               INIT_LIST_HEAD(&mpam_ctrl->r_ctrl.emulated_by);
>>>>>                  INIT_LIST_HEAD_RCU(&mpam_ctrl->r_ctrl.domains);
>>>>>                  __set_bit(RESCTRL_BITMAP_FLAG_SPARSE, mpam_ctrl->r_ctrl.bitmap.flags);
>>>>>                  mpam_ctrl->r_ctrl.bitmap.cbm_len = class->props.cpbm_wd;
>>>>> @@ -1048,6 +1049,7 @@ static int mpam_resctrl_control_init(struct mpam_resctrl_res *res)
>>>>>                  r->ctrl_scope = RESCTRL_L3_CACHE;
>>>>>                  mpam_ctrl->r_ctrl.type = RESCTRL_CTRL_SCALAR;
>>>>>                  mpam_ctrl->r_ctrl.name = RESCTRL_CTRL_NAME_DEF;
>>>>> +               INIT_LIST_HEAD(&mpam_ctrl->r_ctrl.emulated_by);
>>>>>                  INIT_LIST_HEAD_RCU(&mpam_ctrl->r_ctrl.domains);
>>>>>
>>>>>                  r->bw_throttle_mode = THREAD_THROTTLE_UNDEFINED;
>>>>
>>>> Thank you for this. Added this and it is now available in branch resctrl/controls_rfc_v2.1
>>>
>>> Is same needed for x86? I don't see any initialization of the
>>> "r_ctrl.emulated_by" lists in similar initialization functions.
>> x86 "emulated_by" list initialization should be in both branches.
>>
>> Branch resctrl/controls_rfc_v2.1 combined all "emulated_by" list initialization
>> (for x86 and MPAM) into commit:
>> 3407e523c988 ("fs/resctrl: Introduce emulated controls and control mode")
>>
>> In the original resctrl/controls_rfc_v2 the x86 "emulated_by" list initialization can
>> be found in commit fbed64f80515 ("x86/resctrl: SAMPLE: Emulated controls")
>>
> 
> Looking at the commit:
> 
> commit 3407e523c988 ("fs/resctrl: Introduce emulated controls and control mode")
> 
> Based on the patch description, emulated controls are intended to be
> used only when there is a difference between the native and legacy
> controls. If no such difference exists, both modes should operate
> identically.

The original AMD MBA enabling did not follow the original percentage based MBA
control so resctrl essentially has *two* "legacy" MB controls today: one for AMD
and one for Intel, MPAM, and RISC-V (planned afaik). That cannot be changed now.
AMD would continue to expose the MB control that is not the percentage based "legacy"
control but actually AMD's native control. In short, yes, on AMD's "MB" control
the "legacy" and "native" control modes should operate identically.
At least now users could use the files in info/MB/schemata/MB/* to learn the
properties of the control.
> For MBA(AMD) and GMBA, there does not appear to be any difference
> between the two modes. Is that understanding correct?
It is not clear to me how resctrl should support AMD's GLBE. Note I am intentionally
not using GMBA since that already makes an assumption on how resctrl will support this.
Do you perhaps have an answer for Ben's question in 
https://lore.kernel.org/lkml/1444b515-752e-4167-87f5-30ace189e05c@arm.com/ ?

GLBE claims to enable users to allocate memory bandwidth at node scope but the memory
is managed at L3. This results in scenarios where, for example, a NUMA node can be
online and used but resctrl cannot expose it for bandwidth allocation when all the CPUs
at that NUMA node scope are offline. GLBE is thus not actually allocating memory bandwidth
at the NUMA node.

Should resctrl prepare for some future where an AMD system may support memory bandwidth
allocation at the NUMA node while also supporting GLBE (memory bandwidth allocation at L3)? 

Reinette

  reply	other threads:[~2026-08-07 15:35 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-04  5:26 [RFC v2] arm,x86,fs/resctrl: Generic schema description Proof of Concept Reinette Chatre
2026-08-05 16:59 ` Ben Horgan
2026-08-05 23:57   ` Reinette Chatre
2026-08-06 17:04     ` Luck, Tony
2026-08-06 17:11       ` Reinette Chatre
2026-08-07 14:14         ` Moger, Babu
2026-08-07 15:35           ` Reinette Chatre [this message]
2026-08-07 18:33             ` Moger, Babu
2026-08-07 22:53               ` Reinette Chatre
2026-08-07 15:35           ` Chen, Yu C
2026-08-07 17:57             ` Moger, Babu

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=bc22b70e-7058-4aa7-9c61-669ec76efd0f@intel.com \
    --to=reinette.chatre@intel.com \
    --cc=Dave.Martin@arm.com \
    --cc=babu.moger@amd.com \
    --cc=ben.horgan@arm.com \
    --cc=bmoger@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=fenghuay@nvidia.com \
    --cc=fustini@kernel.org \
    --cc=james.morse@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peternewman@google.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox