Message ID | 20180301084438.13594-1-peterx@redhat.com |
---|---|
Headers | show |
Series | qio: general non-default GMainContext support | expand |
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
On Thu, Mar 01, 2018 at 04:07:06PM +0000, Daniel P. Berrangé wrote: > 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. Yeah I think I'll split the series into two. Thank you and Paolo for the quick review comments!