12.12.2018 23:41, John Snow wrote: > > > On 12/12/18 4:27 AM, Vladimir Sementsov-Ogievskiy wrote: >> ping. No dependencies, apply to master. >> > > Sure thing. > > Staged to jsnow/bitmaps.
Thank you! Oops, I've missed your email about s/firt_dirty_off/first_dirty_off I can resend, or you can fix in your branch, as you prefer. The variable touches two commits in jsnow/bitmaps: commit f235204c39dd5ce122666d87f18005264eb56e51 Author: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Date: Mon Sep 17 17:57:27 2018 +0300 dirty-bitmap: add bdrv_dirty_bitmap_next_dirty_area and the last one: commit 7f73174ca1c8a92e4a5139b35f2a2273f59ce29b (jnsnow/bitmaps) Author: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Date: Mon Sep 17 17:57:32 2018 +0300 Revert "hbitmap: Add @advance param to hbitmap_iter_next()" > > --js > >> 17.09.2018 17:57, Vladimir Sementsov-Ogievskiy wrote: >>> Hi all. >>> >>> 1. bdrv_dirty_iter_next_area don't use hbitmap_next_zero and uses >>> inefficient loop instead. Let's improve it. >>> >>> 2. bdrv_dirty_iter_next_area don't handle unaligned offset and >>> max_offset correctly. I'm not sure that it is a real bug. But if it is, >>> we need these series in 3.0. >>> >>> Details are in 05 commit message. >>> >>> Note: "[PATCH] nbd/server: fix bitmap export" should be applied first: >>> Based-on: <20180914165116.23182-1-vsement...@virtuozzo.com> >>> >>> v4: >>> >>> Rework: switch interface to start,count / offset,bytes style. >>> Fix wrong handling of the case when requested region end exceeds >>> overall bitmap end. >>> Some other changes. >>> >>> 06-08: add John's r-b. >>> >>> v3: >>> 01: - change interface to start/end, and -1 as special end-marker instead >>> of 0 >>> - "not found" for invalid regions instead of assert >>> 02: rebase on 01 changes >>> 03: - fix mistake in hbitmap_iter_init arguments (mistake in >>> hbitmap_next_zero arguments is fixed automatically due to 01 >>> changes) >>> 04: new >>> >>> >>> v2: >>> >>> 01: - improve comment >>> - s/bytes/count/ >>> - fix forgotten function call in test >>> - introduce orig_size field here for HBitmap, >>> make checking in hbitmap_next_zero more effective and safe >>> 02: new >>> 03: - orig_size already introduced in 01 >>> - fix hbitmap_next_dirty_area to not return value less than >>> offset on unaligned requests >>> >>> Vladimir Sementsov-Ogievskiy (8): >>> dirty-bitmap: improve bdrv_dirty_bitmap_next_zero >>> tests: add tests for hbitmap_next_zero with specified end parameter >>> dirty-bitmap: add bdrv_dirty_bitmap_next_dirty_area >>> tests: add tests for hbitmap_next_dirty_area >>> block/mirror: fix and improve do_sync_target_write >>> Revert "block/dirty-bitmap: Add bdrv_dirty_iter_next_area" >>> Revert "test-hbitmap: Add non-advancing iter_next tests" >>> Revert "hbitmap: Add @advance param to hbitmap_iter_next()" >>> >>> include/block/dirty-bitmap.h | 7 +- >>> include/qemu/hbitmap.h | 31 ++++-- >>> block/backup.c | 5 +- >>> block/dirty-bitmap.c | 68 ++------------ >>> block/mirror.c | 17 ++-- >>> nbd/server.c | 2 +- >>> tests/test-hbitmap.c | 177 +++++++++++++++++++++++++++++------ >>> util/hbitmap.c | 76 ++++++++++++--- >>> 8 files changed, 262 insertions(+), 121 deletions(-) >>> >> >> > -- Best regards, Vladimir