From: Peter Xu <peterx@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: "Markus Armbruster" <armbru@redhat.com>,
"Stefan Hajnoczi" <stefanha@gmail.com>,
"Kevin Wolf" <kwolf@redhat.com>,
qemu-devel@nongnu.org, "Max Reitz" <mreitz@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"John Snow" <jsnow@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] monitor: postpone monitor_qmp_cleanup_queues
Date: Thu, 14 Jun 2018 11:05:06 +0800 [thread overview]
Message-ID: <20180614030506.GS15344@xz-mi> (raw)
In-Reply-To: <20180613143005.GW24528@stefanha-x1.localdomain>
On Wed, Jun 13, 2018 at 03:30:05PM +0100, Stefan Hajnoczi wrote:
> On Tue, Jun 12, 2018 at 01:47:00PM +0800, Peter Xu wrote:
> > On Mon, Jun 11, 2018 at 05:45:49PM +0100, Stefan Hajnoczi wrote:
> > > On Fri, Jun 08, 2018 at 10:18:25AM +0200, Markus Armbruster wrote:
> > > > Stefan Hajnoczi <stefanha@gmail.com> writes:
> > > > > On Fri, Jun 08, 2018 at 12:42:35PM +0800, Peter Xu wrote:
> > > > >> On Thu, Jun 07, 2018 at 01:53:01PM +0200, Markus Armbruster wrote:
> > > > >> > Peter Xu <peterx@redhat.com> writes:
> > > > >> >
> > > > >> > > Previously we cleanup the queues when we got CLOSED event. It was used
> > > > >> >
> > > > >> > we clean up
> > > > >> >
> > > > >> > > to make sure we won't leftover replies/events of a old client to a new
> > > > >> >
> > > > >> > we won't send leftover replies/events of an old client
> > > > >> >
> > > > >> > > client. Now this patch postpones that until OPENED.
> > > > >> >
> > > > >> > What if OPENED never comes?
> > > > >>
> > > > >> Then we clean that up until destruction of the monitor. IMHO it's
> > > > >> fine, but I'm not sure whether that's an overall acceptable approach.
> > > > >
> > > > > I think this patch fixes the problem at the wrong level. Marc-André's
> > > > > fix seemed like a cleaner solution.
> > > >
> > > > Is it the right solution?
> > > >
> > > > I proposed another one:
> > >
> > > Sorry, I won't be able to participate in this because I'm behind on
> > > other patches and tasks. Therefore, feel free to disregard but I'll
> > > give my 2 cents:
> > >
> > > This seems like a chardev bug. The solution should probably be in the
> > > chardev layer (Marc-André's patch or something else), not in the monitor
> > > (this patch).
> >
> > Yes that's why I said I like Marc-Andre's patch. :) I just don't know
> > an reliable way to achieve what we want there.
> >
> > The thing is that we don't really monitor the ioc_out for fd-typed
> > chardevs. We only do that when we call qemu_chr_fe_add_watch() (e.g.,
> > in monitor_flush_locked()) when the writting buffer is full. But
> > normally we can't detect any event from the output side, hence no way
> > to deliever a CLOSED event when the output fd is the last fd that is
> > closed.
> >
> > Maybe we can keep that output watch for the whole lifecycle of the
> > chardev? I'm not sure yet.
>
> It's not possible to keep a POLLOUT fd watch since poll(2) would return
> instantly and the event loop would spin. However, POLLHUP (G_IO_HUP)
> might work.
It seems so. But I am not confident enough to quickly provide a
mature patch for chardev. I'll just work around for monitor right
now. I'll comment with your ideas there and also on the events. We
can rework upon when we have time with it.
Regards,
--
Peter Xu
prev parent reply other threads:[~2018-06-14 3:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-04 8:06 [Qemu-devel] [PATCH] monitor: postpone monitor_qmp_cleanup_queues Peter Xu
2018-06-04 15:01 ` Marc-André Lureau
2018-06-05 3:39 ` Peter Xu
2018-06-07 11:53 ` Markus Armbruster
2018-06-08 4:42 ` Peter Xu
2018-06-08 7:05 ` Markus Armbruster
2018-06-08 8:04 ` Stefan Hajnoczi
2018-06-08 8:18 ` Markus Armbruster
2018-06-08 9:11 ` Peter Xu
2018-06-08 9:24 ` Peter Xu
2018-06-11 7:58 ` Markus Armbruster
2018-06-11 16:45 ` Stefan Hajnoczi
2018-06-12 5:47 ` Peter Xu
2018-06-13 14:30 ` Stefan Hajnoczi
2018-06-14 3:05 ` Peter Xu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180614030506.GS15344@xz-mi \
--to=peterx@redhat.com \
--cc=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=mreitz@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).