[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v5 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. 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 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 Changed since v4: * implemented an event channel between Xen and hwdom * restored XEN_SYSCTL_cpufreq_op definition (start/stop hwdom-cpufreq driver events) * added timer to the hwdom-cpufreq driver (sending command timeout) * slihgtly reworked hwdom-cpufreq driver * removed VIRQ_CPUFREQ 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 xen: arm: implement platform hypercall xen: arm: add cpufreq shared info definition xen: arm: add XEN_SYSCTL_cpufreq_op 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 | 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 | 422 +++++++++++++++++++++ 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 | 12 + xen/include/public/platform.h | 1 + xen/include/public/sysctl.h | 11 + 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 +- 34 files changed, 781 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 (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 |