From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:47169) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UQYd8-0000vl-RE for qemu-devel@nongnu.org; Fri, 12 Apr 2013 03:42:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UQYd5-0002PF-VM for qemu-devel@nongnu.org; Fri, 12 Apr 2013 03:42:42 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38768) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UQYd5-0002P0-L5 for qemu-devel@nongnu.org; Fri, 12 Apr 2013 03:42:39 -0400 Date: Fri, 12 Apr 2013 09:42:35 +0200 From: Stefan Hajnoczi Message-ID: <20130412074235.GA30834@stefanha-thinkpad.redhat.com> References: <1364543983-8180-1-git-send-email-josh.durgin@inktank.com> <1364587403-30689-1-git-send-email-josh.durgin@inktank.com> <20130402141042.GL2341@dhcp-200-207.str.redhat.com> <5165713B.8070003@inktank.com> <20130411080232.GB5253@stefanha-thinkpad.redhat.com> <20130411084844.GD2449@dhcp-200-207.str.redhat.com> <5166F0BB.9060007@inktank.com> <20130412065035.GA3426@dhcp-200-207.str.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130412065035.GA3426@dhcp-200-207.str.redhat.com> Subject: Re: [Qemu-devel] [PATCH v2] rbd: add an asynchronous flush List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: Josh Durgin , qemu-devel@nongnu.org On Fri, Apr 12, 2013 at 08:50:35AM +0200, Kevin Wolf wrote: > Am 11.04.2013 um 19:19 hat Josh Durgin geschrieben: > > On 04/11/2013 01:48 AM, Kevin Wolf wrote: > > >Am 11.04.2013 um 10:02 hat Stefan Hajnoczi geschrieben: > > >>On Wed, Apr 10, 2013 at 07:03:39AM -0700, Josh Durgin wrote: > > >>>On 04/02/2013 07:10 AM, Kevin Wolf wrote: > > >>>>Am 29.03.2013 um 21:03 hat Josh Durgin geschrieben: > > >>>>>The existing bdrv_co_flush_to_disk implementation uses rbd_flush(), > > >>>>>which is sychronous and causes the main qemu thread to block until it > > >>>>>is complete. This results in unresponsiveness and extra latency for > > >>>>>the guest. > > >>>>> > > >>>>>Fix this by using an asynchronous version of flush. This was added to > > >>>>>librbd with a special #define to indicate its presence, since it will > > >>>>>be backported to stable versions. Thus, there is no need to check the > > >>>>>version of librbd. > > >>>> > > >>>>librbd is linked dynamically and the version on the build host isn't > > >>>>necessarily the same as the version qemu is run with. So shouldn't this > > >>>>better be a runtime check? > > >>> > > >>>While we discuss runtime loading separately, would you mind taking this > > >>>patch as-is for now? > > >> > > >>Hi Josh, > > >>I'm happy with Patch v3 1/2. Does that work for you? > > > > > >Only patch 1/2 would add dead code as .bdrv_aio_flush would never be > > >called. I think we should rather take v1 of the series then, with the > > >#ifdefs at build time. > > > > Yes, that would be a problem with only v3 1/2. v2 of the original > > series is fine, but v1 was accidentally missing a hunk. To be clear, > > I think just http://patchwork.ozlabs.org/patch/232489/ would be good. > > Yes, sorry, I should have checked before posting this. v2 I meant. Thanks Josh and Kevin. Will take v2. Stefan