mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jinjie Ruan <ruanjinjie@huawei.com>
To: Ben Horgan <ben.horgan@arm.com>, <tony.luck@intel.com>,
	<reinette.chatre@intel.com>, <Dave.Martin@arm.com>,
	<james.morse@arm.com>, <babu.moger@amd.com>, <corbet@lwn.net>,
	<skhan@linuxfoundation.org>, <rdunlap@infradead.org>,
	<jic23@kernel.org>, <tan.shaopeng@jp.fujitsu.com>,
	<gshan@redhat.com>, <zengheng4@huawei.com>, <x86@kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-doc@vger.kernel.org>
Subject: Re: [PATCH] fs/resctrl: Disallow monitor group rename when the RMID changes
Date: Thu, 5 Nov 2026 17:01:58 +0800	[thread overview]
Message-ID: <d2b85306-81da-4627-881c-6db1e7394059@huawei.com> (raw)
In-Reply-To: <11fa8a4e-432a-4612-b834-a04cf9d32d49@arm.com>



在 2026/11/5 0:18, Ben Horgan 写道:
> Hi Jinjie,
> 
> On 04/11/2026 14:36, Ben Horgan wrote:
>> Hi Jinjie,
>>
>> On 04/11/2026 10:19, Jinjie Ruan wrote:
>>> 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>
>>
>> Perhaps stretching the meaning of a 'Suggested-by' tag as I only suggested the repost of Peter's patch.
>>
>> It is probably worth pointing out that the moving of monitor groups is existingly broken other than
>> just the resetting of mbm_total_bytes counters and so the current behaviour isn't something that an
>> existing user could be relying on. As you already point out in [1]
>>
>> [1] https://lore.kernel.org/lkml/20261031101052.1692230-1-ruanjinjie@huawei.com/
>>
>> Thanks,
>>
>> Ben
>>
>>> 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. 
> 
> In MPAMv2 there are likely to be systems where RMID doesn't depend on CLOSID and so best not to rely
> on MPAM vs not for this distinction.

Ok, I will fix it.

> 
> No other move operation is currently allowed other than
>>> +simply renaming a CTRL_MON or MON group.
>>>  
> 
> It was previously discussed about having a file that reports whether or not RMIDs have a fixed
> CLOSID and whether or not there should be a separate file to report whether MON group moving is
> allowed or not [1]. Do you think a info/moveable_mon_group file or such like would be useful?

I believe this moveable_mon_group information may be more instructive,
rather than waiting until failure to find out.

Maybe I should add this interface?

> 
> I have the below patch that adds a new file for the RMID scoping but we should coordinate so we
> don't end up with multiple changes to the same part of the documentation. Your MPAM patch [2] is

I agree to add a new interface to display whether RMID depends on
closid, and my patch will not include this interface.

> also related here as that that corrects 'num_rmids'.
> 
> [1] https://lore.kernel.org/linux-arm-kernel/d1110701-a2d5-4cc1-84de-4ed53ef02368@arm.com/
> [2] https://lore.kernel.org/linux-arm-kernel/20261104101622.563280-1-ruanjinjie@huawei.com/
> 
> Thanks,
> 
> Ben
> 
> fs/resctrl: Add file info/mon_id_includes_control_id
> 
>     The maximum number of CTRL_MON + MON groups that can be created is visible to
>     the user as the minimum of the values read from info/L3_MON/num_rmids and
>     info/PERF_PKG_MON/num_rmids. Similarly, the maximum number of CTRL_MON groups is
>     the minimum of the values in info/<resource>/num_closids.
> 
>     However, the number of MON that can be created as children of a given CTRL_MON
>     group is not directly knowable by the user. On x86 systems, there is no separate
>     limit and so in the extreme there can be a single CTRL_MON groups and num_rmids
>     - 1 MON groups. On MPAM systems however, the number of MON groups per CTRL_MON
>     groups is limited by the number of PMG bits and is equal
>     to (num_rmids/num_closids) - 1.
> 
>     So, that the user can easily calculate the maximum number of monitoring groups
>     per control add a new read only file, info/mon_id_includes_control_id.  If this
>     new file reads 1, the maximum number of MON groups under a CTRL_MON group
>     is (num_rmids/num_closids) - 1 and if it reads 0 the maximum is num_rmids -
>     1. On a monitor only platform it will read 0 allowing the file to be easily
>     interpreted when there are no num_closids files.
> 
>     Signed-off-by: Ben Horgan <ben.horgan@arm.com>
>     ---
> 
>     The num_rmids in MPAM monitor only platforms is currently wrong as it takes into
>     account PARTIDs that aren't usable.
> 
> diff --git a/Documentation/filesystems/resctrl.rst b/Documentation/filesystems/resctrl.rst
> index b52795e03303..ca586b4e502f 100644
> --- a/Documentation/filesystems/resctrl.rst
> +++ b/Documentation/filesystems/resctrl.rst
> @@ -510,8 +510,16 @@ with the following files:
>  "mon_features":
>                 Lists the telemetry monitoring events that are enabled on this system.
> 
> -The upper bound for how many "CTRL_MON" + "MON" can be created
> -is the smaller of the L3_MON and PERF_PKG_MON "num_rmids" values.
> +The upper bound for how many "CTRL_MON" + "MON" groups can be created is the
> +smaller of the L3_MON and PERF_PKG_MON "num_rmids" values.  The
> +"mon_id_includes_control_id" file in the top level of the "info" directory helps
> +determine how many "MON" groups can be created in any given "mon_groups"
> +directory. If it reads 1, then the maximum number of "MON" groups that can be
> +created in a "mon_groups" directory is equal to the amount created if the
> +maximum number of "CTRL_MON" groups are created and "MON" groups evenly
> +distributed between them. If it reads 0, then the number of "MON" groups than
> +can be created is only limited by the global restriction on the number of
> +"CTRL_MON" + "MON" groups.
> 
>  Finally, in the top level of the "info" directory there is a file
>  named "last_cmd_status". This is reset with every "command" issued
> diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
> index 57ab090072c2..90712a1337d0 100644
> --- a/fs/resctrl/rdtgroup.c
> +++ b/fs/resctrl/rdtgroup.c
> @@ -1200,6 +1200,17 @@ static int rdt_num_rmids_show(struct kernfs_open_file *of,
>         return 0;
>  }
> 
> +static int rdt_mon_id_includes_control_id_show(struct kernfs_open_file *of,
> +                                              struct seq_file *seq, void *v)
> +{
> +       bool dependent = IS_ENABLED(CONFIG_RESCTRL_RMID_DEPENDS_ON_CLOSID) &&
> +                        resctrl_arch_alloc_capable();
> +
> +       seq_printf(seq, "%u\n", dependent);
> +
> +       return 0;
> +}
> +
>  static int rdt_mon_features_show(struct kernfs_open_file *of,
>                                  struct seq_file *seq, void *v)
>  {
> @@ -2009,6 +2020,13 @@ static struct rftype res_common_files[] = {
>                 .seq_show       = rdt_num_rmids_show,
>                 .fflags         = RFTYPE_MON_INFO,
>         },
> +       {
> +               .name           = "mon_id_includes_control_id",
> +               .mode           = 0444,
> +               .kf_ops         = &rdtgroup_kf_single_ops,
> +               .seq_show       = rdt_mon_id_includes_control_id_show,
> +               .fflags         = RFTYPE_TOP_INFO,
> +       },
>         {
>                 .name           = "cbm_mask",
>                 .mode           = 0444,

-- 
Best regards,
Jinjie


  reply	other threads:[~2026-11-05  9:02 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-04 10:19 Jinjie Ruan
2026-11-04 14:36 ` Ben Horgan
2026-11-04 16:18   ` Ben Horgan
2026-11-05  9:01     ` Jinjie Ruan [this message]
2026-11-05  8:56   ` Jinjie Ruan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d2b85306-81da-4627-881c-6db1e7394059@huawei.com \
    --to=ruanjinjie@huawei.com \
    --cc=Dave.Martin@arm.com \
    --cc=babu.moger@amd.com \
    --cc=ben.horgan@arm.com \
    --cc=corbet@lwn.net \
    --cc=gshan@redhat.com \
    --cc=james.morse@arm.com \
    --cc=jic23@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=reinette.chatre@intel.com \
    --cc=skhan@linuxfoundation.org \
    --cc=tan.shaopeng@jp.fujitsu.com \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=zengheng4@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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®