Re: [PATCH 1/2] x86/resctrl: Add io_alloc_min_cbm_all interface for CBM reset

From: Babu Moger

Date: Mon Nov 10 2025 - 11:52:47 EST


Hi Aaron,

On 11/7/25 18:19, Aaron Tomlin wrote:
On Fri, Nov 07, 2025 at 05:08:03PM -0600, Moger, Babu wrote:
No, I don’t agree with introducing this new interface.

These settings are intended to be modified only by system administrators,
not general users.

Administrators are already expected to have complete knowledge of the
hardware and corresponding configuration details. They also typically rely
on benchmark data to determine appropriate settings.

Additionally, this approach is not consistent with our existing CBM setting
model.
Hi Babu,

I fully appreciate your point that system administrators are expected to
have complete knowledge of the hardware configuration. I believe my initial
motivation may have been unclear, so let me clarify the intention behind
"io_alloc_min_cbm_all".

The intention of this new interface is not to hide lower-level details from
the administrator, but rather to simplify a specific, high-overhead
administration task and prevent human error, which I encountered during
testing of your series.



By default, it is my understanding that when I/O allocation CBM is enabled,
all applicable shared L3 resources typically have their CBM bits set (e.g.,
ffff). If an administrator wishes to revert to a clean baseline before
applying a subset of dedicated bits, the manual process requires them to
not only have knowledge of every single Domain ID
applicable to the shared L3 resource but manually construct a long,
error-prone input string.

The objective of "io_alloc_min_cbm_all" is to provide a quick and accurate
medium to revert this topology-dependent default configuration to the
minimal supported state, thereby avoiding possible miscalculation or
omission of a Domain ID in the CBM string. As shown in the usage flow
below, the new interface drastically reduces the complexity of setting up a
specific configuration:

# cat /sys/fs/resctrl/info/L3/io_alloc_cbm
0=ffff;2=ffff;4=ffff;6=ffff;8=ffff;10=ffff;12=ffff;14=ffff;16=ffff;18=ffff;20=ffff;22=ffff;24=ffff;26=ffff;28=ffff;30=ffff;32=ffff;34=ffff;36=ffff;38=ffff;40=ffff;42=ffff;44=ffff;46=ffff;48=ffff;50=ffff;52=ffff

# echo 0=0;2=0;4=0;6=4;8=4;10=0;12=0;14=0;16=ffff;18=ffff;20=0;22=0;24=0;26=0;28=0;30=0;32=0;34=4;36=0;38=0;40=0;42=0;44=0;46=0;48=0;50=0;52=0 > /sys/fs/resctrl/info/L3/io_alloc_cbm


Does the following option work for you?

# echo "*=0" > /sys/fs/resctrl/info/L3/io_alloc_cbm


Here,|*| represents all domains.


This functionality was introduced when adding support for the*"mbm_event" assign mode* (see [1]).
[1]https://lore.kernel.org/lkml/b894ad853e6757d40da1469bf9fca4c64684df65.1757108044.git.babu.moger@xxxxxxx/ <https://lore.kernel.org/lkml/b894ad853e6757d40da1469bf9fca4c64684df65.1757108044.git.babu.moger@xxxxxxx/> <https://lore.kernel.org/lkml/b894ad853e6757d40da1469bf9fca4c64684df65.1757108044.git.babu.moger@xxxxxxx/>
Also, this needs to be done for all the settings like L3, MBA also SMBA.

# echo "L3:*=f" > /sys/fs/resctrl/schemata

# echo "MB:*=128" > /sys/fs/resctrl/schemata

I’d like to hear from Reinette and Tony if this seems like an acceptable approach.

Thanks

Babu