On Fri, May 17, 2013 at 03:51:24PM +0200, Stefan Hajnoczi wrote: > There is ongoing work to enable multiple event loop threads. This will allow > QEMU itself to take advantage of SMP and reduce Big QEMU Lock (BQL) > contention. > This series is one step in that effort. > > These patches make coroutines safe in a multi-event loop/multi-threaded world. > I have successfully tested them running qcow2 in a dataplane thread (further > patches are required which I'll be sending soon). > > Patch 1 protects the global coroutine freelist with a lock :). > > Patch 2 drops the CoQueue dependency on AioContext. This allows CoMutex and > CoRwlock to operate in a dataplane thread whereas previously we always > scheduled coroutines in the QEMU iothread. > > Stefan Hajnoczi (2): > coroutine: protect global pool with a mutex > coroutine: stop using AioContext in CoQueue > > include/block/coroutine_int.h | 4 ++++ > qemu-coroutine-lock.c | 56 > ++++++++++++++++--------------------------- > qemu-coroutine.c | 23 ++++++++++++++++-- > trace-events | 2 +- > 4 files changed, 47 insertions(+), 38 deletions(-) > > -- > 1.8.1.4 > >
Applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan