[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 08/15] chardev: allow telnet gsource to switc
From: |
Daniel P . Berrangé |
Subject: |
Re: [Qemu-devel] [PATCH v2 08/15] chardev: allow telnet gsource to switch gcontext |
Date: |
Fri, 2 Mar 2018 11:02:09 +0000 |
User-agent: |
Mutt/1.9.2 (2017-12-15) |
On Thu, Mar 01, 2018 at 06:16:53PM +0100, Paolo Bonzini wrote:
> On 01/03/2018 16:46, Daniel P. Berrangé wrote:
> > On Thu, Mar 01, 2018 at 04:44:31PM +0800, Peter Xu wrote:
> >> It was originally created by qio_channel_add_watch() so it's always
> >> assigning the task to main context. Now we use the new API called
> >> qio_channel_add_watch_source() so that we get the GSource handle rather
> >> than the tag ID.
> >>
> >> Meanwhile, caching the gsource in SocketChardev.telnet_source so that we
> >> can also do dynamic context switch when update read handlers.
> > I don't see why we would ever want to dynamically switch the
> > GMainContext in use while in middle of reading the telnet greeting.
>
> Maybe because the remote client hangs in the middle of the telnet
> greeting? The user of the Chardev can't know that the initial handshake
> hasn't been done yet.
NB, the chardev will emit the CHR_EVENT_OPENED event once the connection
is successfully established, which includes completion of the telnet
and/or TLS handshake.
I'm just not seeing what code in QEMU would actually trigger a decision
to change the GMainContext, in between the accept() of the socket, and
the CHR_EVENT_OPENED, since we don't tell anyone that the accept() has
actually taken place - they first they'll know of a new client being
connected is when the CHR_EVENT_OPENED is emitted.
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 :|
- Re: [Qemu-devel] [PATCH v2 06/15] qio: store gsources for net listeners, (continued)
[Qemu-devel] [PATCH v2 08/15] chardev: allow telnet gsource to switch gcontext, Peter Xu, 2018/03/01
[Qemu-devel] [PATCH v2 10/15] qio: non-default context for async conn, Peter Xu, 2018/03/01
[Qemu-devel] [PATCH v2 09/15] qio: non-default context for threaded qtask, Peter Xu, 2018/03/01
[Qemu-devel] [PATCH v2 11/15] qio: non-default context for TLS handshake, Peter Xu, 2018/03/01