From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:49901) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1REeRV-0003ur-QB for qemu-devel@nongnu.org; Fri, 14 Oct 2011 05:52:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1REeRT-0007q1-Et for qemu-devel@nongnu.org; Fri, 14 Oct 2011 05:52:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42302) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1REeRT-0007ps-6X for qemu-devel@nongnu.org; Fri, 14 Oct 2011 05:52:39 -0400 Message-ID: <4E98071C.5050406@redhat.com> Date: Fri, 14 Oct 2011 11:55:40 +0200 From: Kevin Wolf MIME-Version: 1.0 References: <1318536572-23771-1-git-send-email-stefanha@linux.vnet.ibm.com> In-Reply-To: <1318536572-23771-1-git-send-email-stefanha@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/5] block: remove unused emulation and synchronous functions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: qemu-devel@nongnu.org Am 13.10.2011 22:09, schrieb Stefan Hajnoczi: > Now that the block layer processes requests in coroutine context, some of the > emulation wrappers and duplicate code paths can be dropped. Paraphrasing a > wise man, Arnold Schwarzenegger, "I will go to the block layer and I will clean > house" :). > > They key thing behind this series is that the block layer processes requests in > coroutine context and will try to use .brdv_co_readv()/.bdrv_co_writev() when > possible. Should the BlockDriver not implement those interfaces, an emulation > function will be used to provide them using aio. If the BlockDriver does not > implement aio interfaces, then an emulation function will be used to provide > them using synchronous I/O. > > This means: > > 1. A BlockDriver that implements coroutine interfaces does not need to > implement aio or synchronous interfaces. > > 2. A BlockDriver that implements aio interfaces does not need to implement > synchronous interfaces. > > 3. Coroutine interfaces are preferred and do not require any emulation > functions. > > This patch series propagates these rules across existing BlockDrivers and > removes unused emulation functions from block.c. > > Stefan Hajnoczi (5): > block: drop emulation functions that use coroutines > raw-posix: remove bdrv_read()/bdrv_write() > block: use coroutine interface for raw format > block: drop .bdrv_read()/.bdrv_write() emulation > block: drop bdrv_has_async_rw() Thanks, applied all to the block branch. > block.c | 142 ++------------------------- > block/raw-posix.c | 277 ----------------------------------------------------- > block/raw.c | 32 ++----- > 3 files changed, 18 insertions(+), 433 deletions(-) Awesome. We need more series like this! :-) Kevin