[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241205153845.394714-1-peternewman@google.com>
Date: Thu, 5 Dec 2024 16:38:45 +0100
From: Peter Newman <peternewman@...gle.com>
To: Reinette Chatre <reinette.chatre@...el.com>, Fenghua Yu <fenghua.yu@...el.com>
Cc: Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org,
"H . Peter Anvin" <hpa@...or.com>, Babu Moger <babu.moger@....com>, James Morse <james.morse@....com>,
Shaopeng Tan <tan.shaopeng@...itsu.com>, Tony Luck <tony.luck@...el.com>,
linux-kernel@...r.kernel.org, eranian@...gle.com,
Peter Newman <peternewman@...gle.com>
Subject: [PATCH v2] x86/resctrl: Disallow mongroup rename on MPAM
Moving a monitoring group to a different parent control assumes that the
monitors will not be impacted. This is not the case on MPAM where the
PMG is an extension of the PARTID.
Detect this situation by requiring the change in CLOSID not to affect
the result of resctrl_arch_rmid_idx_encode(), otherwise return
-EOPNOTSUPP.
Signed-off-by: Peter Newman <peternewman@...gle.com>
---
v1->v2:
- separated out from earlier series
- fixed capitalization in error message
[v1] https://lore.kernel.org/lkml/20240325172707.73966-4-peternewman@google.com/
---
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index d906a1cd84917..8c77496b090cd 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -3888,6 +3888,19 @@ static int rdtgroup_rename(struct kernfs_node *kn,
goto out;
}
+ /*
+ * If changing the CLOSID impacts the RMID, this operation is not
+ * supported.
+ */
+ if (resctrl_arch_rmid_idx_encode(rdtgrp->mon.parent->closid,
+ rdtgrp->mon.rmid) !=
+ resctrl_arch_rmid_idx_encode(new_prdtgrp->closid,
+ rdtgrp->mon.rmid)) {
+ rdt_last_cmd_puts("Changing parent control group not supported\n");
+ ret = -EOPNOTSUPP;
+ goto out;
+ }
+
/*
* If the MON group is monitoring CPUs, the CPUs must be assigned to the
* current parent CTRL_MON group and therefore cannot be assigned to
base-commit: 40384c840ea1944d7c5a392e8975ed088ecf0b37
--
2.47.0.338.g60cca15819-goog
Powered by blists - more mailing lists