diff options
author | Steve Sistare <steven.sistare@oracle.com> | 2025-08-26 11:21:28 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2025-08-30 16:37:22 +0100 |
commit | 376cdd7e9c94f1e03b2c58e068e8ebfe78b49514 (patch) | |
tree | 0359718c9ff3f3d476330beff58eac7a20d5a350 /scripts/lib/kdoc/kdoc_parser.py | |
parent | 6e6d5fb4b928f09b46d0fa99830d75cddb22f73b (diff) | |
download | qemu-376cdd7e9c94f1e03b2c58e068e8ebfe78b49514.zip qemu-376cdd7e9c94f1e03b2c58e068e8ebfe78b49514.tar.gz qemu-376cdd7e9c94f1e03b2c58e068e8ebfe78b49514.tar.bz2 |
hw/intc/arm_gicv3_kvm: preserve pending interrupts during cpr
Close a race condition that causes cpr-transfer to lose VFIO
interrupts on ARM.
CPR stops VCPUs but does not disable VFIO interrupts, which may continue
to arrive throughout the transition to new QEMU.
CPR calls kvm_irqchip_remove_irqfd_notifier_gsi in old QEMU to force
future interrupts to the producer eventfd, where they are preserved.
Old QEMU then destroys the old KVM instance. However, interrupts may
already be pending in KVM state. To preserve them, call ioctl
KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES to flush them to guest RAM, where
they will be picked up when the new KVM+VCPU instance is created.
Cc: qemu-stable@nongnu.org
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Message-id: 1754936384-278328-1-git-send-email-steven.sistare@oracle.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'scripts/lib/kdoc/kdoc_parser.py')
0 files changed, 0 insertions, 0 deletions