Re: [RFC PATCH 04/19] fs/resctrl: Add the documentation for Global Memory Bandwidth Allocation
From: Babu Moger
Date: Tue Feb 03 2026 - 11:44:54 EST
Hi Tony,
On 2/2/26 18:00, Luck, Tony wrote:
On Wed, Jan 21, 2026 at 03:12:42PM -0600, Babu Moger wrote:
+Global Memory bandwidth AllocationI don't see any checks that the user sets the *SAME* GMBA limits.
+-----------------------------------
+
+AMD hardware supports Global Memory Bandwidth Allocation (GMBA) provides
+a mechanism for software to specify bandwidth limits for groups of threads
+that span across multiple QoS domains. This collection of QOS domains is
+referred to as GMBA control domain. The GMBA control domain is created by
+setting the same GMBA limits in one or more QoS domains. Setting the default
+max_bandwidth excludes the QoS domain from being part of GMBA control domain.
What happens if the user ignores the dosumentation and sets different
limits?
Good point. Adding checks could be challenging when users update each schema individually with different values. We don't know which one value is the one he is intending to keep.
... snip ...
+ # cat schemata
+ GMB:0=2048;1=2048;2=2048;3=2048
+ MB:0=4096;1=4096;2=4096;3=4096
+ L3:0=ffff;1=ffff;2=ffff;3=ffff
+
+ # echo "GMB:0=8;2=8" > schemata
+ # cat schemata
+ GMB:0= 8;1=2048;2= 8;3=2048
+ MB:0=4096;1=4096;2=4096;3=4096
+ L3:0=ffff;1=ffff;2=ffff;3=ffff
Can the user go on to set:
# echo "GMB:1=10;3=10" > schemata
and have domains 0 & 2 with a combined 8GB limit,
while domains 1 & 3 run with a combined 10GB limit?
Or is there a single "GMBA domain"?
In that case, it is still treated as a single GMBA domain, but the behavior becomes unpredictable. The hardware expert mentioned that it will default to the lowest value among all inputs in this case, 8GB.
Will using "2048" as the "this domain isn't limited
by GMBA" value come back to haunt you when some
system has much more than 2TB bandwidth to divide up?
It is actually 4096 (4TB). I made a mistake in the example. I am assuming it may not an issue in the current generation.
It is expected to go up in next generation.
GMB:0=4096;1=4096;2=4096;3=4096;
MB:0=8192;1=8192;2=8192;3=8192;
L3:0=ffff;1=ffff;2=ffff;3=ffff
Should resctrl have a non-numeric "unlimited" value
in the schemata file for this?
The value 4096 corresponds to 12th bit set. It is called U-bit. If the U bit is set then that domain is not part of the GMBA domain.
I was thinking of displaying the "U" in those cases. It may be good idea to do something like this.
GMB:0= 8;1= U;2= 8 ;3= U;
MB:0=8192;1=8192;2=8192;3=8192;
L3:0=ffff;1=ffff;2=ffff;3=ffff
Yes, I agree. Non-numeric would have been better.
The "mba_MBps" feature used U32_MAX as the unlimited
value. But it looks somewhat ugly in the schemata
file:
Thanks
Babu