Hi! As mentioned in the last upstream virtio-networking meeting, one of the factors that adds more downtime to migration is the handling of the guest memory (pin, map, etc). At this moment this handling is bound to the virtio life cycle (DRIVER_OK, RESET). In that sense, the destination device waits until all the guest memory / state is migrated to start pinning all the memory.
The proposal is to bind it to the char device life cycle (open vs close), so all the guest memory can be pinned for all the guest / qemu lifecycle. This has two main problems: * At this moment the reset semantics forces the vdpa device to unmap all the memory. So this change needs a vhost vdpa feature flag. * This may increase the initialization time. Maybe we can delay it if qemu is not the destination of a LM. Anyway I think this should be done as an optimization on top. Any ideas or comments in this regard? Thanks!