[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v4 0/9] 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. Dom0 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 kernel uploads to Xen information about physical cpus. Xen notifies Dom0 kernel using VIRQ_CPUFREQ interrupt. Then xen-cpufreq driver in kernel uses XEN_SYSCTL_cpufreq_op operation from HYPERVISOR_sysctl hypercall to get some parameters from Xen (frequency, relation and cpu number). Then xen-cpufreq changes frequency on physical cpu and uses the same XEN_SYSCTL_cpufreq_op operation ti give the result to 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 Oleksandr Dmytryshyn (9): PM / OPP: make cpufreq functions dependent on CONFIG_CPU_FREQ_TABLE xen/arm: implement HYPERVISOR_sysctl xen/arm: implement HYPERVISOR_dom0_op 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: 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 | 13 +- 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 | 10 +- 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 | 869 ++++++++++++++++++++++++++ include/linux/cpufreq.h | 2 +- include/linux/opp.h | 2 +- include/xen/interface/platform.h | 1 + include/xen/interface/sysctl.h | 646 +++++++++++++++++++ include/xen/interface/xen.h | 7 + 21 files changed, 1931 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 |