• Srinivas Pandruvada's avatar
    platform/x86: Add support for Uncore frequency control · 49a474c7
    Srinivas Pandruvada authored
    Some server users set limits on the uncore frequency using MSR 620H, while
    running latency sensitive workloads. Here uncore frequency controls
    RING/LLC(last-level cache) clocks.
    
    But MSR control is not always possible from the user space, so this driver
    provides a sysfs interface to set max and min frequency limits. This MSR
    620H is a die scoped in multi-die system or package scoped in non multi-die
    systems.
    
    When this driver is loaded, a new directory is created under
     /sys/devices/system/cpu.
    
    For example on a two package Skylake server:
    $cd /sys/devices/system/cpu/intel_uncore_frequency
    
    $ls
    package_00_die_00 package_01_die_00
    
    $ls package_00_die_00
    max_freq_khz  min_freq_khz  initial_max_freq_khz
    initial_min_freq_khz
    
    $grep . *
        max_freq_khz:2400000
        min_freq_khz:1200000
        initial_max_freq_khz:2400000
        initial_min_freq_khz:1200000
    
    Here, initial_max_freq_khz and initial_min_freq_khz are read only
    attributes to show power up or initial values of max and min frequencies
    respectively. Other attributes are read-write, so that users can modify.
    Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    49a474c7
intel-uncore-frequency.c 10.5 KB