qemu-cr16/include/migration
Yanfei Xu d943cef760 migration: ensure APIC is loaded prior to VFIO PCI devices
The load procedure of VFIO PCI devices involves setting up IRT
for each VFIO PCI devices. This requires determining whether an
interrupt is single-destination interrupt to decide between
Posted Interrupt(PI) or remapping mode for the IRTE. However,
determining this may require accessing the VM's APIC registers.

For example:
ioctl(vbasedev->fd, VFIO_DEVICE_SET_IRQS, irqs)
  ...
    kvm_arch_irq_bypass_add_producer
      kvm_x86_call(pi_update_irte)
        vmx_pi_update_irte
          kvm_intr_is_single_vcpu

If the LAPIC has not been loaded yet, interrupts will use remapping
mode. To prevent the fallback of interrupt mode, keep APIC is always
loaded prior to VFIO PCI devices.

Signed-off-by: Yicong Shen <shenyicong.1023@bytedance.com>
Signed-off-by: Yanfei Xu <yanfei.xu@bytedance.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20250818131127.1021648-1-yanfei.xu@bytedance.com
Signed-off-by: Peter Xu <peterx@redhat.com>
2025-10-03 09:48:02 -04:00
..
blocker.h migration: per-mode blockers 2023-11-01 16:13:59 +01:00
client-options.h migration: Add MIG_CMD_SWITCHOVER_START and its load handler 2025-03-06 06:47:33 +01:00
colo.h migration: push Error **errp into loadvm_process_enable_colo() 2025-10-03 09:48:02 -04:00
cpr.h migration: vfio cpr state hook 2025-07-03 13:42:28 +02:00
cpu.h Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
failover.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
global_state.h migration: never fail in global_state_store() 2023-06-02 01:03:19 +02:00
misc.h migration: Rename save_live_complete_precopy_thread to save_complete_precopy_thread 2025-07-11 10:37:39 -03:00
qemu-file-types.h migration/qemu-file: add utility methods for working with seekable channels 2024-03-01 15:42:04 +08:00
register.h migration: Rename save_live_complete_precopy_thread to save_complete_precopy_thread 2025-07-11 10:37:39 -03:00
snapshot.h migration: preserve suspended for snapshot 2024-01-04 09:52:42 +08:00
vmstate.h migration: ensure APIC is loaded prior to VFIO PCI devices 2025-10-03 09:48:02 -04:00