Re: [PATCH v2 05/18] x86/resctrl: Allow RMID allocation to be scoped by CLOSID

From: James Morse
Date: Fri Mar 03 2023 - 13:35:03 EST


Hi Reinette,

On 02/02/2023 23:45, Reinette Chatre wrote:
> On 1/13/2023 9:54 AM, James Morse wrote:
>> MPAMs RMID values are not unique unless the CLOSID is considered as well.
>>
>> alloc_rmid() expects the RMID to be an independent number.
>>
>> Pass the CLOSID in to alloc_rmid(). Use this to compare indexes when
>> allocating. If the CLOSID is not relevant to the index, this ends up
>> comparing the free RMID with itself, and the first free entry will be
>> used. With MPAM the CLOSID is included in the index, so this becomes a
>> walk of the free RMID entries, until one that matches the supplied
>> CLOSID is found.
>>
>> Tested-by: Shaopeng Tan <tan.shaopeng@xxxxxxxxxxx>
>> Signed-off-by: James Morse <james.morse@xxxxxxx>
>
> ...
>
>> /*
>> - * As of now the RMIDs allocation is global.
>> + * As of now the RMIDs allocation is the same in each domain.

> Could you please elaborate what is meant/intended with this change
> (global vs per domain)? From the changelog a comment that RMID
> allocation is the same in each resource group for MPAM may be
> expected but per domain is not clear to me.

This is badly worded. It's referring to the limbo list management, while RMID=7 isn't
unique on MPAM, the struct rmid_entry used in two domains will be the same because the
CLOSID doesn't change. This means its still sufficient to move around the struct
rmid_entry to manage the limbo list.

I think this had me confused because 'as of now' implies the RMID won't always be globally
allocated, and MPAM has non-unique RMID/PMG values which are a different kind of global.


I'll change this to read:
/*
* For MPAM the RMID value is not unique, and has to be considered with
* the CLOSID. The (CLOSID, RMID) pair is allocated on all domains, which
* allows all domains to be managed by a single limbo list.
* Each domain also has a rmid_busy_llc to reduce the work of the limbo handler.
*/

(seeing as the function doesn't touch rmid_budy_llc, or refer to it by name)

Thanks,

James