|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v5 00/10] xen_cpufreq implementation in kernel
Hi to all.
Next series of patches implements xen-cpufreq driver in kernel.
Cpufreq core and registered cpufreq governors are located in xen. Hwdom has CPU
driver which can only change frequency of the physical CPUs. In addition this
driver can change CPUs regulator voltage. At start time xen-cpufreq driver
in hwdom reads an information about physical CPUs number and uploads to Xen
information about those physical cpus. Then hwdon uses XEN_SYSCTL_cpufreq_op
operation to start events from hwdom-cpufreq ddriver in Xen.
Changing frequency workflow:
* hwdom-cpufreq driver in Xen wants to change the
frequency of the physical CPU
* hwdom-cpufreq in Xen sets parameters in the shared
memory
* hwdom-cpufreq driver in Xen sends an event via event channel
to notify the xen-cpufreq driver in hwdom
* xen-cpufreq driver in hwdom reads parameters from the shared
memory, changes frequency and copies the result of
the operation to the shared memory
* xen-cpufreq driver in hwdom sends an event via event channel
to notify the cpufreq driver in Xen
Next configs should be enabled to use xen-cpufreq driver:
CONFIG_GENERIC_CPUFREQ_CPU0
CONFIG_XEN_CPUFREQ
Changed since v1:
* added cpufreq_drv_ops which allows to use more than one high-level
cpufreq driver
* reworked xen-cpufreq and drivers so the same kernel is able to run
on bare metal and within Xen.
Changed since v2:
* used VIRQ_CPUFREQ with number 14 instead of the 13
* slightly reworked xen-cpufreq driver
Changed since v3:
* documented /hypervisor/pcpus/ node
* added cpufreq shared info definition to receive commands from the
Xen cpufreq driver
* config CONFIG_CPUMASK_OFFSTACK now is checked in the Kconfig
Changed since v4:
* implemented an event channel between Xen and hwdom
* restored XEN_SYSCTL_cpufreq_op definition (start/stop hwdom-cpufreq
driver events)
* extended comments for some patches (adding hypercalls, adding xen-cpufreq
driver)
* removed VIRQ_CPUFREQ
Oleksandr Dmytryshyn (10):
PM / OPP: make cpufreq functions dependent on CONFIG_CPU_FREQ_TABLE
xen/arm: add sysctl hypercall
xen/arm: add dom0_op hypercall
docs: Xen ARM DT bindings: document pcpus property
cpufreq: cpufreq-cpu0: change cpus data path in devtree for hwdom
kernel
cpufreq: introduce cpufreq_drv_ops
cpufreq: make cpufreq low-level drivers visible for CPUFREQ_DRV_OPS
config
xen: arm: add cpufreq shared info definition
xen/arm: add XEN_SYSCTL_cpufreq_op definition
xen/arm: cpufreq: add xen-cpufreq driver
Documentation/devicetree/bindings/arm/xen.txt | 20 +-
arch/arm/include/asm/xen/hypercall.h | 2 +
arch/arm/include/asm/xen/interface.h | 17 +-
arch/arm/xen/enlighten.c | 2 +
arch/arm/xen/hypercall.S | 2 +
drivers/Makefile | 2 +-
drivers/base/power/opp.c | 4 +-
drivers/cpufreq/Kconfig | 40 +-
drivers/cpufreq/Makefile | 2 +
drivers/cpufreq/acpi-cpufreq.c | 5 +-
drivers/cpufreq/cpufreq-cpu0.c | 8 +-
drivers/cpufreq/cpufreq.c | 116 ++--
drivers/cpufreq/cpufreq_drv_ops.c | 196 ++++++
drivers/cpufreq/cpufreq_drv_ops.h | 54 ++
drivers/cpufreq/cpufreq_governor.c | 4 +-
drivers/cpufreq/xen-cpufreq.c | 917 ++++++++++++++++++++++++++
include/linux/cpufreq.h | 2 +-
include/linux/opp.h | 2 +-
include/xen/interface/platform.h | 1 +
include/xen/interface/sysctl.h | 89 +++
include/xen/interface/xen.h | 6 +
21 files changed, 1423 insertions(+), 68 deletions(-)
create mode 100644 drivers/cpufreq/cpufreq_drv_ops.c
create mode 100644 drivers/cpufreq/cpufreq_drv_ops.h
create mode 100644 drivers/cpufreq/xen-cpufreq.c
create mode 100644 include/xen/interface/sysctl.h
--
1.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |