From: Peter Xu <peterx@redhat.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel <qemu-devel@nongnu.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Eric Blake <eblake@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 4/4] iothread: push gcontext earlier in the thread_fn
Date: Fri, 22 Feb 2019 14:57:24 +0800 [thread overview]
Message-ID: <20190222065724.GH8904@xz-x1> (raw)
In-Reply-To: <CAMxuvax9+NNe6Mh3TnFgt6p+q=kcgR1tEiQNr+be8bJRDUPCJw@mail.gmail.com>
On Fri, Feb 22, 2019 at 07:37:02AM +0100, Marc-André Lureau wrote:
> Hi
>
> On Fri, Feb 22, 2019 at 4:14 AM Peter Xu <peterx@redhat.com> wrote:
> >
> > We were pushing the context until right before running the gmainloop.
> > Now since we have everything unconditionally, we can move this
> > earlier.
> >
> > One benefit is that now it's done even before init_done_sem, so as
> > long as the iothread user calls iothread_create() and completes, we
> > know that the thread stack is ready.
> >
>
> This will change the default context in the iothread, for code running
> there. This may not be a good idea. Until now, only sources dispatched
> from iothread_get_g_main_context() would have default context
> associated to it.
>
> I don't know if the current behaviour is intentional, but it has some
> logic. With this change, you may create hidden races, by changing the
> default context of sources to the iothread.
Yes I agree that the behavior will be changed in this patch that even
if the iothread user does not use the gcontext they'll also have the
context set. I would think it should be ok because IMHO events hooked
onto the aio context should not depend on the gcontext, but indeed I'd
like to get some confirmation from others, especially the block layer.
Stefan?
Thanks,
--
Peter Xu
next prev parent reply other threads:[~2019-02-22 6:58 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-22 3:14 [Qemu-devel] [PATCH 0/4] iothread: create gcontext unconditionally Peter Xu
2019-02-22 3:14 ` [Qemu-devel] [PATCH 1/4] iothread: replace init_done_cond with a semaphore Peter Xu
2019-02-22 6:25 ` Marc-André Lureau
2019-02-22 6:36 ` Peter Xu
2019-02-22 9:27 ` Paolo Bonzini
2019-02-22 9:44 ` Marc-André Lureau
2019-02-27 13:26 ` Stefan Hajnoczi
2019-02-22 3:14 ` [Qemu-devel] [PATCH 2/4] iothread: create the gcontext onconditionally Peter Xu
2019-02-22 6:29 ` Marc-André Lureau
2019-02-22 6:47 ` Peter Xu
2019-02-22 3:14 ` [Qemu-devel] [PATCH 3/4] iothread: create main loop unconditionally Peter Xu
2019-02-22 6:30 ` Marc-André Lureau
2019-02-22 3:14 ` [Qemu-devel] [PATCH 4/4] iothread: push gcontext earlier in the thread_fn Peter Xu
2019-02-22 6:37 ` Marc-André Lureau
2019-02-22 6:57 ` Peter Xu [this message]
2019-02-22 9:24 ` Paolo Bonzini
2019-02-27 13:38 ` Stefan Hajnoczi
2019-02-28 5:58 ` Peter Xu
2019-03-01 16:25 ` Stefan Hajnoczi
2019-03-04 2:26 ` Peter Xu
2019-03-04 9:12 ` Marc-André Lureau
2019-03-04 9:37 ` Peter Xu
2019-02-22 9:28 ` [Qemu-devel] [PATCH 0/4] iothread: create gcontext unconditionally Paolo Bonzini
2019-02-22 9:45 ` Peter Xu
2019-03-06 10:19 ` Stefan Hajnoczi
2019-03-06 11:44 ` Peter Xu
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=20190222065724.GH8904@xz-x1 \
--to=peterx@redhat.com \
--cc=eblake@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--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).