The series inherits "[PATCH 0/7] qcow2: compressed write cache"
(changed a lot, the cache is rewritten), and
"[PATCH v2(RFC) 0/3] qcow2: fix parallel rewrite and "
(the fix solution is taken from v1 instead, as the are problems with v2,
described in cover letter)
Core changes in v3:
- cache is rewritten and now is separated even from block-layer
- I'm tired of trying to catch degradation when use both pagecache and
my new cache.. So, I decided that using both caches is just a bad
idea and in v3 cache is enabled only when qcow2 file child opened in
O_DIRECT
Vladimir Sementsov-Ogievskiy (6):
block-jobs: flush target at the end of .run()
iotests: add qcow2-discard-during-rewrite
block/qcow2: introduce inflight writes counters: fix discard
util: implement seqcache
block-coroutine-wrapper: allow non bdrv_ prefix
block/qcow2: use seqcache for compressed writes
block/coroutines.h | 3 +
block/qcow2.h | 13 +
include/block/blockjob_int.h | 18 +
include/qemu/seqcache.h | 42 ++
block/backup.c | 8 +-
block/commit.c | 2 +
block/mirror.c | 2 +
block/qcow2-refcount.c | 159 +++++++-
block/qcow2.c | 178 ++++++++-
block/stream.c | 2 +
blockjob.c | 16 +
util/seqcache.c | 361 ++++++++++++++++++
MAINTAINERS | 6 +
scripts/block-coroutine-wrapper.py | 7 +-
.../tests/qcow2-discard-during-rewrite | 72 ++++
.../tests/qcow2-discard-during-rewrite.out | 21 +
util/meson.build | 1 +
17 files changed, 893 insertions(+), 18 deletions(-)
create mode 100644 include/qemu/seqcache.h
create mode 100644 util/seqcache.c
create mode 100755 tests/qemu-iotests/tests/qcow2-discard-during-rewrite
create mode 100644 tests/qemu-iotests/tests/qcow2-discard-during-rewrite.out
--
2.29.2