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.
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.