Friday, June 7, 2013

Power Management (5):P-state driver for Intel CPU

A recent Linux patch caught my eyes:

commit 93f0822dff5dae2f0a2645f16300c14af41ca777
Author: Dirk Brandewie <dirk.brandewie@gmail.com>
Date:   Wed Feb 6 09:02:13 2013 -0800

    cpufreq/x86: Add P-state driver for sandy bridge.
    
    Add a P-state driver for the Intel Sandy bridge processor. In cpufreq
    terminology this driver implements a  scaling driver with an internal
    governor.
    
    When built into the the kernel this driver will be the preferred
    scaling driver for Sandy bridge processors.
    
    In addition to the interfaces provided by the cpufreq subsystem for
    controlling scaling drivers. The user may control the behavior of the
    driver via three sysfs files located in
    "/sys/devices/system/cpu/intel_pstate".
    
      max_perf_pct: limits the maximum P state that will be requested by
      the driver stated as a percentage of the avail performance.
    
      min_perf_pct: limits the minimum P state that will be  requested by
      the driver stated as a percentage of the avail performance.
    
      no_turbo: limits the driver to selecting P states below the turbo
      frequency range.
    
    Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Not surprisingly, another Linux patch for IvyBridge was developed:

commit c96d53d600643ee0adfd1cb90814bd9510e62b71
Author: Dirk Brandewie <dirk.j.brandewie@intel.com>
Date:   Fri May 17 16:10:24 2013 +0000

    cpufreq / intel_pstate: Add additional supported CPU ID
    
    Add CPU ID for Ivybrigde processor.
    
    Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

As Haswell is not officially supported by latest Linux kernel today, we put its model id (by running cat /proc/cpuinfo) and measured the power consumption, and it saves 0.5W (4%) with an idle system - that is the same as enabling ASPM of two PCIe devices (more information @ http://alexhungdmz.blogspot.tw/2011/12/power-management-3pcie-aspm.html) - I'd say this is quite a significant improvement.

What interests me is that these P-states are no longer declared in ACPI CPU._PSS but in device driver. Linux with kernel 3.9 and before will not benefit from the latest power-saving features from Intel. It can be also true to older version of Microsoft Windows.

Does this imply ACPI spec is out-dated and x86 hardware can provide more advanced power management features than ACPI can describe? Probably. If this is true, we should be seeing spec updates from ACPI groups soon. Meanwhile, power management becomes more challenging for system vendors as BIOS is no longer sufficient.

No comments:

Post a Comment