On 14.07.2016 19:19, Vladimir Sementsov-Ogievskiy wrote: > 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]> > 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]> > --- > > v2: in case of s->buf_size larger than default use it to limit io_sectors > > block/mirror.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-)
Reviewed-by: Max Reitz <[email protected]> I think that this can be considered a bugfix, but strictly speaking it's a patch for Jeff's tree, so I'm hesitant to take it. Max
signature.asc
Description: OpenPGP digital signature
