From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57490) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UdLEA-0003xJ-ER for qemu-devel@nongnu.org; Fri, 17 May 2013 10:01:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UdLE6-0001sN-4W for qemu-devel@nongnu.org; Fri, 17 May 2013 10:01:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:1415) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UdLE5-0001sD-Tc for qemu-devel@nongnu.org; Fri, 17 May 2013 10:01:42 -0400 From: Stefan Hajnoczi Date: Fri, 17 May 2013 15:51:24 +0200 Message-Id: <1368798686-25213-1-git-send-email-stefanha@redhat.com> Subject: [Qemu-devel] [PATCH 0/2] coroutine: dataplane support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Paolo Bonzini , "Shergill, Gurinder" , "Vinod, Chegu" , Stefan Hajnoczi 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