qemu/include
Cédric Le Goater 9b88cd7673 spapr/xive: introduce a VM state change handler
This handler is in charge of stabilizing the flow of event notifications
in the XIVE controller before migrating a guest. This is a requirement
before transferring the guest EQ pages to a destination.

When the VM is stopped, the handler sets the source PQs to PENDING to
stop the flow of events and to possibly catch a triggered interrupt
occuring while the VM is stopped. Their previous state is saved. The
XIVE controller is then synced through KVM to flush any in-flight
event notification and to stabilize the EQs. At this stage, the EQ
pages are marked dirty to make sure the EQ pages are transferred if a
migration sequence is in progress.

The previous configuration of the sources is restored when the VM
resumes, after a migration or a stop. If an interrupt was queued while
the VM was stopped, the handler simply generates the missing trigger.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20190513084245.25755-6-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-05-29 11:39:46 +10:00
..
authz Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
block block: Propagate AioContext change to parents 2019-05-20 17:08:56 +02:00
chardev Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
crypto crypto: Change the qcrypto_random_bytes buffer type to void* 2019-05-22 12:38:54 -04:00
disas Normalize header guard symbol definition. 2019-05-13 08:58:55 +02:00
exec semihosting: move semihosting configuration into its own directory 2019-05-28 10:28:50 +01:00
fpu softfloat: Implement float128_to_uint32 2019-02-26 14:05:19 +00:00
hw spapr/xive: introduce a VM state change handler 2019-05-29 11:39:46 +10:00
io io: Make qio_channel_yield() interruptible 2019-02-25 15:03:19 +01:00
libdecnumber
migration migration/colo.h: Remove obsolete codes 2019-05-14 17:33:35 +01:00
monitor monitor: Clean up how monitor_disas() funnels output to monitor 2019-04-18 22:18:59 +02:00
net net: Add a network device specific self-announcement ability 2019-03-05 11:27:41 +08:00
qapi qapi: remove qmp_unregister_command() 2019-02-18 14:44:05 +01:00
qemu util: Add qemu_guest_getrandom and associated routines 2019-05-22 12:38:54 -04:00
qom cpus: Initialize pseudo-random seeds for all guest cpus 2019-05-22 12:38:54 -04:00
scsi Normalize header guard symbol definition. 2019-05-13 08:58:55 +02:00
standard-headers linux headers: update against Linux 5.2-rc1 2019-05-21 16:58:56 +02:00
sysemu semihosting: move semihosting configuration into its own directory 2019-05-28 10:28:50 +01:00
ui Normalize header guard symbol definition. 2019-05-13 08:58:55 +02:00
elf.h elf: Add RISC-V PSABI ELF header defines 2019-03-19 05:14:39 -07:00
glib-compat.h slirp: Move g_spawn_async_with_fds_qemu compatibility to slirp/ 2019-02-07 15:49:08 +02:00
qemu-common.h include: Include fprintf-fn.h only where needed 2019-04-18 22:18:59 +02:00
qemu-io.h
trace-tcg.h