]> Git Repo - qemu.git/commit - block/mirror.c
mirror: double performance of the bulk stage if the disc is full
authorVladimir Sementsov-Ogievskiy <[email protected]>
Thu, 14 Jul 2016 17:19:01 +0000 (20:19 +0300)
committerJeff Cody <[email protected]>
Tue, 26 Jul 2016 20:23:36 +0000 (16:23 -0400)
commit0965a41e998ab820b5d660c8abfc8c819c97bc1b
tree4ff9267331a9d88747969e1f533bdf6148341e93
parent0a189ffb5e9d6091c766bd4d01265251488a18a6
mirror: double performance of the bulk stage if the disc is full

Mirror can do up to 16 in-flight requests, but actually on full copy
(the whole source disk is non-zero) in-flight is always 1. This happens
as the request is not limited in size: the data occupies maximum available
capacity of s->buf.

The patch limits the size of the request to some artificial constant
(1 Mb here), which is not that big or small. This effectively enables
back parallelism in mirror code as it was designed.

The result is important: the time to migrate 10 Gb disk is reduced from
~350 sec to 170 sec.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Signed-off-by: Denis V. Lunev <[email protected]>
Reviewed-by: Max Reitz <[email protected]>
Reviewed-by: Jeff Cody <[email protected]>
Message-id: 1468516741[email protected]
CC: Stefan Hajnoczi <[email protected]>
CC: Fam Zheng <[email protected]>
CC: Kevin Wolf <[email protected]>
CC: Max Reitz <[email protected]>
CC: Jeff Cody <[email protected]>
CC: Eric Blake <[email protected]>
Signed-off-by: Jeff Cody <[email protected]>
block/mirror.c
This page took 0.025006 seconds and 4 git commands to generate.