Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

fs/resctrl: Consider sparse masks when initializing new group's allocation

A new resource group is intended to be created with sane defaults. For a cache
resource this means all cache portions the new group could possibly allocate
into. This includes unused cache portions and shareable cache portions used by
other groups and hardware.

New resource group creation does not take sparse masks into account. After
determining the bitmask reflecting the new group's possible allocations the
bitmask is forced to be contiguous even if the system supports sparse masks.
For example, a new group could by default allocate into a large portion of
cache represented by 0xff0f, but it is instead created with a mask of 0xf.

Do not force a contiguous allocation range if the system supports sparse masks.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://patch.msgid.link/abbbb008bc09d982d715e79d3b885c10f92c64e0.1763426240.git.reinette.chatre@intel.com

authored by

Reinette Chatre and committed by
Borislav Petkov (AMD)
5a88a6e9 a0a09995

+4 -3
+4 -3
fs/resctrl/rdtgroup.c
··· 3383 3383 { 3384 3384 unsigned int cbm_len = r->cache.cbm_len; 3385 3385 unsigned long first_bit, zero_bit; 3386 - unsigned long val = _val; 3386 + unsigned long val; 3387 3387 3388 - if (!val) 3389 - return 0; 3388 + if (!_val || r->cache.arch_has_sparse_bitmasks) 3389 + return _val; 3390 3390 3391 + val = _val; 3391 3392 first_bit = find_first_bit(&val, cbm_len); 3392 3393 zero_bit = find_next_zero_bit(&val, cbm_len, first_bit); 3393 3394