diff --git a/arch/arm64/kernel/mpam/mpam_resctrl.c b/arch/arm64/kernel/mpam/mpam_resctrl.c index ea99c711a296c82e26f2e0c9adf730dee1fd39e7..004be508459ec261a1748fd6a41a9747e5574c6a 100644 --- a/arch/arm64/kernel/mpam/mpam_resctrl.c +++ b/arch/arm64/kernel/mpam/mpam_resctrl.c @@ -1733,6 +1733,29 @@ static int resctrl_group_tasks_show(struct kernfs_open_file *of, return ret; } +static int resctrl_group_rmid_show(struct kernfs_open_file *of, + struct seq_file *s, void *v) +{ + int ret = 0; + struct rdtgroup *rdtgrp; + u32 flag, times; + + hw_alloc_times_validate(times, flag); + + rdtgrp = resctrl_group_kn_lock_live(of->kn); + if (rdtgrp) { + if (flag) + seq_printf(s, "%u-%u\n", rdtgrp->mon.rmid, + rdtgrp->mon.rmid + 1); + else + seq_printf(s, "%u\n", rdtgrp->mon.rmid); + } else + ret = -ENOENT; + resctrl_group_kn_unlock(of->kn); + + return ret; +} + /* rdtgroup information files for one cache resource. */ static struct rftype res_specific_files[] = { { @@ -1830,6 +1853,13 @@ static struct rftype res_specific_files[] = { .seq_show = resctrl_group_tasks_show, .fflags = RFTYPE_BASE, }, + { + .name = "rmid", + .mode = 0444, + .kf_ops = &resctrl_group_kf_single_ops, + .seq_show = resctrl_group_rmid_show, + .fflags = RFTYPE_BASE, + }, { .name = "schemata", .mode = 0644,