This series implements support for CPU hotplug/unplug on Arm. To achieve this,
several things need to be done:

1. XEN_SYSCTL_CPU_HOTPLUG_* calls implemented.
2. timer and GIC maintenance interrupts switched to static irqactions to remove
the need for freeing them during release_irq.
3. Enabled the build of xen-hptool on Arm.
4. Migration of irqs from dying CPUs implemented.

Tested on QEMU.

Note: As there are currently no Xen-used IRQs on non-zero CPUs, I used a hack
that changed default affinity of IRQs in setup_irq to properly test IRQ
migration. The hack consisted of changing smp_processor_id call to some
hard-coded non-zero number.

v3->v4:
* add irq migration patches
* see individual patches

v2->v3:
* add docs

v1->v2:
* see individual patches

Mykyta Poturai (5):
  arm/time: Use static irqaction
  arm/gic: Use static irqaction
  arm/irq: Keep track of irq affinities
  arm/irq: Migrate IRQs from dyings CPUs
  smp: Move cpu_up/down helpers to common code
  arm/sysctl: Implement cpu hotplug ops
  tools: Allow building xen-hptool without CONFIG_MIGRATE
  docs: Document CPU hotplug

 config/Tools.mk.in               |  1 +
 docs/misc/cpu-hotplug.txt        | 51 ++++++++++++++++++++++++++++++++
 tools/configure                  | 30 +++++++++++++++++++
 tools/configure.ac               |  1 +
 tools/libs/guest/Makefile.common |  4 +++
 tools/misc/Makefile              |  2 +-
 xen/arch/arm/Kconfig             |  4 +++
 xen/arch/arm/gic.c               | 11 +++++--
 xen/arch/arm/include/asm/irq.h   |  2 ++
 xen/arch/arm/irq.c               | 42 ++++++++++++++++++++++++++
 xen/arch/arm/smp.c               |  6 ++++
 xen/arch/arm/smpboot.c           |  2 ++
 xen/arch/arm/sysctl.c            | 32 ++++++++++++++++++++
 xen/arch/arm/time.c              | 21 ++++++++++---
 xen/arch/ppc/stubs.c             |  4 +++
 xen/arch/riscv/stubs.c           |  5 ++++
 xen/arch/x86/include/asm/smp.h   |  3 --
 xen/arch/x86/smp.c               | 33 ++-------------------
 xen/common/smp.c                 | 32 ++++++++++++++++++++
 xen/include/xen/smp.h            |  4 +++
 20 files changed, 250 insertions(+), 40 deletions(-)
 create mode 100644 docs/misc/cpu-hotplug.txt
 mode change 100755 => 100644 tools/configure

-- 
2.51.2

Reply via email to