On 06/05/2017 03:39 PM, Eric Blake wrote: > ping >
ACK. > On 05/10/2017 09:20 PM, Eric Blake wrote: >> There are patches floating around to add NBD_CMD_BLOCK_STATUS, >> but NBD wants to report status on byte granularity (even if the >> reporting will probably be naturally aligned to sectors or even >> much higher levels). I've therefore started the task of >> converting our block status code to report at a byte granularity >> rather than sectors. >> >> This is part one of that conversion: bdrv_is_allocated(). >> Other parts still need a v2, but here's the link to their v1: >> tracking dirty bitmaps by bytes: >> https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg02163.html >> replacing bdrv_get_block_status() with a byte based callback >> in all the drivers: >> https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg02642.html >> >> Available as a tag at: >> git fetch git://repo.or.cz/qemu/ericb.git nbd-byte-allocated-v2 >> >> Since v1: >> - Add R-b from John as appropriate >> - Couple of new patches for cleanups he noticed >> - Rebase to Max's block branch >> >> 001/20:[----] [--] 'blockjob: Track job ratelimits via bytes, not sectors' >> 002/20:[----] [--] 'trace: Show blockjob actions via bytes, not sectors' >> 003/20:[----] [--] 'stream: Switch stream_populate() to byte-based' >> 004/20:[----] [--] 'stream: Switch stream_run() to byte-based' >> 005/20:[----] [--] 'commit: Switch commit_populate() to byte-based' >> 006/20:[----] [--] 'commit: Switch commit_run() to byte-based' >> 007/20:[----] [--] 'mirror: Switch MirrorBlockJob to byte-based' >> 008/20:[----] [--] 'mirror: Switch mirror_do_zero_or_discard() to byte-based' >> 009/20:[down] 'mirror: Update signature of mirror_clip_sectors()' >> 010/20:[0013] [FC] 'mirror: Switch mirror_cow_align() to byte-based' >> 011/20:[----] [-C] 'mirror: Switch mirror_do_read() to byte-based' >> 012/20:[0014] [FC] 'mirror: Switch mirror_iteration() to byte-based' >> 013/20:[----] [--] 'block: Drop unused bdrv_round_sectors_to_clusters()' >> 014/20:[----] [--] 'backup: Switch BackupBlockJob to byte-based' >> 015/20:[0008] [FC] 'backup: Switch block_backup.h to byte-based' >> 016/20:[----] [--] 'backup: Switch backup_do_cow() to byte-based' >> 017/20:[----] [--] 'backup: Switch backup_run() to byte-based' >> 018/20:[0039] [FC] 'block: Make bdrv_is_allocated() byte-based' >> 019/20:[down] 'block: Minimize raw use of bds->total_sectors' >> 020/20:[0026] [FC] 'block: Make bdrv_is_allocated_above() byte-based' >> >> Eric Blake (20): >> blockjob: Track job ratelimits via bytes, not sectors >> trace: Show blockjob actions via bytes, not sectors >> stream: Switch stream_populate() to byte-based >> stream: Switch stream_run() to byte-based >> commit: Switch commit_populate() to byte-based >> commit: Switch commit_run() to byte-based >> mirror: Switch MirrorBlockJob to byte-based >> mirror: Switch mirror_do_zero_or_discard() to byte-based >> mirror: Update signature of mirror_clip_sectors() >> mirror: Switch mirror_cow_align() to byte-based >> mirror: Switch mirror_do_read() to byte-based >> mirror: Switch mirror_iteration() to byte-based >> block: Drop unused bdrv_round_sectors_to_clusters() >> backup: Switch BackupBlockJob to byte-based >> backup: Switch block_backup.h to byte-based >> backup: Switch backup_do_cow() to byte-based >> backup: Switch backup_run() to byte-based >> block: Make bdrv_is_allocated() byte-based >> block: Minimize raw use of bds->total_sectors >> block: Make bdrv_is_allocated_above() byte-based >> >> include/block/block.h | 10 +- >> include/block/block_backup.h | 11 +- >> include/qemu/ratelimit.h | 3 +- >> block/backup.c | 130 ++++++++----------- >> block/commit.c | 54 ++++---- >> block/io.c | 92 +++++++------ >> block/mirror.c | 300 >> ++++++++++++++++++++++--------------------- >> block/replication.c | 29 +++-- >> block/stream.c | 35 +++-- >> block/vvfat.c | 34 +++-- >> migration/block.c | 9 +- >> qemu-img.c | 15 ++- >> qemu-io-cmds.c | 70 +++++----- >> block/trace-events | 14 +- >> 14 files changed, 396 insertions(+), 410 deletions(-) >> >