From: Jonathan Cameron <jonathan.cameron@huawei.com>
To: James Morse <james.morse@arm.com>
Cc: <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-acpi@vger.kernel.org>,
D Scott Phillips OS <scott@os.amperecomputing.com>,
<carl@os.amperecomputing.com>, <lcherian@marvell.com>,
<bobo.shaobowang@huawei.com>, <tan.shaopeng@fujitsu.com>,
<baolin.wang@linux.alibaba.com>,
Jamie Iles <quic_jiles@quicinc.com>,
Xin Hao <xhao@linux.alibaba.com>, <peternewman@google.com>,
<dfustini@baylibre.com>, <amitsinght@marvell.com>,
David Hildenbrand <david@redhat.com>,
Dave Martin <dave.martin@arm.com>, Koba Ko <kobak@nvidia.com>,
Shanker Donthineni <sdonthineni@nvidia.com>,
<fenghuay@nvidia.com>, <baisheng.gao@unisoc.com>,
Rob Herring <robh@kernel.org>,
Rohit Mathew <rohit.mathew@arm.com>,
"Rafael Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
Hanjun Guo <guohanjun@huawei.com>,
Sudeep Holla <sudeep.holla@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
"Will Deacon" <will@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Danilo Krummrich <dakr@kernel.org>
Subject: Re: [PATCH v2 07/29] arm_mpam: Add probe/remove for mpam msc driver and kbuild boiler plate
Date: Thu, 11 Sep 2025 14:35:44 +0100 [thread overview]
Message-ID: <20250911143544.000026aa@huawei.com> (raw)
In-Reply-To: <20250910204309.20751-8-james.morse@arm.com>
On Wed, 10 Sep 2025 20:42:47 +0000
James Morse <james.morse@arm.com> wrote:
> Probing MPAM is convoluted. MSCs that are integrated with a CPU may
> only be accessible from those CPUs, and they may not be online.
> Touching the hardware early is pointless as MPAM can't be used until
> the system-wide common values for num_partid and num_pmg have been
> discovered.
>
> Start with driver probe/remove and mapping the MSC.
>
> CC: Carl Worth <carl@os.amperecomputing.com>
> Signed-off-by: James Morse <james.morse@arm.com>
Hi James,
Various comments inline. You can ignore the do/while(0)
one but I'll probably forget and send more grumpy comments about it ;)
Jonathan
> ---
> Changes since v1:
> * Avoid selecting driver on other architectrues.
> * Removed PCC support stub.
> * Use for_each_available_child_of_node_scoped() and of_property_read_reg()
> * Clarified a comment.
> * Stopped using mpam_num_msc as an id,a and made it atomic.
> * Size of -1 returned from cache_of_calculate_id()
> * Renamed some struct members.
> * Made a bunch of pr_err() dev_err_ocne().
> * Used more cleanup magic.
> * Inlined a print message.
> * Fixed error propagation from mpam_dt_parse_resources().
> * Moved cache accessibility checks earlier.
>
> Changes since RFC:
> * Check for status=broken DT devices.
> * Moved all the files around.
> * Made Kconfig symbols depend on EXPERT
> ---
> arch/arm64/Kconfig | 1 +
> drivers/Kconfig | 2 +
> drivers/Makefile | 1 +
> drivers/resctrl/Kconfig | 14 +++
> drivers/resctrl/Makefile | 4 +
> drivers/resctrl/mpam_devices.c | 180 ++++++++++++++++++++++++++++++++
> drivers/resctrl/mpam_internal.h | 65 ++++++++++++
> 7 files changed, 267 insertions(+)
> create mode 100644 drivers/resctrl/Kconfig
> create mode 100644 drivers/resctrl/Makefile
> create mode 100644 drivers/resctrl/mpam_devices.c
> create mode 100644 drivers/resctrl/mpam_internal.h
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 6487c511bdc6..93e563e1cce4 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -2062,6 +2062,7 @@ config ARM64_TLB_RANGE
>
> config ARM64_MPAM
> bool "Enable support for MPAM"
> + select ARM64_MPAM_DRIVER if EXPERT
To me that wants a comment as it's unusual.
> select ACPI_MPAM if ACPI
> help
> Memory System Resource Partitioning and Monitoring (MPAM) is an
> diff --git a/drivers/resctrl/Kconfig b/drivers/resctrl/Kconfig
> new file mode 100644
> index 000000000000..c30532a3a3a4
> --- /dev/null
> +++ b/drivers/resctrl/Kconfig
> @@ -0,0 +1,14 @@
> +menuconfig ARM64_MPAM_DRIVER
> + bool "MPAM driver"
> + depends on ARM64 && ARM64_MPAM && EXPERT
> + help
> + MPAM driver for System IP, e,g. caches and memory controllers.
> +
> +if ARM64_MPAM_DRIVER
> +config ARM64_MPAM_DRIVER_DEBUG
> + bool "Enable debug messages from the MPAM driver"
> + depends on ARM64_MPAM_DRIVER
The depends on should make the if unnecessary.
> + help
> + Say yes here to enable debug messages from the MPAM driver.
> +
> +endif
> diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c
> new file mode 100644
> index 000000000000..efc4738e3b4d
> --- /dev/null
> +++ b/drivers/resctrl/mpam_devices.c
> @@ -0,0 +1,180 @@
> +// SPDX-License-Identifier: GPL-2.0
> +// Copyright (C) 2025 Arm Ltd.
> +
> +#define pr_fmt(fmt) "%s:%s: " fmt, KBUILD_MODNAME, __func__
> +
> +#include <linux/acpi.h>
> +#include <linux/arm_mpam.h>
> +#include <linux/cacheinfo.h>
> +#include <linux/cpu.h>
> +#include <linux/cpumask.h>
> +#include <linux/device.h>
> +#include <linux/errno.h>
> +#include <linux/gfp.h>
> +#include <linux/list.h>
> +#include <linux/lockdep.h>
> +#include <linux/mutex.h>
> +#include <linux/platform_device.h>
> +#include <linux/printk.h>
> +#include <linux/slab.h>
> +#include <linux/spinlock.h>
> +#include <linux/srcu.h>
> +#include <linux/types.h>
> +/*
> + * An MSC can control traffic from a set of CPUs, but may only be accessible
> + * from a (hopefully wider) set of CPUs. The common reason for this is power
> + * management. If all the CPUs in a cluster are in PSCI:CPU_SUSPEND, the
> + * corresponding cache may also be powered off. By making accesses from
> + * one of those CPUs, we ensure this isn't the case.
> + */
> +static int update_msc_accessibility(struct mpam_msc *msc)
> +{
> + u32 affinity_id;
> + int err;
> +
> + err = device_property_read_u32(&msc->pdev->dev, "cpu_affinity",
> + &affinity_id);
> + if (err)
> + cpumask_copy(&msc->accessibility, cpu_possible_mask);
> + else
> + acpi_pptt_get_cpus_from_container(affinity_id,
> + &msc->accessibility);
> +
> + return 0;
> +
> + return err;
Curious. I'd do a build test after each patch before v3. A couple of
places would have failed or given helpful warnings so far.
> +}
> +
> +static int mpam_msc_drv_probe(struct platform_device *pdev)
> +{
> + int err;
> + struct mpam_msc *msc;
> + struct resource *msc_res;
> + struct device *dev = &pdev->dev;
> + void *plat_data = pdev->dev.platform_data;
> +
> + mutex_lock(&mpam_list_lock);
> + do {
I might well have moaned about this before, but I really dislike a do while(0)
if it doesn't fit on my screen (and my eyesight is poor so that's not this
many lines). To me a non trivial case of this is almost always a place
where a '_do' function would have made it more readable.
I'm also not a fan of scoped_guard() plus breaks because it feels like
it is dependent on an implementation detail but maybe it's clearer than this.
> + msc = devm_kzalloc(&pdev->dev, sizeof(*msc), GFP_KERNEL);
> + if (!msc) {
> + err = -ENOMEM;
> + break;
> + }
> +
> + mutex_init(&msc->probe_lock);
> + mutex_init(&msc->part_sel_lock);
> + mutex_init(&msc->outer_mon_sel_lock);
> + raw_spin_lock_init(&msc->inner_mon_sel_lock);
> + msc->id = pdev->id;
> + msc->pdev = pdev;
> + INIT_LIST_HEAD_RCU(&msc->all_msc_list);
> + INIT_LIST_HEAD_RCU(&msc->ris);
> +
> + err = update_msc_accessibility(msc);
> + if (err)
> + break;
> + if (cpumask_empty(&msc->accessibility)) {
> + dev_err_once(dev, "MSC is not accessible from any CPU!");
> + err = -EINVAL;
> + break;
> + }
> +
> + if (device_property_read_u32(&pdev->dev, "pcc-channel",
> + &msc->pcc_subspace_id))
> + msc->iface = MPAM_IFACE_MMIO;
> + else
> + msc->iface = MPAM_IFACE_PCC;
> +
> + if (msc->iface == MPAM_IFACE_MMIO) {
> + void __iomem *io;
> +
> + io = devm_platform_get_and_ioremap_resource(pdev, 0,
> + &msc_res);
> + if (IS_ERR(io)) {
> + dev_err_once(dev, "Failed to map MSC base address\n");
> + err = PTR_ERR(io);
> + break;
> + }
> + msc->mapped_hwpage_sz = msc_res->end - msc_res->start;
> + msc->mapped_hwpage = io;
> + }
> +
> + list_add_rcu(&msc->all_msc_list, &mpam_all_msc);
> + platform_set_drvdata(pdev, msc);
> + } while (0);
> + mutex_unlock(&mpam_list_lock);
> +
> + if (!err) {
> + /* Create RIS entries described by firmware */
> + err = acpi_mpam_parse_resources(msc, plat_data);
> + }
> +
> + if (err && msc)
> + mpam_msc_drv_remove(pdev);
Is it worth bothering to remove? We failed probe anyway if we got here
and it's not expected to happen on real systems so I'd just leave it around
so that you can exit early above.
I'm also not following why the msc check is relevant if you do want to do
this. Can only get here without msc if the allocation failed. Why would
we leave the driver loaded in only that case?
> +
> + if (!err && atomic_add_return(1, &mpam_num_msc) == fw_num_msc)
> + pr_info("Discovered all MSC\n");
> +
> + return err;
> +}
> diff --git a/drivers/resctrl/mpam_internal.h b/drivers/resctrl/mpam_internal.h
> new file mode 100644
> index 000000000000..7c63d590fc98
> --- /dev/null
> +++ b/drivers/resctrl/mpam_internal.h
> @@ -0,0 +1,65 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +// Copyright (C) 2025 Arm Ltd.
> +
> +#ifndef MPAM_INTERNAL_H
> +#define MPAM_INTERNAL_H
> +
> +#include <linux/arm_mpam.h>
> +#include <linux/cpumask.h>
> +#include <linux/io.h>
> +#include <linux/mailbox_client.h>
> +#include <linux/mutex.h>
spinlock.h
> +#include <linux/resctrl.h>
Not spotting anything rsctl yet. So maybe this belongs later.
> +#include <linux/sizes.h>
> +
> +struct mpam_msc {
> + /* member of mpam_all_msc */
> + struct list_head all_msc_list;
> +
> + int id;
I'd follow (approx) include what you use principles to make later header
shuffling easier. So a forward def for this.
> + struct platform_device *pdev;
> +
> + /* Not modified after mpam_is_enabled() becomes true */
> + enum mpam_msc_iface iface;
> + u32 pcc_subspace_id;
> + struct mbox_client pcc_cl;
> + struct pcc_mbox_chan *pcc_chan;
Forward def or include acpi/pcc.h
> + u32 nrdy_usec;
> + cpumask_t accessibility;
> +
> + /*
> + * probe_lock is only taken during discovery. After discovery these
> + * properties become read-only and the lists are protected by SRCU.
> + */
> + struct mutex probe_lock;
> + unsigned long ris_idxs;
> + u32 ris_max;
> +
> + /* mpam_msc_ris of this component */
> + struct list_head ris;
> +
> + /*
> + * part_sel_lock protects access to the MSC hardware registers that are
> + * affected by MPAMCFG_PART_SEL. (including the ID registers that vary
> + * by RIS).
> + * If needed, take msc->probe_lock first.
> + */
> + struct mutex part_sel_lock;
> +
> + /*
> + * mon_sel_lock protects access to the MSC hardware registers that are
> + * affected by MPAMCFG_MON_SEL.
> + * If needed, take msc->probe_lock first.
> + */
> + struct mutex outer_mon_sel_lock;
> + raw_spinlock_t inner_mon_sel_lock;
> + unsigned long inner_mon_sel_flags;
> +
> + void __iomem *mapped_hwpage;
> + size_t mapped_hwpage_sz;
> +};
> +
> +int mpam_get_cpumask_from_cache_id(unsigned long cache_id, u32 cache_level,
> + cpumask_t *affinity);
Where is this?
> +
> +#endif /* MPAM_INTERNAL_H */
next prev parent reply other threads:[~2025-09-11 13:35 UTC|newest]
Thread overview: 200+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-10 20:42 [PATCH v2 00/29] arm_mpam: Add basic mpam driver James Morse
2025-09-10 20:42 ` [PATCH v2 01/29] ACPI / PPTT: Add a helper to fill a cpumask from a processor container James Morse
2025-09-11 10:43 ` Jonathan Cameron
2025-09-11 10:48 ` Jonathan Cameron
2025-09-19 16:10 ` James Morse
2025-09-25 9:32 ` Stanimir Varbanov
2025-10-10 16:54 ` James Morse
2025-10-02 3:35 ` Fenghua Yu
2025-10-10 16:54 ` James Morse
2025-10-03 0:15 ` Gavin Shan
2025-10-10 16:55 ` James Morse
2025-09-10 20:42 ` [PATCH v2 02/29] ACPI / PPTT: Stop acpi_count_levels() expecting callers to clear levels James Morse
2025-09-11 10:46 ` Jonathan Cameron
2025-09-19 16:10 ` James Morse
2025-09-11 14:08 ` Ben Horgan
2025-09-19 16:10 ` James Morse
2025-10-02 3:55 ` Fenghua Yu
2025-10-10 16:55 ` James Morse
2025-10-03 0:17 ` Gavin Shan
2025-09-10 20:42 ` [PATCH v2 03/29] ACPI / PPTT: Find cache level by cache-id James Morse
2025-09-11 10:59 ` Jonathan Cameron
2025-09-19 16:10 ` James Morse
2025-09-11 15:27 ` Lorenzo Pieralisi
2025-09-19 16:10 ` James Morse
2025-10-02 4:30 ` Fenghua Yu
2025-10-10 16:55 ` James Morse
2025-10-03 0:23 ` Gavin Shan
2025-09-10 20:42 ` [PATCH v2 04/29] ACPI / PPTT: Add a helper to fill a cpumask from a cache_id James Morse
2025-09-11 11:06 ` Jonathan Cameron
2025-09-19 16:10 ` James Morse
2025-10-02 5:03 ` Fenghua Yu
2025-10-10 16:55 ` James Morse
2025-09-10 20:42 ` [PATCH v2 05/29] arm64: kconfig: Add Kconfig entry for MPAM James Morse
2025-09-12 10:14 ` Ben Horgan
2025-10-02 5:06 ` Fenghua Yu
2025-10-10 16:55 ` James Morse
2025-10-03 0:32 ` Gavin Shan
2025-10-10 16:55 ` James Morse
2025-09-10 20:42 ` [PATCH v2 06/29] ACPI / MPAM: Parse the MPAM table James Morse
2025-09-11 13:17 ` Jonathan Cameron
2025-09-19 16:11 ` James Morse
2025-09-26 14:48 ` Jonathan Cameron
2025-10-17 18:50 ` James Morse
2025-09-11 14:56 ` Lorenzo Pieralisi
2025-09-19 16:11 ` James Morse
2025-09-16 13:17 ` [PATCH] arm_mpam: Try reading again if MPAM instance returns not ready Zeng Heng
2025-09-19 16:11 ` James Morse
2025-09-20 10:14 ` Zeng Heng
2025-10-02 3:21 ` [PATCH v2 06/29] ACPI / MPAM: Parse the MPAM table Fenghua Yu
2025-10-17 18:50 ` James Morse
2025-10-03 0:58 ` Gavin Shan
2025-10-17 18:51 ` James Morse
2025-09-10 20:42 ` [PATCH v2 07/29] arm_mpam: Add probe/remove for mpam msc driver and kbuild boiler plate James Morse
2025-09-11 13:35 ` Jonathan Cameron [this message]
2025-09-23 16:41 ` James Morse
2025-09-26 14:55 ` Jonathan Cameron
2025-10-17 18:51 ` James Morse
2025-09-17 11:03 ` Ben Horgan
2025-09-29 17:44 ` James Morse
2025-10-03 3:53 ` Gavin Shan
2025-10-17 18:51 ` James Morse
2025-09-10 20:42 ` [PATCH v2 08/29] arm_mpam: Add the class and component structures for firmware described ris James Morse
2025-09-11 14:22 ` Jonathan Cameron
2025-09-26 17:52 ` James Morse
2025-09-11 16:30 ` Markus Elfring
2025-09-26 17:52 ` James Morse
2025-09-26 18:15 ` Markus Elfring
2025-10-17 18:51 ` James Morse
2025-10-03 16:54 ` Fenghua Yu
2025-10-17 18:51 ` James Morse
2025-10-06 23:13 ` Gavin Shan
2025-10-17 18:51 ` James Morse
2025-09-10 20:42 ` [PATCH v2 09/29] arm_mpam: Add MPAM MSC register layout definitions James Morse
2025-09-11 15:00 ` Jonathan Cameron
2025-10-17 18:53 ` James Morse
2025-09-12 7:33 ` Markus Elfring
2025-10-06 23:25 ` Gavin Shan
2025-09-10 20:42 ` [PATCH v2 10/29] arm_mpam: Add cpuhp callbacks to probe MSC hardware James Morse
2025-09-11 15:07 ` Jonathan Cameron
2025-09-29 17:44 ` James Morse
2025-09-12 10:42 ` Ben Horgan
2025-09-29 17:44 ` James Morse
2025-10-03 17:56 ` Fenghua Yu
2025-10-06 23:42 ` Gavin Shan
2025-09-10 20:42 ` [PATCH v2 11/29] arm_mpam: Probe hardware to find the supported partid/pmg values James Morse
2025-09-11 15:18 ` Jonathan Cameron
2025-09-29 17:44 ` James Morse
2025-09-12 11:11 ` Ben Horgan
2025-09-29 17:44 ` James Morse
2025-10-03 18:58 ` Fenghua Yu
2025-09-10 20:42 ` [PATCH v2 12/29] arm_mpam: Add helpers for managing the locking around the mon_sel registers James Morse
2025-09-11 15:24 ` Jonathan Cameron
2025-09-29 17:44 ` James Morse
2025-09-11 15:31 ` Ben Horgan
2025-09-29 17:44 ` James Morse
2025-10-05 0:09 ` Fenghua Yu
2025-09-10 20:42 ` [PATCH v2 13/29] arm_mpam: Probe the hardware features resctrl supports James Morse
2025-09-11 15:29 ` Jonathan Cameron
2025-09-29 17:45 ` James Morse
2025-09-11 15:37 ` Ben Horgan
2025-09-29 17:45 ` James Morse
2025-09-30 13:32 ` Ben Horgan
2025-10-05 0:53 ` Fenghua Yu
2025-09-10 20:42 ` [PATCH v2 14/29] arm_mpam: Merge supported features during mpam_enable() into mpam_class James Morse
2025-09-12 11:49 ` Jonathan Cameron
2025-09-29 17:45 ` James Morse
2025-10-05 1:28 ` Fenghua Yu
2025-09-10 20:42 ` [PATCH v2 15/29] arm_mpam: Reset MSC controls from cpu hp callbacks James Morse
2025-09-12 11:25 ` Ben Horgan
2025-09-12 14:52 ` Ben Horgan
2025-09-30 17:06 ` James Morse
2025-09-30 17:06 ` James Morse
2025-09-12 11:55 ` Jonathan Cameron
2025-09-30 17:06 ` James Morse
2025-09-30 2:51 ` Shaopeng Tan (Fujitsu)
2025-10-01 9:51 ` James Morse
[not found] ` <1f084a23-7211-4291-99b6-7f5192fb9096@nvidia.com>
2025-10-17 18:50 ` James Morse
2025-09-10 20:42 ` [PATCH v2 16/29] arm_mpam: Add a helper to touch an MSC from any CPU James Morse
2025-09-12 11:57 ` Jonathan Cameron
2025-10-01 9:50 ` James Morse
2025-10-05 21:08 ` Fenghua Yu
2025-09-10 20:42 ` [PATCH v2 17/29] arm_mpam: Extend reset logic to allow devices to be reset any time James Morse
2025-09-12 11:42 ` Ben Horgan
2025-10-02 18:02 ` James Morse
2025-09-12 12:02 ` Jonathan Cameron
2025-09-30 17:06 ` James Morse
2025-09-25 7:16 ` Fenghua Yu
2025-10-02 18:02 ` James Morse
2025-09-10 20:42 ` [PATCH v2 18/29] arm_mpam: Register and enable IRQs James Morse
2025-09-12 12:12 ` Jonathan Cameron
2025-10-02 18:02 ` James Morse
2025-09-12 14:40 ` Ben Horgan
2025-10-02 18:03 ` James Morse
2025-09-12 15:22 ` Dave Martin
2025-10-03 18:02 ` James Morse
2025-09-25 6:33 ` Fenghua Yu
2025-10-03 18:03 ` James Morse
2025-09-10 20:42 ` [PATCH v2 19/29] arm_mpam: Use a static key to indicate when mpam is enabled James Morse
2025-09-12 12:13 ` Jonathan Cameron
2025-10-03 18:03 ` James Morse
2025-09-12 14:42 ` Ben Horgan
2025-10-03 18:03 ` James Morse
2025-09-26 2:31 ` Fenghua Yu
2025-10-03 18:04 ` James Morse
2025-09-10 20:43 ` [PATCH v2 20/29] arm_mpam: Allow configuration to be applied and restored during cpu online James Morse
2025-09-12 12:22 ` Jonathan Cameron
2025-10-07 11:11 ` James Morse
2025-09-12 15:00 ` Ben Horgan
2025-09-25 6:53 ` Fenghua Yu
2025-10-03 18:04 ` James Morse
2025-09-10 20:43 ` [PATCH v2 21/29] arm_mpam: Probe and reset the rest of the features James Morse
2025-09-12 13:07 ` Jonathan Cameron
2025-10-03 18:05 ` James Morse
2025-09-10 20:43 ` [PATCH v2 22/29] arm_mpam: Add helpers to allocate monitors James Morse
2025-09-12 13:11 ` Jonathan Cameron
2025-10-06 14:57 ` James Morse
2025-10-06 15:56 ` James Morse
2025-09-10 20:43 ` [PATCH v2 23/29] arm_mpam: Add mpam_msmon_read() to read monitor value James Morse
2025-09-11 15:46 ` Ben Horgan
2025-09-12 15:08 ` Ben Horgan
2025-10-06 16:00 ` James Morse
2025-10-06 15:59 ` James Morse
2025-09-12 13:21 ` Jonathan Cameron
2025-10-09 17:48 ` James Morse
2025-09-25 2:30 ` Fenghua Yu
2025-10-09 17:48 ` James Morse
2025-09-10 20:43 ` [PATCH v2 24/29] arm_mpam: Track bandwidth counter state for overflow and power management James Morse
2025-09-12 13:24 ` Jonathan Cameron
2025-10-09 17:48 ` James Morse
2025-09-12 15:55 ` Ben Horgan
2025-10-13 16:29 ` James Morse
2025-09-10 20:43 ` [PATCH v2 25/29] arm_mpam: Probe for long/lwd mbwu counters James Morse
2025-09-12 13:27 ` Jonathan Cameron
2025-10-09 17:48 ` James Morse
2025-09-10 20:43 ` [PATCH v2 26/29] arm_mpam: Use long MBWU counters if supported James Morse
2025-09-12 13:29 ` Jonathan Cameron
2025-10-10 16:53 ` James Morse
2025-09-26 4:51 ` Fenghua Yu
2025-09-10 20:43 ` [PATCH v2 27/29] arm_mpam: Add helper to reset saved mbwu state James Morse
2025-09-12 13:33 ` Jonathan Cameron
2025-10-10 16:53 ` James Morse
2025-09-18 2:35 ` Shaopeng Tan (Fujitsu)
2025-10-10 16:53 ` James Morse
2025-09-26 4:11 ` Fenghua Yu
2025-10-10 16:53 ` James Morse
2025-09-10 20:43 ` [PATCH v2 28/29] arm_mpam: Add kunit test for bitmap reset James Morse
2025-09-12 13:37 ` Jonathan Cameron
2025-10-10 16:53 ` James Morse
2025-09-12 16:06 ` Ben Horgan
2025-10-10 16:53 ` James Morse
2025-09-26 2:35 ` Fenghua Yu
2025-10-10 16:53 ` James Morse
2025-09-10 20:43 ` [PATCH v2 29/29] arm_mpam: Add kunit tests for props_mismatch() James Morse
2025-09-12 13:41 ` Jonathan Cameron
2025-10-10 16:54 ` James Morse
2025-09-12 16:01 ` Ben Horgan
2025-10-10 16:54 ` James Morse
2025-09-26 2:36 ` Fenghua Yu
2025-10-10 16:54 ` James Morse
2025-09-25 7:18 ` [PATCH v2 00/29] arm_mpam: Add basic mpam driver Fenghua Yu
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=20250911143544.000026aa@huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=amitsinght@marvell.com \
--cc=baisheng.gao@unisoc.com \
--cc=baolin.wang@linux.alibaba.com \
--cc=bobo.shaobowang@huawei.com \
--cc=carl@os.amperecomputing.com \
--cc=catalin.marinas@arm.com \
--cc=dakr@kernel.org \
--cc=dave.martin@arm.com \
--cc=david@redhat.com \
--cc=dfustini@baylibre.com \
--cc=fenghuay@nvidia.com \
--cc=gregkh@linuxfoundation.org \
--cc=guohanjun@huawei.com \
--cc=james.morse@arm.com \
--cc=kobak@nvidia.com \
--cc=lcherian@marvell.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=peternewman@google.com \
--cc=quic_jiles@quicinc.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=rohit.mathew@arm.com \
--cc=scott@os.amperecomputing.com \
--cc=sdonthineni@nvidia.com \
--cc=sudeep.holla@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox