qemu/hw/intc
David Gibson 11ad93f681 xics-kvm: Support for in-kernel XICS interrupt controller
Recent (host) kernels support emulating the PAPR defined "XICS" interrupt
controller system within KVM.  This patch allows qemu to initialize and
configure the in-kernel XICS, and keep its state in sync with qemu's XICS
state as necessary.

This should give considerable performance improvements.  e.g. on a simple
IPI ping-pong test between hardware threads, using qemu XICS gives us
around 5,000 irqs/second, whereas the in-kernel XICS gives us around
70,000 irqs/s on the same hardware configuration.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
[Mike Qiu <qiudayu@linux.vnet.ibm.com>: fixed mistype which caused ics_set_kvm_state() to fail]
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
2013-10-25 23:25:47 +02:00
..
apic_common.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
apic.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
arm_gic_common.c arm_gic: QOM cast cleanup 2013-07-29 21:06:57 +02:00
arm_gic_kvm.c hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
arm_gic.c arm_gic: QOM cast cleanup 2013-07-29 21:06:57 +02:00
armv7m_nvic.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
etraxfs_pic.c etraxfs_pic: QOM cast cleanup 2013-07-29 21:06:57 +02:00
exynos4210_combiner.c exynos4210_combiner: QOM cast cleanup 2013-07-29 21:06:57 +02:00
exynos4210_gic.c exynos4210_gic: QOM cast cleanup for exynos4210.irq_gate 2013-07-29 21:06:57 +02:00
gic_internal.h arm_gic: QOM cast cleanup 2013-07-29 21:06:57 +02:00
grlib_irqmp.c grlib_irqmp: QOM cast cleanup 2013-07-29 21:06:57 +02:00
heathrow_pic.c memory: add owner argument to initialization functions 2013-07-04 17:42:44 +02:00
i8259_common.c isa: QOM'ify ISADevice 2013-06-07 14:55:33 +02:00
i8259.c aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
imx_avic.c imx_avic: QOM cast cleanup 2013-07-29 21:06:05 +02:00
ioapic_common.c ioapic: Use QOM realize for ioapic 2013-07-23 00:37:35 +02:00
ioapic.c ioapic: QOM cast cleanup 2013-07-29 21:07:02 +02:00
lm32_pic.c lm32_pic: QOM cast cleanup 2013-07-29 21:06:57 +02:00
Makefile.objs xics-kvm: Support for in-kernel XICS interrupt controller 2013-10-25 23:25:47 +02:00
omap_intc.c omap_intc: QOM'ify omap-intc and omap2-intc 2013-07-29 21:06:58 +02:00
openpic_kvm.c hw/i*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
openpic.c intc/openpic: Build openpic only once 2013-07-09 21:33:02 +02:00
pl190.c pl190: QOM cast cleanup 2013-07-29 21:06:58 +02:00
puv3_intc.c puv3_intc: QOM cast cleanup 2013-07-29 21:06:58 +02:00
realview_gic.c realview_gic: QOM cast cleanup 2013-07-29 21:06:58 +02:00
sh_intc.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
slavio_intctl.c slavio_intctl: QOM cast cleanup 2013-07-29 21:06:58 +02:00
xics_kvm.c xics-kvm: Support for in-kernel XICS interrupt controller 2013-10-25 23:25:47 +02:00
xics.c xics: add cpu_setup callback 2013-10-25 23:25:47 +02:00
xilinx_intc.c xilinx_intc: QOM cast cleanup 2013-07-29 21:06:58 +02:00