The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: "Chen, Yu C" <yu.c.chen@intel.com>
Cc: Tony Luck <tony.luck@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>,
	Dave Martin <Dave.Martin@arm.com>,
	Ben Horgan <ben.horgan@arm.com>,
	James Morse <james.morse@arm.com>,
	Babu Moger <babu.moger@amd.com>,
	Drew Fustini <fustini@kernel.org>,
	Fenghua Yu <fenghuay@nvidia.com>,
	"chen.yu@linux.dev" <chen.yu@linux.dev>
Subject: Re: [RFC v2] arm,x86,fs/resctrl: Generic schema description Proof of Concept
Date: Mon, 10 Aug 2026 11:09:31 -0700	[thread overview]
Message-ID: <ef14b978-1b58-446f-b07a-691422220cb8@intel.com> (raw)
In-Reply-To: <e859ba7a-d488-4c35-b0e2-fc88cdb34f29@intel.com>

Hi Chenyu,

On 8/10/26 10:23 AM, Chen, Yu C wrote:
> Hi Reinette,
> 
> On 8/10/2026 11:53 PM, Reinette Chatre wrote:
> 
> [ ... ]
> 
>>> item 1.
>>> In legacy mode, we intend to always let the "native" controller
>>> emulate the "legacy" controller - at least for the region‑aware
>>> RDT case.
>>> Q1: Is this understanding correct?
>>
>> As I understand region-aware is what actually makes this impossible to do
>> since there is no mapping from "legacy" percentage based control value to
>> "native" control value. Even more, the hardware self has two separate interfaces:
>> "legacy" uses MSR interface and "native" uses ACPI interface. As I see it a
>> region aware system in "legacy" mode is using the "legacy" MSR interface and
>> not use the "native" ACPI interface *at all*.
>>   
> 
> OK. Previously I might have misunderstood what "legacy" means in this context:
> "legacy control means using the existing MB interface in the schemata to
> change the percentage value. That is to say, no matter whether
> the underlying mechanism is based on MSR or MMIO, it is transparent to the
> resctrl user."
> which was discussed here:https://lore.kernel.org/lkml/87e4ca90-01bb-47e9-8892-0d2d56468bc0@intel.com/

Right ... but if the existing MB user space interface can only be supported by
MSR then it becomes the only "underlying mechanism". 

> I think "legacy" now refers to "MSR" in the context of region-aware RDT,
> due to lack of mapping between MSR-based and MMIO-based values.

From user space view "legacy" is the existing percentage based MB control
that user space has been using until now. The only way to support this "legacy"
user interface with region-aware hardware is to use the MSR interface, no?
User space does not care whether the hardware uses MSR or MMIO, it just uses
the MB interface.
That is, as you also say, until it is possible to map legacy control value to
region-aware control value at which point the MMIO interface can be used and
user space can continue to use the MB control without interruption.


>>> item 2.
>>> In commit fbed64f80515 ("x86/resctrl: SAMPLE: Emulated controls"),
>>> during resctrl initialization, __get_mem_config_intel() clears
>>> the legacy controller's hw_ctrl->msr_update to NULL, and sets
>>> its emulation controllers in hw_ctrl->r_ctrl.emulated_by to
>>> the region-aware related controllers. So legacy controller is
>>> emulated by region-aware controllers.
>>>
>>> item 3.
>>> In resctrl_arch_control_mode_set(), when switching to "legacy"
>>> mode, the legacy controller is set to:
>>> hw_ctrl->msr_update = update_temporary_legacy_MB;
>>> while the emulating controller is set to NULL:
>>> hw_ctrl->msr_update = NULL;
>>> That means, the emulated controllers will not take effect.
>>>
>>> Q2:Does item 3 contradict item 1?
>> The switching of .msr_update() is sample code to present a PoC of how
>> region-aware could be supported based on my understanding described above.
>> I expected that, for example, when user space switches the control mode between
>> "legacy"/"native" then the region-aware code would disable/enable region-aware
>> mode via the RDT_CTRL register and adjust the .msr_update() to match what
>> hardware interface is active.
>>
>> If at some point in future it becomes possible for resctrl to know how to
>> map a legacy control value to a native control value for region aware then this
>> switching should no longer be necessary and the "native" fine grained controller
>> can always be used to emulate the "legacy" percentage based controller and to
>> support this the ACPI interface would be enabled all the time.
>>
> 
> Then for the current region-aware MBA, should we add region-aware controllers
> as the same level as legacy controller, instead of adding them in legacy
> controllers' emulated_by list, since the legacy controller is not
> emulated by region-aware controllers? And we might need to introduce enable/disable
> flag per controller, which could be switched on/off when switching between
> legacy and native.
Please consider what will be required to support per-controller dynamic ("enable" vs "disable")
state: resctrl fs needs to expose interfaces that accept control changes from user space after
initialization that needs to be supported by architecture. In the current design resctrl fs expects
controllers to be set and configured at the time it starts so such change would require new locking
between resctrl fs and architecture. This complexity does not seem necessary to me since switching
between legacy and native accomplishes the same, no?

I find "region-aware controllers at the same level as legacy controller" together with
"per controller enable/disable" conflicting since it creates impression that user space can
enable/disable the controllers independently while there is a required dependency among the
different controllers based on whether hardware has region-aware MBA enabled or not. Even
here there would be a requirement to communicate to userspace which controllers could be
enabled/disabled together ... which is the same as the emulated list, no?

Also consider the future:
(a) Would it be possible to map legacy control value to region aware control value in the future?
    I believe the answer is "yes". If resctrl starts by displaying the region-aware controllers
    as emulating the legacy controller in info/ then the transition to support this will
    be smooth.

(b) Would MSR interface always be available? 
    I do not think resctrl should always assume this to be the case. Here I also find that starting
    with exposing region aware controllers as emulating the legacy controller in info/ to support
    a smooth transition.

What problem(s) do you envision? 

Reinette




  reply	other threads:[~2026-08-10 18:09 UTC|newest]

Thread overview: 23+ 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
2026-08-07 18:33             ` Moger, Babu
2026-08-07 22:53               ` Reinette Chatre
2026-08-10 18:52                 ` Babu Moger
2026-08-11  4:06                   ` Reinette Chatre
2026-08-07 15:35           ` Chen, Yu C
2026-08-07 17:57             ` Moger, Babu
2026-08-10  2:05 ` Chen, Yu C
2026-08-10 15:53   ` Reinette Chatre
2026-08-10 17:23     ` Chen, Yu C
2026-08-10 18:09       ` Reinette Chatre [this message]
2026-08-11  3:49         ` Chen, Yu C
2026-08-10  2:55 ` Fenghua Yu
2026-08-10  3:02   ` Chen, Yu C
2026-08-10  3:25     ` Fenghua Yu
2026-08-10  5:24       ` Chen, Yu C
2026-08-10 15:53   ` Reinette Chatre

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=ef14b978-1b58-446f-b07a-691422220cb8@intel.com \
    --to=reinette.chatre@intel.com \
    --cc=Dave.Martin@arm.com \
    --cc=babu.moger@amd.com \
    --cc=ben.horgan@arm.com \
    --cc=bp@alien8.de \
    --cc=chen.yu@linux.dev \
    --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