On Tue, Mar 10, 2015 at 11:51:18AM +0300, Denis V. Lunev wrote: > The idea is that we do not need to immediately sync BAT to the image as > from the guest point of view there is a possibility that IO is lost > even in the physical controller until flush command was finished. > bdrv_co_flush_to_os is exactly the right place for this purpose. > > Technically the patch uses loaded BAT data as a cache and performs > actual on-disk metadata updates in parallels_co_flush_to_os callback. > > This patch speed ups > qemu-img create -f parallels -o cluster_size=64k ./1.hds 64G > qemu-io -f parallels -c "write -P 0x11 0 1024k" 1.hds > writing from 50-60 Mb/sec to 80-90 Mb/sec on rotational media and > from 160 Mb/sec to 190 Mb/sec on SSD disk. > > Signed-off-by: Denis V. Lunev <d...@openvz.org> > CC: Roman Kagan <rka...@parallels.com> > CC: Kevin Wolf <kw...@redhat.com> > CC: Stefan Hajnoczi <stefa...@redhat.com> > --- > block/parallels.c | 50 ++++++++++++++++++++++++++++++++++++++++++++------ > 1 file changed, 44 insertions(+), 6 deletions(-)
Reviewed-by: Roman Kagan <rka...@parallels.com> Roman.