On Wed, Jun 12, 2024 at 03:08:02PM -0300, Fabiano Rosas wrote: > Fabiano Rosas <faro...@suse.de> writes: > > > Peter Xu <pet...@redhat.com> writes: > > > >> On Mon, Jun 10, 2024 at 02:45:53PM -0300, Fabiano Rosas wrote: > I looked into this and it's cumbersome: > > - We'd need to check migrate_direct_io() several times, once to get the > second fd and during every IO to know to use the fd. > > - Even getting the second fd is not straight forward, we need to create > a new ioc for it with qio_channel_new_path(). But QEMUFile is generic > code, so we'd probably need to call this channel-file specific > function from migration_channel_connect(). > > - With the new ioc, do we put it in QEMUFile, or do we take the fd only? > Or maybe an ioc with two fds? Or a new QIOChannelDirect? All options > look bad to me. > > So I suggest we proceed proceed with the 1 multifd channel approach, > passing 2 fds into QEMU just like we do for the n channels. Is that ok > from libvirt's perspective? I assume libvirt users are mostly interested > in _enabling_ parallelism with --parallel, instead of _avoiding_ it with > the ommision of the option, so main thread + 1 channel should not be a > bad thing.
IIUC, with the "fixed-ram" feature, the on-disk format of a saved VM should end up the same whether we're using traditional migration, or multifd migration. Use of multifd is simply an optimization that lets us write RAM in parallel to the file, with direct-io further optimizing. There's also a clear break with libvirt between the existing on-disk format libvirt uses, and the new fixed-ram format. So we have no backwards compatibilty concerns added from multifd, beyond what we already have to figure out when deciding on use of 'fixed-ram'. Thus I believe there is no downside to always using multifd for save images with fixed-ram, even if we only want nchannels=1. > Choosing to use 1 multifd channel now is also a gentler introduction for > when we finally move all of the vmstate migration into multifd (I've > been looking into this, but don't hold your breaths). Yes, future proofing is a good idea. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|