The existing interrupt allocation scheme in SPAPR assumes that interrupts are allocated at the start time, continously and the config will not change. However, there are cases when this is not going to work such as:
1. migration - we will have to have an ability to choose interrupt numbers for devices in the command line and this will create gaps in interrupt space. 2. PCI hotplug - interrupts from unplugged device need to be returned back to interrupt pool, otherwise we will quickly run out of interrupts if we do PCI hotplug often. First this was posted as "[PATCH 0/8] spapr: fix IOMMU and XICS/IRQs migration" but since then we decided to migrate IOMMU in a different way and now it just about interrupts. This is also going to be used in spapr_pci's ibm,change-msi callback to release interrupts and reallocate them again. At the moment spapr_pci keeps a map of what it allocated for what device and it would be nice to get rid of that mapping too and use this patchset instead. Please comment. Thanks! Alexey Kardashevskiy (6): xics: add flags for interrupts xics: add find_server xics: disable flags reset on xics reset spapr: move interrupt allocator to xics spapr: remove @next_irq xics: implement xics_ics_free() hw/intc/xics.c | 150 +++++++++++++++++++++++++++++++++++++++++++++---- hw/intc/xics_kvm.c | 9 +-- hw/ppc/spapr.c | 70 +---------------------- hw/ppc/spapr_events.c | 2 +- hw/ppc/spapr_pci.c | 6 +- hw/ppc/spapr_vio.c | 2 +- include/hw/ppc/spapr.h | 11 ---- include/hw/ppc/xics.h | 9 ++- trace-events | 6 ++ 9 files changed, 162 insertions(+), 103 deletions(-) -- 1.8.4.rc4