Add migration support for VFIO device This Patch set include patches as below: - Define KABI for VFIO device for migration support. - Generic migration functionality for VFIO device. * This patch set adds functionality only for PCI devices, but can be extended to other VFIO devices. * Added all the basic functions required for pre-copy, stop-and-copy and resume phases of migration. * Added state change notifier and from that notifier function, VFIO device's state changed is conveyed to VFIO vendor driver. * During save setup phase and resume/load setup phase, migration region is queried from vendor driver and is mmaped by QEMU. This region is used to read/write data from and to vendor driver. * .save_live_pending, .save_live_iterate and .is_active_iterate are implemented to use QEMU's functionality of iteration during pre-copy phase. * In .save_live_complete_precopy, that is in stop-and-copy phase, iteration to read data from vendor driver is implemented till pending bytes returned by vendor driver are not zero. * .save_cleanup and .load_cleanup are implemented to unmap migration region that was setup duing setup phase. * Added function to get dirty pages bitmap from vendor driver. - Add vfio_listerner_log_sync to mark dirty pages. - Make VFIO PCI device migration capable. Thanks, Kirti Kirti Wankhede (4): VFIO KABI for migration interface Add migration functions for VFIO devices Add vfio_listerner_log_sync to mark dirty pages Make vfio-pci device migration capable. hw/vfio/Makefile.objs | 2 +- hw/vfio/common.c | 32 ++ hw/vfio/migration.c | 716 ++++++++++++++++++++++++++++++++++++++++++ hw/vfio/pci.c | 13 +- include/hw/vfio/vfio-common.h | 23 ++ linux-headers/linux/vfio.h | 91 ++++++ 6 files changed, 869 insertions(+), 8 deletions(-) create mode 100644 hw/vfio/migration.c -- 2.7.0