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