On Mon, Apr 08, 2024 at 08:32:36PM -0700, Reinette Chatre wrote:
Hi James,
On 3/21/2024 9:51 AM, James Morse wrote:
Because ARM's MPAM controls are probed using MMIO, resctrl can't be
initialised until enough CPUs are online to have determined the
system-wide supported num_closid. Arm64 also supports 'late onlined
secondaries', where only a subset of CPUs are online during boot.
These two combine to mean the MPAM driver may not be able to initialise
resctrl until user-space has brought 'enough' CPUs online.
To allow MPAM to initialise resctrl after __init text has been free'd,
remove all the __init markings from resctrl.
The existing __exit markings cause these functions to be removed by the
linker as it has never been possible to build resctrl as a module. MPAM
has an error interrupt which causes the driver to reset and disable
itself. Remove the __exit markings to allow the MPAM driver to tear down
resctrl when an error occurs.
Obviously for the reasons you state this code has never been exercised.
Were you able to test this error interrupt flow yet?
Reinette
I think this will have to wait for James to respond.
There is code to tear down resctrl in response to an MPAM error interrupt,
but I don't know how it has been exercised so far (if at all).