All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/4] iothread: create gcontext unconditionally
@ 2019-02-22  3:14 Peter Xu
  2019-02-22  3:14 ` [Qemu-devel] [PATCH 1/4] iothread: replace init_done_cond with a semaphore Peter Xu
                   ` (5 more replies)
  0 siblings, 6 replies; 26+ messages in thread
From: Peter Xu @ 2019-02-22  3:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Stefan Hajnoczi, Marc-André Lureau, peterx,
	Eric Blake

When I first read the iothread code, the gcontext confused me for
quite a while.  Meanwhile, I've been tackling with some races due to
this complexity as well.  How much we'll pay for creating the gcontext
unconditionally?  Do we really need this flexibitily (or is it really
a flexibility after all)?  I don't see much gain of existing code, but
I might be wrong.  Anyway, I wrote this patchset to see how the list
would think about it.

This series directly originates from previous discussion with
Marc-Andre where there's a slightly hacky way to try to acquire the
gcontext:

https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg05460.html

Now with this series logically above patch is not needed any more.
Please read patch 4 for more information.

And if this patchset can survive... how about running gcontext
directly in iothread_run()?  I believe there could be a bit more
things to clean but I'll see.

Make check passes for me.

Comments welcomed.  Thanks,

Peter Xu (4):
  iothread: replace init_done_cond with a semaphore
  iothread: create the gcontext onconditionally
  iothread: create main loop unconditionally
  iothread: push gcontext earlier in the thread_fn

 include/sysemu/iothread.h |  5 +--
 iothread.c                | 77 +++++++++++++++------------------------
 2 files changed, 32 insertions(+), 50 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2019-03-06 11:52 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.