qemu-e2k/hw/intc
Cédric Le Goater 4c3539d491 spapr/irq: Only claim VALID interrupts at the KVM level
A typical pseries VM with 16 vCPUs, one disk, one network adapater
uses less than 100 interrupts but the whole IRQ number space of the
QEMU machine is allocated at reset time and it is 8K wide. This is
wasting a considerable amount of interrupt numbers in the global IRQ
space which has 1M interrupts per socket on a POWER9.

To optimise the HW resources, only request at the KVM level interrupts
which have been claimed by the guest. This will help to increase the
maximum number of VMs per system and also help supporting nested guests
using the XIVE interrupt mode.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20190911133937.2716-3-clg@kaod.org>
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <156942766014.1274533.10792048853177121231.stgit@bahia.lan>
[dwg: Folded in fix up from Greg Kurz]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-10-04 10:25:23 +10:00
..
Kconfig kconfig: add CONFIG_MSI_NONBROKEN 2019-03-18 09:39:57 +01:00
Makefile.objs hw/intc: Only build the xlnx-iomod-intc device for the MicroBlaze PMU 2019-08-19 21:28:25 +02:00
allwinner-a10-pic.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
apic.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
apic_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arm_gic.c hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
arm_gic_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arm_gic_kvm.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
arm_gicv2m.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arm_gicv3.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
arm_gicv3_common.c hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
arm_gicv3_cpuif.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
arm_gicv3_dist.c hw/intc/arm_gicv3: GICD_TYPER.SecurityExtn is RAZ if GICD_CTLR.DS == 1 2019-06-17 15:13:19 +01:00
arm_gicv3_its_common.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
arm_gicv3_its_kvm.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
arm_gicv3_kvm.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
arm_gicv3_redist.c hw/intc/arm_gicv3: Fix decoding of ID register range 2019-06-17 15:13:19 +01:00
armv7m_nvic.c memory: Access MemoryRegion with endianness 2019-09-03 08:30:39 -07:00
aspeed_vic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
bcm2835_ic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
bcm2836_control.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
etraxfs_pic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
exynos4210_combiner.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
exynos4210_gic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
gic_internal.h hw/intc/arm_gic: Drop GIC_BASE_IRQ macro 2018-09-25 15:13:24 +01:00
gicv3_internal.h target-arm: Add GICv3CPUState in CPUARMState struct 2017-02-28 17:10:00 +00:00
grlib_irqmp.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
heathrow_pic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
i8259.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
i8259_common.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
imx_avic.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
imx_gpcv2.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
intc.c intc: add an interface to gather statistics/informations on interrupt controllers 2016-10-04 10:00:25 +02:00
ioapic.c Include sysemu/sysemu.h a lot less 2019-08-16 13:31:53 +02:00
ioapic_common.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
lm32_pic.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
mips_gic.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
nios2_iic.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
omap_intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ompic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
openpic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
openpic_kvm.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
pl190.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
pnv_xive.c ppc/xive: Improve 'info pic' support 2019-08-21 17:17:39 +10:00
pnv_xive_regs.h ppc/pnv: add a XIVE interrupt controller model for POWER9 2019-03-12 14:33:04 +11:00
puv3_intc.c Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
realview_gic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
s390_flic.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
s390_flic_kvm.c s390x/kvm: Officially require at least kernel 3.15 2019-09-23 09:15:03 +02:00
sh_intc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
slavio_intctl.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_xive.c spapr/xive: Mask the EAS when allocating an IRQ 2019-08-21 17:17:39 +10:00
spapr_xive_kvm.c spapr/irq: Only claim VALID interrupts at the KVM level 2019-10-04 10:25:23 +10:00
trace-events s390x/kvm: Officially require at least kernel 3.15 2019-09-23 09:15:03 +02:00
vgic_common.h intc/gic: Extract some reusable vGIC code 2015-09-24 01:29:36 +01:00
xics.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
xics_kvm.c spapr/irq: Only claim VALID interrupts at the KVM level 2019-10-04 10:25:23 +10:00
xics_pnv.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
xics_spapr.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
xilinx_intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
xive.c ppc/xive: Improve 'info pic' support 2019-08-21 17:17:39 +10:00
xlnx-pmu-iomod-intc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
xlnx-zynqmp-ipi.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00