[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v4 00/15] PVH VCPU hotplug support



This series adds support for ACPI-based VCPU hotplug for unprivileged
PVH guests.

Changes in v4:
* Replaced XEN_DOMCTL_set_avail_vcpus with XEN_DOMCTL_acpi_access,
  toolstack is expected to issue two ACPI "writes" to trigger the hotplug
* Moved pm1a registers from PMTState to hvm_domain. gpe0 registers are
  added there.
* Both pm1a and gpe0 registers are now represented as uint16_t for status
  and enable (and as result no new public macros for those registers' length
  are needed). Ths is partly to avoid changes in HVM code (i.e. pmtimer)
  and partly to simplify code. I don't expect larger registers will be
  needed any time soon.
* ACPI handling now lives in xen/arch/x86/hvm/acpi.c
* Moved definition of XEN_ACPI_CPU_MAP/XEN_GPE0_CPUHP_BIT from ioreq.h
  to public/arch-x86/xen.h. This is the best I could come up with but
  ioreq is the wrong place, now that everything happens in acpi.c
* Reordered some patches


Boris Ostrovsky (15):
  x86/pmtimer: Move ACPI registers from PMTState to hvm_domain
  acpi: Make pmtimer optional in FADT
  acpi: Power and Sleep ACPI buttons are not emulated for PVH guests
  acpi: PVH guests need _E02 method
  acpi/x86: Define ACPI IO registers for PVH guests
  domctl: Add XEN_DOMCTL_acpi_access
  pvh/acpi: Install handlers for ACPI-related PVH IO accesses
  pvh/acpi: Handle ACPI accesses for PVH guests
  x86/domctl: Handle ACPI access from domctl
  events/x86: Define SCI virtual interrupt
  pvh: Send an SCI on VCPU hotplug event
  tools: Call XEN_DOMCTL_acpi_access on PVH VCPU hotplug
  pvh: Set online VCPU map to avail_vcpus
  pvh/acpi: Save ACPI registers for PVH guests
  docs: Describe PVHv2's VCPU hotplug procedure

 docs/misc/hvmlite.markdown             |  13 ++
 tools/firmware/hvmloader/util.c        |   4 +-
 tools/libacpi/build.c                  |   7 +
 tools/libacpi/libacpi.h                |   2 +
 tools/libacpi/mk_dsdt.c                |  17 ++-
 tools/libacpi/static_tables.c          |   4 +
 tools/libxc/include/xenctrl.h          |  20 +++
 tools/libxc/xc_domain.c                |  36 ++++++
 tools/libxl/libxl.c                    |   8 +-
 tools/libxl/libxl_arch.h               |   4 +
 tools/libxl/libxl_arm.c                |   6 +
 tools/libxl/libxl_x86.c                |  21 +++
 tools/libxl/libxl_x86_acpi.c           |   6 +-
 tools/misc/xen-hvmctx.c                |   4 +-
 xen/arch/x86/domctl.c                  |   9 ++
 xen/arch/x86/hvm/Makefile              |   1 +
 xen/arch/x86/hvm/acpi.c                | 225 +++++++++++++++++++++++++++++++++
 xen/arch/x86/hvm/hvm.c                 |   2 +
 xen/arch/x86/hvm/pmtimer.c             |  75 +++++++----
 xen/common/domctl.c                    |   5 +
 xen/common/event_channel.c             |   7 +-
 xen/include/asm-x86/domain.h           |   2 +
 xen/include/asm-x86/hvm/domain.h       |   6 +
 xen/include/asm-x86/hvm/vpt.h          |   1 -
 xen/include/public/arch-x86/hvm/save.h |   8 +-
 xen/include/public/arch-x86/xen.h      |  14 +-
 xen/include/public/domctl.h            |  25 ++++
 xen/include/xen/domain.h               |   1 +
 xen/include/xen/event.h                |   8 ++
 xen/include/xen/sched.h                |   3 +
 30 files changed, 498 insertions(+), 46 deletions(-)
 create mode 100644 xen/arch/x86/hvm/acpi.c


-- 
2.7.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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