migration/multifd: Add outgoing QIOChannelFile support
commitb7b03eb614d01079f9b1f7a1d342140b5055a559
authorFabiano Rosas <farosas@suse.de>
Thu, 29 Feb 2024 15:30:11 +0000 (29 12:30 -0300)
committerPeter Xu <peterx@redhat.com>
Fri, 1 Mar 2024 07:42:04 +0000 (1 15:42 +0800)
treee4f3e7a433c0c517722e15bbdc337e0b5f2f3d3c
parenta8a3e7102ccf65ee57fb7427952b98ebb460bec9
migration/multifd: Add outgoing QIOChannelFile support

Allow multifd to open file-backed channels. This will be used when
enabling the mapped-ram migration stream format which expects a
seekable transport.

The QIOChannel read and write methods will use the preadv/pwritev
versions which don't update the file offset at each call so we can
reuse the fd without re-opening for every channel.

Contrary to the socket migration, the file migration doesn't need an
asynchronous channel creation process, so expose
multifd_channel_connect() and call it directly.

Note that this is just setup code and multifd cannot yet make use of
the file channels.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240229153017.2221-18-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>
migration/file.c
migration/file.h
migration/multifd.c
migration/multifd.h