[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 0/9] Porting the intel_pstate driver to Xen



Hi,

This patch series ports the intel_pstate driver from the Linux kernel to 
Xen. The intel_pstate driver is used to tune P states for SandyBridge+ 
processors. It can be disabled by adding "intel_pstate=disable" to the
booting parameter list.

The intel_pstate.c file under xen/arch/x86/acpi/cpufreq/ contains all
the logic for selecting the current P-state. It follows its 
implementation in the kernel. Instead of using the traditional cpufreq 
governors, intel_pstate implements its internal governor in the 
"setpolicy()". In order to better support future Intel CPUs (e.g. the HWP 
feature on Skylake+), intel_pstate changes to tune P-state based
on percentage values.

The xenpm tool is also upgraded to support the intel_pstate driver. If
intel_pstate is used, "get-cpufreq-para" displays percentage value based
feedback. An example is shown below:
cpu id               : 0
affected_cpus        : 0
cpuinfo frequency    : max [3700000] min [1200000] cur [1200000]
scaling_driver       : intel_pstate
scaling_avail_gov    : internal
current_governor     : internal
num_pstates          : 26
max_perf_pct         : 100
min_perf_pct         : 32
turbo_pct            : 54
turbo mode           : enabled


Wei Wang (9):
  x86/acpi: add a common interface for matching the current cpu against
    an array of x86_cpu_ids
  x86/intel_pstate: add some calculation related support
  x86/cpu_hotplug: add the unregister_cpu_notifier function to support
    CPU hotplug
  x86/intel_pstate: add new policy fields and a new driver interface
  x86/intel_pstate: relocate the driver register/unregister function
  x86/intel_pstate: the main boby of the intel_pstate driver
  x86/intel_pstate: add a booting param to select the driver to load
  x86/intel_pstate: support the use of intel_pstate in pmstat.c
  x86/intel_pstate: enable xenpm to control the intel_pstate driver

 tools/libxc/include/xenctrl.h             |  20 +-
 tools/libxc/xc_pm.c                       |  26 +-
 tools/misc/xenpm.c                        | 101 +++-
 xen/arch/x86/acpi/cpufreq/Makefile        |   1 +
 xen/arch/x86/acpi/cpufreq/cpufreq.c       |   9 +-
 xen/arch/x86/acpi/cpufreq/intel_pstate.c  | 859 ++++++++++++++++++++++++++++++
 xen/arch/x86/cpu/common.c                 |  39 ++
 xen/arch/x86/cpu/mwait-idle.c             |  30 +-
 xen/common/cpu.c                          |   7 +
 xen/drivers/acpi/pmstat.c                 |  57 +-
 xen/drivers/cpufreq/cpufreq.c             |  27 +-
 xen/drivers/cpufreq/utility.c             |   5 +
 xen/include/acpi/cpufreq/cpufreq.h        |  44 +-
 xen/include/acpi/cpufreq/processor_perf.h |   3 +
 xen/include/asm-x86/cpufeature.h          |   1 +
 xen/include/asm-x86/div64.h               |  68 +++
 xen/include/asm-x86/msr-index.h           |   3 +
 xen/include/asm-x86/processor.h           |  10 +
 xen/include/public/sysctl.h               |  22 +-
 xen/include/xen/cpu.h                     |   1 +
 xen/include/xen/kernel.h                  |  30 ++
 21 files changed, 1261 insertions(+), 102 deletions(-)
 create mode 100644 xen/arch/x86/acpi/cpufreq/intel_pstate.c

-- 
1.9.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.