All of lore.kernel.org
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: Peter Newman <peternewman@google.com>, Fenghua Yu <fenghua.yu@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>,
	Babu Moger <babu.moger@amd.com>,
	James Morse <james.morse@arm.com>,
	Shaopeng Tan <tan.shaopeng@fujitsu.com>,
	Tony Luck <tony.luck@intel.com>, <linux-kernel@vger.kernel.org>,
	<eranian@google.com>
Subject: Re: [PATCH v2] x86/resctrl: Disallow mongroup rename on MPAM
Date: Fri, 6 Dec 2024 16:25:16 -0800	[thread overview]
Message-ID: <3c8fa312-e6d4-41d3-8912-b35ecdf93eb9@intel.com> (raw)
In-Reply-To: <20241205153845.394714-1-peternewman@google.com>

Hi Peter,

On 12/5/24 7:38 AM, Peter Newman wrote:
> Moving a monitoring group to a different parent control assumes that the

Should "parent control" perhaps be "parent control group"?

> 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.

I think it is potentially confusing how the changelog jumps between
different architectural acronyms without introduction and
without noting how these architectural acronyms relate to resctrl.

Consider something like below:

	On x86 the hardware monitoring id (the x86 RMID) is independent
	from the hardware control id (the x86 CLOSID). On Arm the
	hardware monitoring id (the MPAM PMG) is dependent on the
	hardware control id (the MPAM PARTID). resctrl associates the
	hardware monitoring id with a resctrl monitoring group using
	the x86 "rmid" term and associates the hardware control id with
	the resctrl control group using the x86 "closid" term.

	User space can move a monitoring group to a different parent
	control group. This results in the monitoring group's control id
	changed to the new parent control group's id. This is safe to do
	on x86 because the monitoring and control ids are independent, but
	not safe on Arm where the ids are dependent. On Arm the destination
	control	group may not have the original monitoring id available for
	use, and if it does, the monitoring counters associated with the new
	control	and monitoring id pair will not reflect	the original monitoring
	group's	data.

	Use resctrl_arch_rmid_idx_encode() to detect if a change in
	the control group id impacts the monitoring id and prevent
	moving a monitor group to a new control group if it does.

Please do correct and feel free to improve.

> 
> Signed-off-by: Peter Newman <peternewman@google.com>
> ---

It may be helpful to add in the maintainer notes that there is no
Fixes: tag needed because MPAM is not yet supported and thus this issue
cannot be encountered at this time.

> 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

The change looks good to me.

Thank you.

Reinette


      reply	other threads:[~2024-12-07  0:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-05 15:38 [PATCH v2] x86/resctrl: Disallow mongroup rename on MPAM Peter Newman
2024-12-07  0:25 ` Reinette Chatre [this message]

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=3c8fa312-e6d4-41d3-8912-b35ecdf93eb9@intel.com \
    --to=reinette.chatre@intel.com \
    --cc=babu.moger@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=eranian@google.com \
    --cc=fenghua.yu@intel.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peternewman@google.com \
    --cc=tan.shaopeng@fujitsu.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.