[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


 


Rackspace

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