]> www.infradead.org Git - users/jedix/linux-maple.git/commit
[CPUFREQ] xen: governor for Xen hypervisor frequency scaling.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 3 Feb 2012 21:03:20 +0000 (16:03 -0500)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Mon, 27 Feb 2012 01:06:00 +0000 (20:06 -0500)
commit5d9795e44484cfee502e33aefc3d4c3a01a8bfcd
tree4f456664202c9134525027fb994c51cc14a2b53b
parentdbfc50d4f99297ceb8a86d2b996f658cce144a80
[CPUFREQ] xen: governor for Xen hypervisor frequency scaling.

This CPU freq governor leaves the frequency decision to the Xen hypervisor.

To do that the driver parses the Power Management data and uploads said
information to the Xen hypervisor. Then the Xen hypervisor can select the
proper Cx and Pxx states for the initial domain and all other domains.

To upload the information, this CPU frequency driver reads Power Management (PM)
(_Pxx and _Cx) which are populated in the 'struct acpi_processor' structure.
It simply reads the contents of that structure and pass it up the Xen hypervisor.
For that to work we depend on the appropriate CPU frequency scaling driver
to do the heavy-lifting - so that the contents is correct.

The CPU frequency governor it has been loaded also sets up a timer
to check if the ACPI IDs count is different from the APIC ID count - which
can happen if the user choose to use dom0_max_vcpu argument. In such a case
a backup of the PM structure is used and uploaded to the hypervisor.

[v1-v2: Initial RFC implementations that were posted]
[v3: Changed the name to passthru suggested by Pasi Kärkkäinen <pasik@iki.fi>]
[v4: Added vCPU != pCPU support - aka dom0_max_vcpus support]
[v5: Cleaned up the driver, fix bug under Athlon XP]
[v6: Changed the driver to a CPU frequency governor]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Conflicts:

drivers/xen/Kconfig
drivers/xen/Makefile
drivers/xen/Kconfig
drivers/xen/Makefile
drivers/xen/cpufreq_xen.c [new file with mode: 0644]