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
