qemu-e2k/include/sysemu
David Gibson 3607715a30 kvm: Introduce KVM irqchip change notifier
Awareness of an in kernel irqchip is usually local to the machine and its
top-level interrupt controller.  However, in a few cases other things need
to know about it.  In particular vfio devices need this in order to
accelerate interrupt delivery.

If interrupt routing is changed, such devices may need to readjust their
connection to the KVM irqchip.  pci_bus_fire_intx_routing_notifier() exists
to do just this.

However, for the pseries machine type we have a situation where the routing
remains constant but the top-level irq chip itself is changed.  This occurs
because of PAPR feature negotiation which allows the guest to decide
between the older XICS and newer XIVE irq chip models (both of which are
paravirtualized).

To allow devices like vfio to adjust to this change, introduce a new
notifier for the purpose kvm_irqchip_change_notify().

Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Tested-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
2019-11-26 10:11:30 +11:00
..
accel.h Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
arch_init.h Include generated QAPI headers less 2019-08-16 13:31:51 +02:00
balloon.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
block-backend.h block: Add @exact parameter to bdrv_co_truncate() 2019-10-28 12:00:07 +01:00
blockdev.h
bt.h
cpus.h target: Simplify how the TARGET_cpu_list() print 2019-04-18 22:18:59 +02:00
cryptodev-vhost-user.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
cryptodev-vhost.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
cryptodev.h Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00
device_tree.h
dma.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
dump-arch.h
dump.h qapi: Split dump.json off misc.json 2019-07-02 13:37:00 +02:00
hax.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
hostmem.h numa: Move remaining NUMA declarations from sysemu.h to numa.h 2019-08-16 13:31:53 +02:00
hvf.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
hw_accel.h hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
iothread.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
kvm_int.h kvm: split too big memory section on several memslots 2019-09-30 13:51:50 +02:00
kvm.h kvm: Introduce KVM irqchip change notifier 2019-11-26 10:11:30 +11:00
memory_mapping.h Clean up inclusion of exec/cpu-common.h 2019-08-16 13:31:52 +02:00
numa.h numa: move numa global variable numa_info into MachineState 2019-09-03 11:26:55 -03:00
os-posix.h
os-win32.h
qtest.h qtest: Rename qtest.c:qtest_init() 2019-08-15 19:23:59 +02:00
replay.h replay: add BH oneshot event for block layer 2019-10-14 17:12:48 +02:00
reset.h
rng-random.h
rng.h virtio-rng: change default backend to rng-builtin 2019-09-04 06:32:51 -04:00
runstate.h sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
seccomp.h
sev.h
sysemu.h bootdevice: FW_CFG interface for LCHS values 2019-10-31 11:47:38 -04:00
tcg.h qemu-common: Move tcg_enabled() etc. to sysemu/tcg.h 2019-06-11 20:22:09 +02:00
tpm_backend.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
tpm.h
vhost-user-backend.h Add vhost-user-backend 2019-05-10 12:48:35 +02:00
watchdog.h
whpx.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
xen-mapcache.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00