Re: [RFC v2] arm,x86,fs/resctrl: Generic schema description Proof of Concept

From: Chen, Yu C

Date: Mon Aug 10 2026 - 01:25:22 EST


Hi Fenghua,

On 8/10/2026 11:25 AM, Fenghua Yu wrote:
Hi, Chen,

On 8/9/26 20:02, Chen, Yu C wrote:
Hi Fenghua,
On 8/10/2026 10:55 AM, Fenghua Yu wrote:

[ ... ]

struct resctrl_ctrl {
...
         struct list_head        emulated_by;
};

Does this mean a legacy resctrl control can be emulated by a few resctrl controls (which is stored in the list)?

e.g. legacy MB control can be emulated by a few controls? I thought "MB:" line is emulated by only one native control. e.g. "MB:" line is emulated by "MB_NODE:" line.


If I understand correctly, for region-aware RDT, the legacy MB control may
be emulated collectively by region0_control, region1_control, ..., regionN_control.
In the original definition, MB represents the traffic that misses the L3 cache and
is refilled from all sources, which could include DRAM (region0), CXL (region1),
and others.
I may misunderstand "emulation" concept here.

I was thinking emulation mode is for backward compatibility, i.e. a

Yes, this is also my understanding.

native MB control is emulating "MB:" line: writing and reading both lines are same. So legacy user app won't be broken on new control.

For legacy MB, it is currently percentage-based with a valid range of
[1, 100]. Userspace might still want to write using percentage-based
values to maintain backward compatibility.

The native MB control, on the other hand, may have a valid range of
[1, 255]. Therefore, a mapping is required to convert user-provided[1, 100]
to [1, 255] before writing to the underlying hardware.


For a list of resctrl controls (region0_control, region1_control, etc), which one is for legacy "MB:" control so that reading/wring the control is same as writing/reading "MB:"line?


My understanding is that all of them will be written to the same value,
which has been mapped from [1, 100] to [1, 255].
According to the change:
https://git.kernel.org/pub/scm/linux/kernel/git/reinette/linux.git/commit/?h=resctrl/controls_rfc_v2.1&id=2b4fa1beb03848555090a4e8a3d2bb80524e0478
list_for_each_entry(em_ctrl, &ctrl->emulated_by, entry) {
//every domain for each emulating controller will write the same value
}

thanks,
Chenyu