[RFC PATCH v1 0/4] Add migration support for VFIO device

Kirti Wankhede
2018-10-16T18:12:34Z

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