[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v3 00/12]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 Oleksandr Dmytryshyn (12): 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 xsm: enable xsm_platform_op hook for all architectures xen: arm: implement platform hypercall cpufreq: add hwdom-cpufreq driver xen: arm: implement XEN_SYSCTL_cpufreq_op 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 | 67 +++++ 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 | 10 +- 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 | 272 +++++++++++++++++++++ xen/drivers/cpufreq/utility.c | 13 +- xen/drivers/pm/Makefile | 1 + xen/drivers/{acpi/pmstat.c => pm/stat.c} | 16 +- xen/include/public/platform.h | 1 + xen/include/public/sysctl.h | 19 ++ xen/include/public/xen.h | 1 + xen/include/{acpi/cpufreq => xen}/cpufreq.h | 15 +- 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 +- 33 files changed, 611 insertions(+), 37 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%) rename xen/include/{acpi/cpufreq => xen}/cpufreq.h (96%) 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 |