[PATCH 2/3] x86/resctrl: Add sparse_bitmaps file in info

From: Wieczor-Retman, Maciej
Date: Fri Sep 01 2023 - 04:56:47 EST


From: Fenghua Yu <fenghua.yu@xxxxxxxxx>

Add the interface in resctrl FS to show if sparse CAT bitmaps are
supported on the platform. Reading the file returns either a "1" if
non-contiguous 1s are supported and "0" otherwise. The file path is
/sys/fs/resctrl/info/{resource}/sparse_bitmaps, where {resource} can be
either "L2" or "L3" depending on their support in the CAT feature.

Signed-off-by: Fenghua Yu <fenghua.yu@xxxxxxxxx>
Signed-off-by: Wieczor-Retman, Maciej <maciej.wieczor-retman@xxxxxxxxx>
---
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index 725344048f85..4d27354f3f30 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -895,6 +895,17 @@ static int rdt_shareable_bits_show(struct kernfs_open_file *of,
return 0;
}

+static int rdt_has_sparse_bitmaps_show(struct kernfs_open_file *of,
+ struct seq_file *seq, void *v)
+{
+ struct resctrl_schema *s = of->kn->parent->priv;
+ struct rdt_resource *r = s->res;
+
+ seq_printf(seq, "%u\n", r->cache.arch_has_sparse_bitmaps);
+
+ return 0;
+}
+
/**
* rdt_bit_usage_show - Display current usage of resources
*
@@ -1839,6 +1850,13 @@ static struct rftype res_common_files[] = {
.seq_show = rdtgroup_size_show,
.fflags = RF_CTRL_BASE,
},
+ {
+ .name = "sparse_bitmaps",
+ .mode = 0444,
+ .kf_ops = &rdtgroup_kf_single_ops,
+ .seq_show = rdt_has_sparse_bitmaps_show,
+ .fflags = RF_CTRL_INFO | RFTYPE_RES_CACHE,
+ },

};

--
2.42.0