[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.