mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] fs/resctrl: Disallow monitor group rename when the RMID changes
@ 2026-11-04 10:19 Jinjie Ruan
  2026-11-04 14:36 ` Ben Horgan
  0 siblings, 1 reply; 3+ messages in thread
From: Jinjie Ruan @ 2026-11-04 10:19 UTC (permalink / raw)
  To: tony.luck, reinette.chatre, Dave.Martin, james.morse, babu.moger,
	corbet, skhan, rdunlap, jic23, tan.shaopeng, gshan, zengheng4,
	x86, linux-kernel, linux-doc, ben.horgan
  Cc: ruanjinjie

From: Peter Newman <peternewman@google.com>

Renaming a monitor group to move it below a different control group
changes the CLOSID of its tasks. Where the RMID only has meaning
together with the CLOSID, the RMID index changes as well: on arm64 MPAM
the RMID is a PMG that extends the PARTID, so the group's counters
belong to the old PARTID and cannot follow the move. The monitor data
would be reset and would then report the new PARTID's traffic.

Check that the RMID index is unchanged before moving the group and
reject the rename with -EOPNOTSUPP otherwise. Only MPAM systems are
affected; architectures where the RMID is independent of the CLOSID,
such as x86, keep the same index and still allow the move. Document
the restriction in resctrl.rst.

Fixes: 3e9b35823aab ("arm_mpam: resctrl: Add rmid index helpers")
Suggested-by: Ben Horgan <ben.horgan@arm.com>
Signed-off-by: Peter Newman <peternewman@google.com>
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: <stable@vger.kernel.org> # 7.1.x
Link: https://lore.kernel.org/lkml/20241205153845.394714-1-peternewman@google.com/
---
 Documentation/filesystems/resctrl.rst |  7 ++++---
 fs/resctrl/rdtgroup.c                 | 13 +++++++++++++
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/Documentation/filesystems/resctrl.rst b/Documentation/filesystems/resctrl.rst
index b52795e03303..5f21ab20030a 100644
--- a/Documentation/filesystems/resctrl.rst
+++ b/Documentation/filesystems/resctrl.rst
@@ -552,9 +552,10 @@ will automatically remove all MON groups below it.
 Moving MON group directories to a new parent CTRL_MON group is supported
 for the purpose of changing the resource allocations of a MON group
 without impacting its monitoring data or assigned tasks. This operation
-is not allowed for MON groups which monitor CPUs. No other move
-operation is currently allowed other than simply renaming a CTRL_MON or
-MON group.
+is not allowed for MON groups which monitor CPUs, and fails with
+-EOPNOTSUPP on systems where the RMID depends on the CLOSID, such as
+arm64 MPAM. No other move operation is currently allowed other than
+simply renaming a CTRL_MON or MON group.
 
 All groups contain the following files:
 
diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
index 9290a346386e..358f2dc8301d 100644
--- a/fs/resctrl/rdtgroup.c
+++ b/fs/resctrl/rdtgroup.c
@@ -4405,6 +4405,19 @@ static int rdtgroup_rename(struct kernfs_node *kn,
 		goto out;
 	}
 
+	/*
+	 * Moving the group changes the CLOSID. Where the RMID is only
+	 * meaningful together with the CLOSID, the RMID index changes and the
+	 * monitor state cannot follow the move.
+	 */
+	if (rdtgrp->mon.parent != new_prdtgrp && resctrl_arch_mon_capable() &&
+	    resctrl_arch_rmid_idx_encode(rdtgrp->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
-- 
2.34.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-11-04 16:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-04 10:19 [PATCH] fs/resctrl: Disallow monitor group rename when the RMID changes Jinjie Ruan
2026-11-04 14:36 ` Ben Horgan
2026-11-04 16:18   ` Ben Horgan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®