]> git.proxmox.com Git - mirror_qemu.git/commit
vfio/migration: Change vIOMMU blocker from global to per device
authorZhenzhong Duan <zhenzhong.duan@intel.com>
Mon, 3 Jul 2023 07:15:07 +0000 (15:15 +0800)
committerCédric Le Goater <clg@redhat.com>
Mon, 10 Jul 2023 07:52:52 +0000 (09:52 +0200)
commit3c26c80a0a269ce7870d1475e756607e939226cd
treea5091a89fc7a398f7df05e149db34c3317951f2e
parentadee0da0368f50b3ee934cdeeb6076466dabb268
vfio/migration: Change vIOMMU blocker from global to per device

Contrary to multiple device blocker which needs to consider already-attached
devices to unblock/block dynamically, the vIOMMU migration blocker is a device
specific config. Meaning it only needs to know whether the device is bypassing
or not the vIOMMU (via machine property, or per pxb-pcie::bypass_iommu), and
does not need the state of currently present devices. For this reason, the
vIOMMU global migration blocker can be consolidated into the per-device
migration blocker, allowing us to remove some unnecessary code.

This change also makes vfio_mig_active() more accurate as it doesn't check for
global blocker.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Joao Martins <joao.m.martins@oracle.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
hw/vfio/common.c
hw/vfio/migration.c
hw/vfio/pci.c
include/hw/vfio/vfio-common.h