Re: [PATCH 14/33] arm_mpam: Add cpuhp callbacks to probe MSC hardware
From: Dave Martin <Dave.Martin@arm.com>
Date: 2025-09-09 14:23:32
Also in:
linux-acpi, linux-arm-kernel, lkml
Hi James, While I'm here: On Fri, Aug 22, 2025 at 03:29:55PM +0000, James Morse wrote:
quoted hunk ↗ jump to hunk
Because an MSC can only by accessed from the CPUs in its cpu-affinity set we need to be running on one of those CPUs to probe the MSC hardware. Do this work in the cpuhp callback. Probing the hardware will only happen before MPAM is enabled, walk all the MSCs and probe those we can reach that haven't already been probed. Later once MPAM is enabled, this cpuhp callback will be replaced by one that avoids the global list. Enabling a static key will also take the cpuhp lock, so can't be done from the cpuhp callback. Whenever a new MSC has been probed schedule work to test if all the MSCs have now been probed. CC: Lecopzer Chen <redacted> Signed-off-by: James Morse <james.morse@arm.com> --- drivers/resctrl/mpam_devices.c | 144 +++++++++++++++++++++++++++++++- drivers/resctrl/mpam_internal.h | 8 +- 2 files changed, 147 insertions(+), 5 deletions(-)diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index 5baf2a8786fb..9d6516f98acf 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c
[...]
quoted hunk ↗ jump to hunk
@@ -511,9 +539,84 @@ int mpam_ris_create(struct mpam_msc *msc, u8 ris_idx, return err; } -static void mpam_discovery_complete(void) +static int mpam_msc_hw_probe(struct mpam_msc *msc) +{ + u64 idr; + int err;
Redundant variable which gets removed again in the next patch?
+
+ lockdep_assert_held(&msc->probe_lock);
+
+ mutex_lock(&msc->part_sel_lock);
+ idr = mpam_read_partsel_reg(msc, AIDR);
+ if ((idr & MPAMF_AIDR_ARCH_MAJOR_REV) != MPAM_ARCHITECTURE_V1) {
+ pr_err_once("%s does not match MPAM architecture v1.x\n",
+ dev_name(&msc->pdev->dev));
+ err = -EIO;
+ } else {
+ msc->probed = true;
+ err = 0;
+ }
+ mutex_unlock(&msc->part_sel_lock);
+
+ return err;
+}[...] Cheers ---Dave