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