qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] rbd: add an asynchronous flush


From: Josh Durgin
Subject: Re: [Qemu-devel] [PATCH v2] rbd: add an asynchronous flush
Date: Wed, 10 Apr 2013 07:03:39 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130221 Thunderbird/17.0.3

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?

Josh

Implement this as bdrv_aio_flush, since it matches other aio functions
in the rbd block driver, and leave out bdrv_co_flush_to_disk when the
asynchronous version is available.

Reported-by: Oliver Francke <address@hidden>
Signed-off-by: Josh Durgin <address@hidden>

Looks good otherwise.

Kevin





reply via email to

[Prev in Thread] Current Thread [Next in Thread]