All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: Ben Horgan <ben.horgan@arm.com>
Cc: <amitsinght@marvell.com>, <baisheng.gao@unisoc.com>,
	<baolin.wang@linux.alibaba.com>, <carl@os.amperecomputing.com>,
	<dave.martin@arm.com>, <david@kernel.org>,
	<dfustini@baylibre.com>, <fenghuay@nvidia.com>,
	<gshan@redhat.com>, <james.morse@arm.com>, <kobak@nvidia.com>,
	<lcherian@marvell.com>, <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <peternewman@google.com>,
	<punit.agrawal@oss.qualcomm.com>, <quic_jiles@quicinc.com>,
	<reinette.chatre@intel.com>, <rohit.mathew@arm.com>,
	<scott@os.amperecomputing.com>, <sdonthineni@nvidia.com>,
	<tan.shaopeng@fujitsu.com>, <xhao@linux.alibaba.com>,
	<catalin.marinas@arm.com>, <will@kernel.org>, <corbet@lwn.net>,
	<maz@kernel.org>, <oupton@kernel.org>, <joey.gouly@arm.com>,
	<suzuki.poulose@arm.com>, <kvmarm@lists.linux.dev>
Subject: Re: [PATCH v2 18/45] arm_mpam: resctrl: Implement resctrl_arch_reset_all_ctrls()
Date: Mon, 5 Jan 2026 17:51:54 +0000	[thread overview]
Message-ID: <20260105175154.00002041@huawei.com> (raw)
In-Reply-To: <20251219181147.3404071-19-ben.horgan@arm.com>

On Fri, 19 Dec 2025 18:11:20 +0000
Ben Horgan <ben.horgan@arm.com> wrote:

> From: James Morse <james.morse@arm.com>
> 
> We already have a helper for resetting an mpam class and component.  Hook
> it up to resctrl_arch_reset_all_ctrls() and the domain offline path.
> 
> Signed-off-by: James Morse <james.morse@arm.com>
> Signed-off-by: Ben Horgan <ben.horgan@arm.com>
I left all the context as my one comment on this is I don't see a reason
to expose mpam_reset_class()  Only the _locked() variant ever seems to be
used outside of mpam_devices.c

> ---
>  drivers/resctrl/mpam_devices.c  |  6 +++---
>  drivers/resctrl/mpam_internal.h |  7 +++++++
>  drivers/resctrl/mpam_resctrl.c  | 15 +++++++++++++++
>  3 files changed, 25 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
> index 303aacfcb9d6..4f5d908d02a9 100644
> --- a/drivers/resctrl/mpam_devices.c
> +++ b/drivers/resctrl/mpam_devices.c
> @@ -2544,7 +2544,7 @@ static void mpam_enable_once(void)
>  	       mpam_partid_max + 1, mpam_pmg_max + 1);
>  }
>  
> -static void mpam_reset_component_locked(struct mpam_component *comp)
> +void mpam_reset_component_locked(struct mpam_component *comp)
>  {
>  	struct mpam_vmsc *vmsc;
>  
> @@ -2568,7 +2568,7 @@ static void mpam_reset_component_locked(struct mpam_component *comp)
>  	}
>  }
>  
> -static void mpam_reset_class_locked(struct mpam_class *class)
> +void mpam_reset_class_locked(struct mpam_class *class)
>  {
>  	struct mpam_component *comp;
>  
> @@ -2580,7 +2580,7 @@ static void mpam_reset_class_locked(struct mpam_class *class)
>  		mpam_reset_component_locked(comp);
>  }
>  
> -static void mpam_reset_class(struct mpam_class *class)
> +void mpam_reset_class(struct mpam_class *class)
>  {
>  	cpus_read_lock();
>  	mpam_reset_class_locked(class);
> diff --git a/drivers/resctrl/mpam_internal.h b/drivers/resctrl/mpam_internal.h
> index 554e4887ba81..b9a739abb101 100644
> --- a/drivers/resctrl/mpam_internal.h
> +++ b/drivers/resctrl/mpam_internal.h
> @@ -389,6 +389,13 @@ extern u8 mpam_pmg_max;
>  void mpam_enable(struct work_struct *work);
>  void mpam_disable(struct work_struct *work);
>  
> +/* Reset all the RIS in a class, optionally while holding cpus_read_lock() */
> +void mpam_reset_class_locked(struct mpam_class *class);
> +void mpam_reset_class(struct mpam_class *class);

Not clear from this patch why we need to expose mpam_reset_class()

> +
> +/* Reset all the RIS in a component under cpus_read_lock() */
> +void mpam_reset_component_locked(struct mpam_component *comp);
> +
>  int mpam_apply_config(struct mpam_component *comp, u16 partid,
>  		      struct mpam_config *cfg);
>  
> diff --git a/drivers/resctrl/mpam_resctrl.c b/drivers/resctrl/mpam_resctrl.c
> index bc4f1c80eab5..d32e87002457 100644
> --- a/drivers/resctrl/mpam_resctrl.c
> +++ b/drivers/resctrl/mpam_resctrl.c
> @@ -167,6 +167,19 @@ static int mpam_resctrl_pick_domain_id(int cpu, struct mpam_component *comp)
>  	return comp->comp_id;
>  }
>  
> +void resctrl_arch_reset_all_ctrls(struct rdt_resource *r)
> +{
> +	struct mpam_resctrl_res *res;
> +
> +	lockdep_assert_cpus_held();
> +
> +	if (!mpam_is_enabled())
> +		return;
> +
> +	res = container_of(r, struct mpam_resctrl_res, resctrl_res);
> +	mpam_reset_class_locked(res->class);
> +}
> +
>  static void mpam_resctrl_domain_hdr_init(int cpu, struct mpam_component *comp,
>  					 struct rdt_domain_hdr *hdr)
>  {
> @@ -353,6 +366,8 @@ void mpam_resctrl_offline_cpu(unsigned int cpu)
>  
>  		ctrl_dom_empty = true;
>  		if (exposed_alloc_capable) {
> +			mpam_reset_component_locked(dom->ctrl_comp);
> +
>  			ctrl_d = &dom->resctrl_ctrl_dom;
>  			ctrl_dom_empty = mpam_resctrl_offline_domain_hdr(cpu, &ctrl_d->hdr);
>  			if (ctrl_dom_empty)


  reply	other threads:[~2026-01-05 17:52 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-19 18:11 [PATCH v2 00/45] arm_mpam: Add KVM/arm64 and resctrl glue code Ben Horgan
2025-12-19 18:11 ` [PATCH v2 01/45] arm_mpam: Stop using uninitialized variables in __ris_msmon_read() Ben Horgan
2025-12-23 11:58   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 02/45] arm_mpam: Remove duplicate linux/srcu.h header Ben Horgan
2025-12-23 12:10   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 03/45] arm_mpam: Use non-atomic bitops when modifying feature bitmap Ben Horgan
2026-01-05 16:34   ` Jonathan Cameron
2026-01-06 11:11     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 04/45] arm64/sysreg: Add MPAMSM_EL1 register Ben Horgan
2026-01-05 16:36   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 05/45] KVM: arm64: Preserve host MPAM configuration when changing traps Ben Horgan
2025-12-19 20:01   ` Oliver Upton
2026-01-02 11:43     ` Ben Horgan
2026-01-05 16:43   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 06/45] KVM: arm64: Make MPAMSM_EL1 accesses UNDEF Ben Horgan
2026-01-05 16:47   ` Jonathan Cameron
2026-01-05 16:57     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 07/45] arm64: mpam: Context switch the MPAM registers Ben Horgan
2026-01-05 17:04   ` Jonathan Cameron
2026-01-06 11:14     ` Ben Horgan
2026-01-06 14:03       ` Jonathan Cameron
2026-01-08 10:06   ` Shaopeng Tan (Fujitsu)
2026-01-09  9:28     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 08/45] arm64: mpam: Re-initialise MPAM regs when CPU comes online Ben Horgan
2026-01-05 17:06   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 09/45] arm64: mpam: Advertise the CPUs MPAM limits to the driver Ben Horgan
2026-01-05 17:08   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 10/45] arm64: mpam: Add cpu_pm notifier to restore MPAM sysregs Ben Horgan
2026-01-05 17:09   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 11/45] arm64: mpam: Initialise and context switch the MPAMSM_EL1 register Ben Horgan
2026-01-05 17:20   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 12/45] arm64: mpam: Add helpers to change a task or cpu's MPAM PARTID/PMG values Ben Horgan
2026-01-05 17:21   ` Jonathan Cameron
2026-01-08 10:18   ` Shaopeng Tan (Fujitsu)
2026-01-09  9:37     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 13/45] KVM: arm64: Force guest EL1 to use user-space's partid configuration Ben Horgan
2025-12-19 20:10   ` Oliver Upton
2026-01-02 11:48     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 14/45] KVM: arm64: Use kernel-space partid configuration for hypercalls Ben Horgan
2025-12-19 18:11 ` [PATCH v2 15/45] arm_mpam: resctrl: Add boilerplate cpuhp and domain allocation Ben Horgan
2026-01-05 17:40   ` Jonathan Cameron
2026-01-06 11:17     ` Ben Horgan
2026-01-08 10:36   ` Shaopeng Tan (Fujitsu)
2026-01-09  9:55     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 16/45] arm_mpam: resctrl: Sort the order of the domain lists Ben Horgan
2026-01-05 17:42   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 17/45] arm_mpam: resctrl: Pick the caches we will use as resctrl resources Ben Horgan
2026-01-05 17:46   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 18/45] arm_mpam: resctrl: Implement resctrl_arch_reset_all_ctrls() Ben Horgan
2026-01-05 17:51   ` Jonathan Cameron [this message]
2026-01-06 11:19     ` Ben Horgan
2026-01-09  3:45     ` Zeng Heng
2026-01-13 17:18       ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 19/45] arm_mpam: resctrl: Add resctrl_arch_get_config() Ben Horgan
2026-01-05 17:53   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 20/45] arm_mpam: resctrl: Implement helpers to update configuration Ben Horgan
2026-01-05 17:58   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 21/45] arm_mpam: resctrl: Add plumbing against arm64 task and cpu hooks Ben Horgan
2026-01-05 18:02   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 22/45] arm_mpam: resctrl: Add CDP emulation Ben Horgan
2026-01-05 18:07   ` Jonathan Cameron
2026-01-06 11:21     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 23/45] arm_mpam: resctrl: Add rmid index helpers Ben Horgan
2026-01-06 11:21   ` Jonathan Cameron
2026-01-06 11:33     ` Ben Horgan
2026-01-06 14:04       ` Jonathan Cameron
2026-01-06 15:23         ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 24/45] arm_mpam: resctrl: Convert to/from MPAMs fixed-point formats Ben Horgan
2026-01-06 11:55   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 25/45] arm_mpam: resctrl: Add support for 'MB' resource Ben Horgan
2025-12-27  8:10   ` [PATCH v2 0/45] arm_mpam: Add KVM/arm64 and resctrl glue code Zeng Heng
2026-01-06 12:19   ` [PATCH v2 25/45] arm_mpam: resctrl: Add support for 'MB' resource Jonathan Cameron
2026-01-07 14:21     ` Ben Horgan
2026-01-08 10:42   ` Shaopeng Tan (Fujitsu)
2026-01-12 16:45     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 26/45] arm_mpam: resctrl: Add kunit test for control format conversions Ben Horgan
2026-01-06 12:30   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 27/45] arm_mpam: resctrl: Add support for csu counters Ben Horgan
2026-01-06 12:40   ` Jonathan Cameron
2026-01-08 10:44   ` Shaopeng Tan (Fujitsu)
2026-01-08 10:52     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 28/45] arm_mpam: resctrl: Pick classes for use as mbm counters Ben Horgan
2026-01-06 14:01   ` Jonathan Cameron
2026-01-07 15:19     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 29/45] arm_mpam: resctrl: Pre-allocate free running monitors Ben Horgan
2026-01-06 14:22   ` Jonathan Cameron
2026-01-08 14:25     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 30/45] arm_mpam: resctrl: Pre-allocate assignable monitors Ben Horgan
2026-01-06 14:29   ` Jonathan Cameron
2026-01-08 14:33     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 31/45] arm_mpam: resctrl: Add kunit test for ABMC/CDP interactions Ben Horgan
2025-12-19 18:11 ` [PATCH v2 32/45] arm_mpam: resctrl: Add resctrl_arch_config_cntr() for ABMC use Ben Horgan
2026-01-06 14:33   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 33/45] arm_mpam: resctrl: Allow resctrl to allocate monitors Ben Horgan
2026-01-06 14:37   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 34/45] arm_mpam: resctrl: Add resctrl_arch_rmid_read() and resctrl_arch_reset_rmid() Ben Horgan
2026-01-06 14:43   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 35/45] arm_mpam: resctrl: Add resctrl_arch_cntr_read() & resctrl_arch_reset_cntr() Ben Horgan
2026-01-06 14:44   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 36/45] arm_mpam: resctrl: Update the rmid reallocation limit Ben Horgan
2026-01-06 14:46   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 37/45] arm_mpam: resctrl: Add empty definitions for assorted resctrl functions Ben Horgan
2026-01-06 14:48   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 38/45] arm64: mpam: Select ARCH_HAS_CPU_RESCTRL Ben Horgan
2026-01-06 14:49   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 39/45] arm_mpam: resctrl: Call resctrl_init() on platforms that can support resctrl Ben Horgan
2026-01-06 14:58   ` Jonathan Cameron
2026-01-08 14:53     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 40/45] arm_mpam: Generate a configuration for min controls Ben Horgan
2026-01-06 15:09   ` Jonathan Cameron
2026-01-08 15:35     ` Ben Horgan
2025-12-19 18:11 ` [PATCH v2 41/45] arm_mpam: Add quirk framework Ben Horgan
2026-01-06 15:14   ` Jonathan Cameron
2026-01-06 15:15     ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 42/45] arm_mpam: Add workaround for T241-MPAM-1 Ben Horgan
2025-12-19 18:11 ` [PATCH v2 43/45] arm_mpam: Add workaround for T241-MPAM-4 Ben Horgan
2026-01-06 15:20   ` Jonathan Cameron
2025-12-19 18:11 ` [PATCH v2 44/45] arm_mpam: Add workaround for T241-MPAM-6 Ben Horgan
2025-12-19 18:11 ` [PATCH v2 45/45] arm_mpam: Quirk CMN-650's CSU NRDY behaviour Ben Horgan
2026-01-08 19:22 ` (subset) [PATCH v2 00/45] arm_mpam: Add KVM/arm64 and resctrl glue code Catalin Marinas

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=20260105175154.00002041@huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=amitsinght@marvell.com \
    --cc=baisheng.gao@unisoc.com \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=ben.horgan@arm.com \
    --cc=carl@os.amperecomputing.com \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=dave.martin@arm.com \
    --cc=david@kernel.org \
    --cc=dfustini@baylibre.com \
    --cc=fenghuay@nvidia.com \
    --cc=gshan@redhat.com \
    --cc=james.morse@arm.com \
    --cc=joey.gouly@arm.com \
    --cc=kobak@nvidia.com \
    --cc=kvmarm@lists.linux.dev \
    --cc=lcherian@marvell.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=oupton@kernel.org \
    --cc=peternewman@google.com \
    --cc=punit.agrawal@oss.qualcomm.com \
    --cc=quic_jiles@quicinc.com \
    --cc=reinette.chatre@intel.com \
    --cc=rohit.mathew@arm.com \
    --cc=scott@os.amperecomputing.com \
    --cc=sdonthineni@nvidia.com \
    --cc=suzuki.poulose@arm.com \
    --cc=tan.shaopeng@fujitsu.com \
    --cc=will@kernel.org \
    --cc=xhao@linux.alibaba.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 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.