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?

> 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 <oli...@filoo.de>
> Signed-off-by: Josh Durgin <josh.dur...@inktank.com>

Looks good otherwise.

Kevin

Reply via email to