• Zhang Rui's avatar
    powercap: intel_rapl: Make cpu optional for rapl_package · bf44b901
    Zhang Rui authored
    MSR RAPL Interface always removes a rapl_package when all the CPUs in
    that rapl_package are offlined. This is because it relies on an online
    CPU to access the MSR.
    
    But for RAPL Interface using MMIO registers, when all the cpus within
    the rapl_package are offlined,
    1. the register can still be accessed
    2. monitoring and setting the Power Pimits for the rapl_package is still
       meaningful because of uncore power.
    
    This means that, a valid rapl_package doesn't rely on one or more cpus
    being onlined.
    
    For this sense, make cpu optional for rapl_package. A rapl_package can
    be registered either using a CPU id to represent the physical
    package/die, or using the physical package id directly.
    
    Note that, the thermal throttling interrupt is not disabled via
    MSR_IA32_PACKAGE_THERM_INTERRUPT for such rapl_package at the moment.
    If it is still needed in the future, this can be achieved by selecting
    an onlined CPU using the physical package id.
    
    Note that, processor_thermal_rapl, the current MMIO RAPL Interface
    driver, can also be converted to register using a package id instead.
    But this is not done right now because processor_thermal_rapl driver
    works on single-package systems only, and offlining the only package
    will not happen. So keep the previous logic.
    Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
    Tested-by: default avatarWang Wendy <wendy.wang@intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    bf44b901
intel_rapl_msr.c 6.11 KB