• Tony Luck's avatar
    x86/resctrl: Enable shared RMID mode on Sub-NUMA Cluster (SNC) systems · 21b362cc
    Tony Luck authored
    Hardware has two RMID configuration options for SNC systems. The default
    mode divides RMID counters between SNC nodes. E.g. with 200 RMIDs and
    two SNC nodes per L3 cache RMIDs 0..99 are used on node 0, and 100..199
    on node 1. This isn't compatible with Linux resctrl usage. On this
    example system a process using RMID 5 would only update monitor counters
    while running on SNC node 0.
    
    The other mode is "RMID Sharing Mode". This is enabled by clearing bit
    0 of the RMID_SNC_CONFIG (0xCA0) model specific register. In this mode
    the number of logical RMIDs is the number of physical RMIDs (from CPUID
    leaf 0xF) divided by the number of SNC nodes per L3 cache instance. A
    process can use the same RMID across different SNC nodes.
    
    See the "Intel Resource Director Technology Architecture Specification"
    for additional details.
    
    When SNC is enabled, update the MSR when a monitor domain is marked
    online. Technically this is overkill. It only needs to be done once
    per L3 cache instance rather than per SNC domain. But there is no harm
    in doing it more than once, and this is not in a critical path.
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
    Reviewed-by: default avatarReinette Chatre <reinette.chatre@intel.com>
    Link: https://lore.kernel.org/r/20240702173820.90368-3-tony.luck@intel.com
    21b362cc
core.c 27.5 KB