On Tue, Jun 14, 2022 at 02:18:41PM +0300, Andrey Ryabinin wrote: > Hi > > These couple patches aims to make possible local migration (within one host) > on the same TAP device used by source and destination QEMU > > The scenario looks like this > 1. Create TAP devices and pass file descriptors to source QEMU > 2. Launch destination QEMU (-incoming defer) and pass same descriptors to it. > 3. Start migration > > > Regarding the first patch: It makes possible to receive file descriptor in > non-blocking > state. But I probably didn't cover all FD users which might need to set > blocking state after > the patch. So I'm hopping for the hints where else, besides > fd_start_incoming_migration() > I need to put qemu_socket_set_block() calls.
You'll need to check all callers of qio_channel_readv_full qio_channel_readv_full_all qio_channel_readv_full_all_eof and identify which pass a non-NULL parameter for 'fds'. If the caller does NOT have a qemu_setnonblock call on the FD it gets back, then you have to assume it is expecting it in blocking mode and so need to add qemu_setblock 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 :|