• Reinette Chatre's avatar
    x86/resctrl: Maintain MBM counter width per resource · 46637d45
    Reinette Chatre authored
    The original Memory Bandwidth Monitoring (MBM) architectural
    definition defines counters of up to 62 bits in the IA32_QM_CTR MSR,
    and the first-generation MBM implementation uses 24 bit counters.
    Software is required to poll at 1 second or faster to ensure that
    data is retrieved before a counter rollover occurs more than once
    under worst conditions.
    
    As system bandwidths scale the software requirement is maintained with
    the introduction of a per-resource enumerable MBM counter width.
    
    In preparation for supporting hardware with an enumerable MBM counter
    width the current globally static MBM counter width is moved to a
    per-resource MBM counter width. Currently initialized to 24 always
    to result in no functional change.
    
    In essence there is one function, mbm_overflow_count() that needs to
    know the counter width to handle rollovers. The static value
    used within mbm_overflow_count() will be replaced with a value
    discovered from the hardware. Support for learning the MBM counter
    width from hardware is added in the change that follows.
    Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Link: https://lkml.kernel.org/r/e36743b9800f16ce600f86b89127391f61261f23.1588715690.git.reinette.chatre@intel.com
    46637d45
monitor.c 16.1 KB