On 5/30/2022 8:07 PM, Avihai Horon wrote:
Hello,

Following VFIO migration protocol v2 acceptance in kernel, this series
implements VFIO migration according to the new v2 protocol and replaces
the now deprecated v1 implementation.

The main differences between v1 and v2 migration protocols are:
1. VFIO device state is represented as a finite state machine instead of
    a bitmap.

2. The migration interface with kernel is done using VFIO_DEVICE_FEATURE
    ioctl and normal read() and write() instead of the migration region
    used in v1.

3. Migration protocol v2 currently doesn't support the pre-copy phase of
    migration.

Full description of the v2 protocol and the differences from v1 can be
found here [1].

Patches 1-3 are prep patches fixing bugs and adding QEMUFile function
that will be used later.

Patches 4-6 refactor v1 protocol code to make it easier to add v2
protocol.

Patches 7-11 implement v2 protocol and remove v1 protocol.

Thanks.

[1]
https://lore.kernel.org/all/20220224142024.147653-10-yish...@nvidia.com/

Changes from v1: 
https://lore.kernel.org/all/20220512154320.19697-1-avih...@nvidia.com/
- Split the big patch that replaced v1 with v2 into several patches as
   suggested by Joao, to make review easier.
- Change warn_report to warn_report_once when container doesn't support
   dirty tracking.
- Add Reviewed-by tag.

Avihai Horon (11):
   vfio/migration: Fix NULL pointer dereference bug
   vfio/migration: Skip pre-copy if dirty page tracking is not supported
   migration/qemu-file: Add qemu_file_get_to_fd()
   vfio/common: Change vfio_devices_all_running_and_saving() logic to
     equivalent one
   vfio/migration: Move migration v1 logic to vfio_migration_init()
   vfio/migration: Rename functions/structs related to v1 protocol
   vfio/migration: Implement VFIO migration protocol v2
   vfio/migration: Remove VFIO migration protocol v1
   vfio/migration: Reset device if setting recover state fails
   vfio: Alphabetize migration section of VFIO trace-events file
   docs/devel: Align vfio-migration docs to VFIO migration v2

  docs/devel/vfio-migration.rst |  77 ++--
  hw/vfio/common.c              |  21 +-
  hw/vfio/migration.c           | 640 ++++++++--------------------------
  hw/vfio/trace-events          |  25 +-
  include/hw/vfio/vfio-common.h |   8 +-
  migration/migration.c         |   5 +
  migration/migration.h         |   3 +
  migration/qemu-file.c         |  34 ++
  migration/qemu-file.h         |   1 +
  9 files changed, 252 insertions(+), 562 deletions(-)

Ping.


Reply via email to