[vfio-users] location of regions VFIO_REGION_TYPE_MIGRATION/VFIO_REGION_SUBTYPE_MIGRATION

Thanos Makatos thanos.makatos at nutanix.com
Fri Oct 2 12:54:28 UTC 2020


According to linux/include/uapi/linux/vfio.h, for a device to support migration
it must provide a VFIO capability of type VFIO_REGION_INFO_CAP_TYPE and set
.type/.subtype to VFIO_REGION_TYPE_MIGRATION/VFIO_REGION_TYPE_MIGRATION.

What confuses me is the following:

"The structure vfio_device_migration_info is placed at the 0th offset of
the VFIO_REGION_SUBTYPE_MIGRATION region to get and set VFIO device related
migration information."

Where do regions VFIO_REGION_TYPE_MIGRATION and VFIO_REGION_SUBTYPE_MIGRATION
live on the device's address space? Is just like any other region, except that
in the case of a PCI device it's index must be equal to, or larger than,
VFIO_PCI_NUM_REGIONS, and set arbitrarily by the device implementation? If
so, then I suppose this index must appear in struct vfio_device_info.num_regions?





More information about the vfio-users mailing list