Thread (1 message) 1 message, 1 author, 2025-10-17

Re: [PATCH v2 15/29] arm_mpam: Reset MSC controls from cpu hp callbacks

From: James Morse <james.morse@arm.com>
Date: 2025-10-17 18:50:54
Also in: linux-acpi, lkml

Hi Fenghua,

On 05/10/2025 21:43, Fenghua Yu wrote:
Hi, James,

On 9/10/25 13:42, James Morse wrote:
quoted
When a CPU comes online, it may bring a newly accessible MSC with
it. Only the default partid has its value reset by hardware, and
even then the MSC might not have been reset since its config was
previously dirtyied. e.g. Kexec.
typo: s/dirtyied/dirtied/

quoted
Any in-use partid must have its configuration restored, or reset.
In-use partids may be held in caches and evicted later.

MSC are also reset when CPUs are taken offline to cover cases where
firmware doesn't reset the MSC over reboot using UEFI, or kexec
where there is no firmware involvement.

If the configuration for a RIS has not been touched since it was
brought online, it does not need resetting again.

To reset, write the maximum values for all discovered controls.

CC: Rohit Mathew<redacted>
Signed-off-by: James Morse<james.morse@arm.com>
Other than the minor comments,

Reviewed-by: Fenghua Yu <fenghuay@nvidia.com>
Thanks,

[SNIP]
quoted
+static void mpam_reset_ris(struct mpam_msc_ris *ris)
+{
+    u16 partid, partid_max;
+
+    mpam_assert_srcu_read_lock_held();
+
+    if (ris->in_reset_state)
+        return;
+
+    spin_lock(&partid_max_lock);
+    partid_max = mpam_partid_max;
+    spin_unlock(&partid_max_lock);
+    for (partid = 0; partid < partid_max; partid++)
 * Should partid_max be inclusive? So it's "partid < partid_max + 1" here?

MPAM spec says max PARTID is inclusive: "The range of valid PARTIDs is 0 to the maximum
PARTID, inclusive. The maximum values of a PARTID implemented by different MSCs need not
be the same".
Hmmm, if partid_max is 0 then this loop should run only once, so yet.


Thanks,

James
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help