> VFIO Migration > ============== > This document describes how to ensure migration compatibility for VFIO > devices, > including mdev and vfio-user devices.
Is this something all VFIO/user devices will have to support? If it's not mandatory, how can a device advertise support? > Multiple device implementations can support the same device model. Doing > so > means that the device implementations can offer migration compatiblity > because > they support the same hardware interface, device state representation, and > migration parameters. Does the above mean that a passthrough function can be migrated to a vfio-user program and vice versa? If so, then it's worth mentioning. > More complex device emulation programs may host multiple devices. The > interface > for configuring these device emulation programs is not standardized. > Therefore, > migrating these devices is beyond the scope of this document. Most likely a device emulation program hosting multile devices would allow some form of communication for control purposes (e.g. SPDK implements a JSON-RPC server). So maybe it's possible to define interacting with such programs in this document? > > The migration information JSON is printed to standard output by a vfio-user > device emulation program as follows: > > .. code:: bash > > $ my-device --print-migration-info-json > > The device is instantiated by launching the destination process with the > migration parameter list from the source: Must 'my-device --print-migration-info-json' always generate the same migration information JSON? If so, then what if the output generated by 'my-device --print-migration-info-json' depends on additional arguments passed to 'my-device' when it was originally started?