On Thu, Mar 01, 2018 at 04:44:23PM +0800, Peter Xu wrote: > This is another preparation work for monitor OOB seires. > > V1: http://lists.nongnu.org/archive/html/qemu-devel/2018-02/msg06972.html > > V2 rewrote the bottom half of the code. The first 8 patches are > mostly the same, but I rewrote the last patches to solve both TLS and > reconnect use cases by introducing a machine_done hook for chardevs in > general. So if I copy the problems: > > - migration > - incoming side: still always running on main context, while we need > to be able to run some command in OOB thread [1] > - tcp chardev (non-tcp chardevs should all support non-NULL context now) > - server listening mode: QIO net listener used [2] > - TELNET session: an isolated GSource used (tcp_chr_telnet_init) [3] > - when "reconnect=N" is used, QIO threaded task is used [4] > - TLS session: QIO tls handshake is used (tcp_chr_tls_init) [5] > > Problem [1-3] are still fixed in the old way, but [4-5] now are fixed > by using the new machine_done notifier.
The QIO code changes all look good to me know, aside from minor comments. I really dislike all of the chardev stuff though. I think it makes the chardev code even harder to follow & rationalize behaviour of. If you post a v3 series contaning just the qio/ directory changes, I'd queue those patches, while we discuss chardev stuff more. I struggle to suggest better approach, because its any missing context of how the changes are going to be used, presumably by patch series yet to be posted. 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 :|