x86/resctrl: Add struct rdt_cache::arch_has_{sparse, empty}_bitmaps
authorJames Morse <james.morse@arm.com>
Wed, 8 Jul 2020 16:39:28 +0000 (16:39 +0000)
committerBorislav Petkov <bp@suse.de>
Wed, 19 Aug 2020 08:41:40 +0000 (10:41 +0200)
commit316e7f901f5aedb415c72d1eedd7de0846238dd0
treef1e2ce7ae50ed2c6b85e3100d1e98ad70a69fc0e
parent5df3ca9334d5603e4afbb95953d0affb37dcf86b
x86/resctrl: Add struct rdt_cache::arch_has_{sparse, empty}_bitmaps

Intel CPUs expect the cache bitmap provided by user-space to have on a
single span of 1s, whereas AMD can support bitmaps like 0xf00f. Arm's
MPAM support also allows sparse bitmaps.

Similarly, Intel CPUs check at least one bit set, whereas AMD CPUs are
quite happy with an empty bitmap. Arm's MPAM allows an empty bitmap.

To move resctrl out to /fs/, platform differences like this need to be
explained.

Add two resource properties arch_has_{empty,sparse}_bitmaps. Test these
around the relevant parts of cbm_validate().

Merging the validate calls causes AMD to gain the min_cbm_bits test
needed for Haswell, but as it always sets this value to 1, it will never
match.

 [ bp: Massage commit message. ]

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Babu Moger <babu.moger@amd.com>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Link: https://lkml.kernel.org/r/20200708163929.2783-10-james.morse@arm.com
arch/x86/kernel/cpu/resctrl/core.c
arch/x86/kernel/cpu/resctrl/ctrlmondata.c
arch/x86/kernel/cpu/resctrl/internal.h