[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v4 00/11] xen_cpufreq implementation in Xen hypervisor
Hi to all. Next series of patches implements xen-cpufreq driver in Xen hypervisor. 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. Changed since v1: * use /xen/include/xen/ instead of the /xen/include/cpufreq/ for included files * move pmstat.c file to the xen/drivers/pm/stat.c instead of the xen/drivers/pm/pmstat.c * updated ./MAINTAINERS accordingly to new files location * introduce HAS_CPU_TURBO config and use it * move ACPI-specific pmstat functions under the CONFIG_ACPI config instead of the CONFIG_X86 config * correct info message in cpufreq_add_cpu() function (remove _PSD prefix for NON ACPI configuration) * dropped patch "[RFC PATCH 07/13] xen/arm: enable cpu hotplug" * dropped patch "[RFC PATCH 08/13] xen/dts: make the dt_find_property function to be global" * create PCPUs device tree node in /hypervisor/pcpus node instead of the /cpus/cpu@0/private_date/ node * reworked platform hypercall implementation (used XSM check for ARM architecture) and moved common code to the common place. * xen-cpufreq driver to the dom0-cpufreq Changed since v2: * corrected comment in xen/drivers/pm/stat.c * restored blank line in xen/drivers/pm/stat.c * corrected #ifdef in xen/drivers/cpufreq/cpufreq.c * removed common file for platform_hypercall implementation * renamed dom0-cpufreq.c to hwdom-cpufreq.c * slightly reworked file hwdom-cpufreq.c * used VIRQ_CPUFREQ with number 14 instead of the 13 Changed since v3: * some fixes in creating device tree nodes for hwdom cpufreq cpu driver * some fixes in hwdom-cpufreq driver * removed XEN_SYSCTL_cpufreq_op implementation * added cpufreq shared info definition to send commands to the hwdom cpufreq driver Oleksandr Dmytryshyn (11): cpufreq: move cpufreq.h file to the xen/include/xen location pm: move processor_perf.h file to the xen/include/xen location pmstat: move pmstat.c file to the xen/drivers/pm/stat.c location cpufreq: make turbo settings to be configurable pmstat: make pmstat functions more generalizable cpufreq: make cpufreq driver more generalizable arch/arm: create device tree nodes for hwdom cpufreq cpu driver xen: arm: implement platform hypercall xen: arm: add cpufreq shared info definition cpufreq: add hwdom-cpufreq driver xen/arm: enable cpufreq functionality for ARM MAINTAINERS | 3 +- xen/Rules.mk | 4 + xen/arch/arm/Makefile | 1 + xen/arch/arm/Rules.mk | 3 + xen/arch/arm/domain_build.c | 78 ++++++- xen/arch/arm/platform_hypercall.c | 84 +++++++ xen/arch/arm/traps.c | 1 + xen/arch/x86/Rules.mk | 2 + xen/arch/x86/acpi/cpu_idle.c | 2 +- xen/arch/x86/acpi/cpufreq/cpufreq.c | 2 +- xen/arch/x86/acpi/cpufreq/powernow.c | 2 +- xen/arch/x86/acpi/power.c | 2 +- xen/arch/x86/cpu/mwait-idle.c | 2 +- xen/arch/x86/platform_hypercall.c | 2 +- xen/common/sysctl.c | 2 +- xen/drivers/Makefile | 1 + xen/drivers/acpi/Makefile | 1 - xen/drivers/cpufreq/Makefile | 1 + xen/drivers/cpufreq/cpufreq.c | 82 ++++++- xen/drivers/cpufreq/cpufreq_misc_governors.c | 2 +- xen/drivers/cpufreq/cpufreq_ondemand.c | 4 +- xen/drivers/cpufreq/hwdom-cpufreq.c | 252 +++++++++++++++++++++ xen/drivers/cpufreq/utility.c | 13 +- xen/drivers/pm/Makefile | 1 + xen/drivers/{acpi/pmstat.c => pm/stat.c} | 16 +- xen/include/asm-arm/shared.h | 14 ++ xen/include/public/arch-arm.h | 8 + xen/include/public/platform.h | 1 + xen/include/public/xen.h | 1 + xen/include/{acpi/cpufreq => xen}/cpufreq.h | 13 +- xen/include/{acpi/cpufreq => xen}/processor_perf.h | 7 + xen/include/xsm/dummy.h | 12 +- xen/include/xsm/xsm.h | 10 +- xen/xsm/flask/hooks.c | 3 +- 34 files changed, 587 insertions(+), 45 deletions(-) create mode 100644 xen/arch/arm/platform_hypercall.c create mode 100644 xen/drivers/cpufreq/hwdom-cpufreq.c create mode 100644 xen/drivers/pm/Makefile rename xen/drivers/{acpi/pmstat.c => pm/stat.c} (97%) create mode 100644 xen/include/asm-arm/shared.h rename xen/include/{acpi/cpufreq => xen}/cpufreq.h (97%) rename xen/include/{acpi/cpufreq => xen}/processor_perf.h (95%) -- 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 |