We've seen a request for CI and development to have access to migratable vfio devices without any specific hardware requirements. One way to do that is to enable migration support on the mtty mdev sample driver, as done here. This device is particularly easy to migrate because it doesn't actually do DMA, or in fact much of anything. Therefore we can claim P2P and dirty logging as well. PRE_COPY support is also included in a similar fashion to hisi_acc. This provides early compatibility testing, which is probably over-done, but perhaps illustrates good practice with matching data stream magic, versioning, and feature flags. These might later be used for backwards compatibility, particularly since I'm not positive that copying the struct serial_port between source and destination is sufficient. Along the way, testing migration where the source and target are incompatible revealed an eventfd leak, where peeling back the onion of mtty handling of SET_IRQS proved to require a substantial overhaul. v2: Incorporate comments from Cédric - Fixing eventfd leak turned into SET_IRQS overhaul - Factored out mtty_data_size() - Factored mtty_save_state() and paired with mtty_load_state() Alex Williamson (2): vfio/mtty: Overhaul mtty interrupt handling vfio/mtty: Enable migration support samples/vfio-mdev/mtty.c | 829 +++++++++++++++++++++++++++++++++++---- 1 file changed, 756 insertions(+), 73 deletions(-) -- 2.40.1