[PATCH v2 0/2] vfio/mtty: Add migration support

From: Alex Williamson
Date: Mon Oct 16 2023 - 18:48:46 EST


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