Re: [PATCH 09/28] x86/intel_rdt/cqm: Add RMID(Resource monitoring ID) management

From: Thomas Gleixner
Date: Tue Aug 01 2017 - 16:14:49 EST

On Tue, 25 Jul 2017, Vikas Shivappa wrote:
> Hardware uses RMID(Resource monitoring ID) to keep track of each of the
> RDT events associated with tasks. The number of RMIDs is dependent on
> the SKU and is enumerated via CPUID. We add support to manage the RMIDs
> which include managing the RMID allocation and reading LLC occupancy
> for an RMID.
> RMID allocation is managed by keeping a free list which is initialized
> to all available RMIDs except for RMID 0 which is always reserved for
> root group. RMIDs goto a limbo list once they are
> freed since the RMIDs are still tagged to cache lines of the tasks which
> were using them - thereby still having some occupancy. They continue to
> be in limbo list until the occupancy < threshold_occupancy. The
> threshold_occupancy is a user configurable value.
> OS uses IA32_QM_CTR MSR to read the occupancy associated with an RMID
> after programming the IA32_EVENTSEL MSR with the RMID.
> [Tony: Improved limbo search]

The search is smarter, but the smp function call problem per se
persists. It's still more than 100us worstcase on a BDW box and it's going
to be worse with the next generation.