From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:42326) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RiTEX-0002Tn-Iz for qemu-devel@nongnu.org; Wed, 04 Jan 2012 10:58:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RiTES-0001rt-2y for qemu-devel@nongnu.org; Wed, 04 Jan 2012 10:58:33 -0500 Received: from verein.lst.de ([213.95.11.211]:59411 helo=newverein.lst.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RiTER-0001rd-Um for qemu-devel@nongnu.org; Wed, 04 Jan 2012 10:58:28 -0500 Date: Wed, 4 Jan 2012 16:58:25 +0100 From: Christoph Hellwig Message-ID: <20120104155825.GA11210@lst.de> References: <1313152395-25248-1-git-send-email-morita.kazutaka@lab.ntt.co.jp> <20111223133850.GA12770@lst.de> <20111229120626.GA32331@lst.de> <20111230103500.GA1740@stefanha-thinkpad.localdomain> <20120102153959.GA22823@lst.de> <20120103081655.GB28636@stefanha-thinkpad.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120103081655.GB28636@stefanha-thinkpad.localdomain> Subject: Re: [Qemu-devel] coroutine bug?, was Re: [PATCH] sheepdog: use coroutines List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: kwolf@redhat.com, sheepdog@lists.wpkg.org, Christoph Hellwig , MORITA Kazutaka , qemu-devel@nongnu.org On Tue, Jan 03, 2012 at 08:16:55AM +0000, Stefan Hajnoczi wrote: > On Mon, Jan 02, 2012 at 04:39:59PM +0100, Christoph Hellwig wrote: > > I've tried to understand how the recursive calling happens, but unfortunately > > the whole coroutine code lacks any sort of documentation how it should > > behave or what it asserts about the callers. > > There is documentation on the public coroutine functions, see > qemu-coroutine.h. Ok, I was looking in the source files and the documentation directory only as that is where I expected the documentation to sit. Btw, what is the plan forward for the block I/O interface? Only qcow2, sheepdog and nbd implement the coroutine interfaces, and none of the hardware emulations calls them directly. Also at least for interfaces like the librbd callbacks coroutines don't even seem to be that useful.