[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 00/23] backup performance: block_status + async
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v4 00/23] backup performance: block_status + async |
Date: |
Sun, 17 Jan 2021 00:46:42 +0300 |
Hi Max!
I applied my series onto yours 129-fixing and found, that 129 fails for backup.
And setting small max-chunk and even max-workers to 1 doesn't help! (setting
speed like in v3 still helps).
And I found, that the problem is that really, the whole backup job goes during
drain, because in new architecture we do just job_yield() during the whole
background block-copy.
This leads to modifying the existing patch in the series, which does job_enter()
from job_user_pause: we just need call job_enter() from job_pause() to cover
not only user pauses but also drained_begin.
So, now I don't need any additional fixing of 129.
Changes in v4:
- add a lot of Max's r-b's, thanks!
03: fix over-80 line (in comment), add r-b
09: was "[PATCH v3 10/25] job: call job_enter from job_user_pause",
now changed to finally fix 129 iotest, drop r-b
10: squash-in additional wording on max-chunk, fix error message, keep r-b
17: drop extra include, assert job_is_cancelled() instead of check, add r-b
18: adjust commit message, add r-b
23: add comments and assertion, about the fact that test doesn't support
paths with colon inside
fix s/disable-copy-range/use-copy-range/
Vladimir Sementsov-Ogievskiy (23):
qapi: backup: add perf.use-copy-range parameter
block/block-copy: More explicit call_state
block/block-copy: implement block_copy_async
block/block-copy: add max_chunk and max_workers parameters
block/block-copy: add list of all call-states
block/block-copy: add ratelimit to block-copy
block/block-copy: add block_copy_cancel
blockjob: add set_speed to BlockJobDriver
job: call job_enter from job_pause
qapi: backup: add max-chunk and max-workers to x-perf struct
iotests: 56: prepare for backup over block-copy
iotests: 185: prepare for backup over block-copy
iotests: 219: prepare for backup over block-copy
iotests: 257: prepare for backup over block-copy
block/block-copy: make progress_bytes_callback optional
block/backup: drop extra gotos from backup_run()
backup: move to block-copy
qapi: backup: disable copy_range by default
block/block-copy: drop unused block_copy_set_progress_callback()
block/block-copy: drop unused argument of block_copy()
simplebench/bench_block_job: use correct shebang line with python3
simplebench: bench_block_job: add cmd_options argument
simplebench: add bench-backup.py
qapi/block-core.json | 28 ++-
block/backup-top.h | 1 +
include/block/block-copy.h | 61 ++++-
include/block/block_int.h | 3 +
include/block/blockjob_int.h | 2 +
block/backup-top.c | 6 +-
block/backup.c | 233 ++++++++++++-------
block/block-copy.c | 227 +++++++++++++++---
block/replication.c | 2 +
blockdev.c | 14 ++
blockjob.c | 6 +
job.c | 3 +
scripts/simplebench/bench-backup.py | 167 ++++++++++++++
scripts/simplebench/bench-example.py | 2 +-
scripts/simplebench/bench_block_job.py | 13 +-
tests/qemu-iotests/056 | 9 +-
tests/qemu-iotests/109.out | 24 ++
tests/qemu-iotests/185 | 3 +-
tests/qemu-iotests/185.out | 3 +-
tests/qemu-iotests/219 | 13 +-
tests/qemu-iotests/257 | 1 +
tests/qemu-iotests/257.out | 306 ++++++++++++-------------
22 files changed, 830 insertions(+), 297 deletions(-)
create mode 100755 scripts/simplebench/bench-backup.py
--
2.29.2
- [PATCH v4 00/23] backup performance: block_status + async,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v4 01/23] qapi: backup: add perf.use-copy-range parameter, Vladimir Sementsov-Ogievskiy, 2021/01/16
- [PATCH v4 02/23] block/block-copy: More explicit call_state, Vladimir Sementsov-Ogievskiy, 2021/01/16
- [PATCH v4 03/23] block/block-copy: implement block_copy_async, Vladimir Sementsov-Ogievskiy, 2021/01/16
- [PATCH v4 06/23] block/block-copy: add ratelimit to block-copy, Vladimir Sementsov-Ogievskiy, 2021/01/16
- [PATCH v4 05/23] block/block-copy: add list of all call-states, Vladimir Sementsov-Ogievskiy, 2021/01/16
- [PATCH v4 09/23] job: call job_enter from job_pause, Vladimir Sementsov-Ogievskiy, 2021/01/16
- [PATCH v4 10/23] qapi: backup: add max-chunk and max-workers to x-perf struct, Vladimir Sementsov-Ogievskiy, 2021/01/16
- [PATCH v4 04/23] block/block-copy: add max_chunk and max_workers parameters, Vladimir Sementsov-Ogievskiy, 2021/01/16