mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
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>
This commit is contained in:
parent
c80a339587
commit
c1991c0984
3 changed files with 78 additions and 3 deletions
|
@ -116,6 +116,7 @@ struct QEMUS390FLICState {
|
|||
uint8_t simm;
|
||||
uint8_t nimm;
|
||||
QLIST_HEAD(, QEMUS390FlicIO) io[8];
|
||||
bool migrate_all_state;
|
||||
};
|
||||
|
||||
uint32_t qemu_s390_flic_dequeue_service(QEMUS390FLICState *flic);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue