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 <vsement...@virtuozzo.com> > Signed-off-by: Denis V. Lunev <d...@openvz.org> > CC: Stefan Hajnoczi <stefa...@redhat.com> > CC: Fam Zheng <f...@redhat.com> > CC: Kevin Wolf <kw...@redhat.com> > CC: Max Reitz <mre...@redhat.com> > CC: Jeff Cody <jc...@redhat.com> > CC: Eric Blake <ebl...@redhat.com> > --- > > 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 <mre...@redhat.com> 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