When SNC mode is enabled the effective amount of L3 cache available for allocation is divided by the number of nodes per L3.
This was a mistake in original implementation and no longer done.
My original kernel code adjusted value reported in the "size" file in resctrl. That's no longer done because the effective size depends on how applications are allocating and using memory. Since the kernel can't know that, it seemed best to just report the total size of the cache.
But I think the resctrl tests still need to take this into account when running llc_occupancy tests.
E.g. on a 2-way SNC system with a 100MB L3 cache a test that allocates memory from its local SNC node (default behavior without using libnuma) will only see 50 MB llc_occupancy with a fully populated L3 mask in the schemata file.
This seems to contradict the "Cache and memory bandwidth allocation features continue to operate at the scope of the L3 cache." statement from [1]?
I'll clean that up. MBA isn't affected. But cache allocation is affected in that the amount of cache represented by each bit in the masks in the schemata file is reduced by a factor equal to SNC nodes per L3 cache.
-Tony
Reinette
[1] https://lore.kernel.org/lkml/20240528222006.58283-1-tony.luck@intel.com/