On 16.10.19 19:09, Vladimir Sementsov-Ogievskiy wrote: > Merge copying code into one function block_copy_do_copy, which only > calls bdrv_ io functions and don't do any synchronization (like dirty > bitmap set/reset). > > Refactor block_copy() function so that it takes full decision about > size of chunk to be copied and does all the synchronization (checking > intersecting requests, set/reset dirty bitmaps). > > It will help: > - introduce parallel processing of block_copy iterations: we need to > calculate chunk size, start async chunk copying and go to the next > iteration > - simplify synchronization improvement (like memory limiting in > further commit and reducing critical section (now we lock the whole > requested range, when actually we need to lock only dirty region > which we handle at the moment)) > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> > --- > block/block-copy.c | 118 ++++++++++++++++++++------------------------- > block/trace-events | 6 +-- > 2 files changed, 54 insertions(+), 70 deletions(-)
Reviewed-by: Max Reitz <mre...@redhat.com>
signature.asc
Description: OpenPGP digital signature