Is it really necessary to further expand the code duplication in Xen (instead
of re-using the already existing code in dom0)? I was under the impression
that the latter had been the plan for as much as possible of both Cx and Px
handling... Jan
>>> "Liu, Jinsong" <jinsong.liu@xxxxxxxxx> 13.05.08 05:09 >>>
Hi,
The following patchset is to add processor P state power management
support to Xen X86.
Basic Description:
==============
Cpufreq is a fundemantal feature of prosessor power management. In X86,
It is defined as processor P state in ACPI spec, and supported by most
x86 processors. Linux supports cpufreq related features by ACPI P state
lib, cpufreq drivers, and cpufreq policies. This patchset intend to add
this feature to Xen.
Basically following things need to be done to support P state
- get P state info from ACPI table;
- setup cpufreq infrastructure at hypervisor;
- setup cpufreq ondemand policy at hypervisor;
Considering dom0 kernel already has provided ACPI CA and perflib, the
first task is done in dom0 kernel, and transfer Px related info to
hypervisor via hypercall. The second task, to setup cpufreq
infrastructure, is done in hypervisor, including cpufreq drivers and
policy data structure. The third task, to setup cpufreq policy, is also
done in hypervisor based on the infrastructure, implementing the goal to
manage processor P state according to processor domain dependency and
workload, keeping balance between processor performance and power
consumption.
Currently Px patch provide user to choose processor P state controlled
by the new hypervisor control model by adding xen grub cmdline
"cpufreq=xen-cpufreq" option, or, keep original dom0 kernel control
model (still) by adding xen grub cmdline "cpufreq=dom0-kernel" option.
In this version, Px algorithm is ported from Linux cpufreq ondemand
policy, and some other features like user governor and power aware
schedule is our next plan.
Patch Description:
=============
This patchset is based on cset xen-linux-535/xen-staging-17602
[Patch 1/5] [dom0] Fix a bug related to parse named objects
[Patch 2/5] [dom0] Basic framework of getting and notifying Px info
[Patch 3/5] [xen] Get ACPI Px from dom0 and chose Px controller
[Patch 4/5] [xen] Setup cpufreq infrusturcture, driver and tools
[Patch 5/5] [xen] Implement cpufreq ondemand policy
Special notes on get_measured_perf( )
============================
get_measured_perf( unsigned int cpu ) is a function to measure
processor's average frequency over a period of time according to
IA32_MPERF and IA32_APERF MSRs. Currently this function just test
average frequency of the processor which runs the process. We plan to
expand handle query on non-current cpu later.
-------------------------------------------------------
Thanks,
Jinsong
____________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|