Re: [PATCH v1] fs/resctrl: Allocate rmid_ptrs[] using kvzalloc_objs()
From: Ben Horgan
Date: Mon Jul 13 2026 - 05:22:08 EST
Hi Tony,
On 7/10/26 16:42, Luck, Tony wrote:
>> On an MPAM system the number of entries in rmid_ptrs[] is the number of PARTIDs
>> multiplied by the number of PMGs. The maximum possible number of PARTIDs is
>> 0x10000 and the maximum number of PMGs is 0x100. On a system pushing the limits
>> of the MPAM specification this can be large enough to consistently fail the
>> kzalloc_objs() allocation and hence fail to mount the resctrl filesystem.
>
> Wow!. 16 million RMIDs * 32 byte per structure = 512MB
>
> I generally don't sweat "big" allocations on servers that have hundreds of Gbytes
> of memory. But that seems like a lot. Probably 99.99% of it never used (unless
> users regularly use resctrl to create tens of thousands of mon_data directories).
>
> Your fix is fine. So
>
> Reviewed-by: Tony Luck <tony.luck@xxxxxxxxx>
Thanks!
>
> But maybe at some point resctrl needs some sparse, or on-demand, allocator for
> RMIDs? Or is this a theoretical issue and nobody is likely to build a system that
> implements that many PARTIDs and/or PMGs?
It's a theoretical issue; I don't think anyone will build anything even close to the maximum of 'PMG
x PARTID'. Until the latest version, systems using CHI were limited to 1 bit of PMG. I was just
checking some of the extremes of the MPAM driver with a software model.
Ben
>
> -Tony