qemu/include/hw/s390x
Thomas Huth c1991c0984 hw/intc/s390_flic: Fix interrupt controller migration on s390x with TCG
Migration of a s390x guest with TCG was long known to be very unstable,
so the tests in tests/qtest/migration-test.c are disabled if running
with TCG instead of KVM.

Nicholas Piggin did a great analysis of the problem:

"The flic pending state is not migrated, so if the machine is migrated
 while an interrupt is pending, it can be lost. This shows up in
 qtest migration test, an extint is pending (due to console writes?)
 and the CPU waits via s390_cpu_set_psw and expects the interrupt to
 wake it. However when the flic pending state is lost, s390_cpu_has_int
 returns false, so s390_cpu_exec_interrupt falls through to halting
 again."

Thus let's finally migrate the pending state, and to be on the safe
side, also the other state variables of the QEMUS390FLICState structure.

Message-ID: <20240619144421.261342-1-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2024-07-02 08:02:01 +02:00
..
3270-ccw.h Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
adapter.h kvm: move target-dependent interrupt routing out of kvm-all.c 2024-05-03 15:47:48 +02:00
ap-bridge.h s390x/ap: base Adjunct Processor (AP) object model 2018-10-12 11:32:18 +02:00
ap-device.h ap-device: Rename AP_DEVICE_TYPE to TYPE_AP_DEVICE 2020-09-09 13:20:22 -04:00
cpu-topology.h s390x/cpu topology: resetting the Topology-Change-Report 2023-10-20 07:16:53 +02:00
css-bridge.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
css.h s390: move css_migration_enabled from machine to css.c 2024-05-10 15:45:15 +02:00
ebcdic.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
event-facility.h s390x/event-facility: Simplify sclp_get_event_facility_bus() 2024-05-10 06:23:56 +02:00
ioinst.h s390x/css: fix PMCW invalid mask 2022-01-17 08:34:19 +01:00
s390_flic.h hw/intc/s390_flic: Fix interrupt controller migration on s390x with TCG 2024-07-02 08:02:01 +02:00
s390-ccw.h s390x/css: Make S390CCWDeviceClass::realize return bool 2024-06-24 08:03:33 +02:00
s390-pci-bus.h s390x/pci: drive ISM reset from subsystem reset 2024-01-19 11:38:32 +01:00
s390-pci-clp.h Clean up ill-advised or unusual header guards 2022-05-11 16:50:01 +02:00
s390-pci-inst.h s390x/pci: create a header dedicated to PCI CLP 2020-11-01 12:30:52 -07:00
s390-pci-kvm.h s390x/pci: enable adapter event notification for interpreted devices 2022-09-26 17:23:47 +02:00
s390-pci-vfio.h s390x/pci: add routine to get host function handle from CLP info 2022-09-26 17:23:47 +02:00
s390-virtio-ccw.h s390: move css_migration_enabled from machine to css.c 2024-05-10 15:45:15 +02:00
sclp.h s390x: Introduce a SCLPDevice pointer under the machine 2024-05-10 06:23:56 +02:00
storage-attributes.h s390/stattrib: Add Error** argument to set_migrationmode() handler 2024-04-23 18:36:01 -04:00
storage-keys.h hw/s390x: Introduce s390_skeys_get|set() helpers 2024-06-19 12:42:03 +02:00
tod.h target/s390x: start moving TCG-only code to tcg/ 2021-07-07 14:01:56 +02:00
vfio-ccw.h vfio/ccw: Remove redundant definition of TYPE_VFIO_CCW 2023-10-18 10:10:49 +02:00