[RFC PATCH 27/36] arm_mpam: Allow configuration to be applied and restored during cpu online
James Morse
james.morse at arm.com
Fri Aug 8 00:16:42 PDT 2025
Hi Dave, Ben,
On 28/07/2025 16:34, Dave Martin wrote:
> Although it may look like the globals are read all over the place after
> probing, I think this actually only happens during resctrl initialision
> (which is basically single-threaded).
>
> The only place where they are read after probing and without mediation
> via resctrl is on the CPU hotplug path.
(and the mpam driver gets the first go a cpuhp, then it calls into resctrl).
> Adding locking would ensure that an unstable value is never read, but
> this is not sufficient by itself to sure that the _final_ value of a
> variable is read (for some definition of "final"). And, if there is a
> well-defined notion of final value and there is sufficient
> synchronisation to ensure that this is the value read by a particular
> read, then by construction an unstable value cannot be read.
>
>
> I think that this kind of pattern is not that uncommon in the kernel,
> though it is a bit painful to reason about.
As it's sparked some discussion, I've added a mpam_assert_partid_sizes_fixed() that
documents this, and will trigger a WARN_ON_ONCE() if these things are observed as
happening in the wrong order.
Thanks,
James
More information about the linux-arm-kernel
mailing list