[PATCH v3 0/6] qcow2: compressed write cache

Vladimir Sementsov-Ogievskiy posted 6 patches 3 years, 1 month ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210305173507.393137-1-vsementsov@virtuozzo.com
Maintainers: Kevin Wolf <kwolf@redhat.com>, Cleber Rosa <crosa@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, Max Reitz <mreitz@redhat.com>, Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>, John Snow <jsnow@redhat.com>
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
[PATCH v3 0/6] qcow2: compressed write cache
Posted by Vladimir Sementsov-Ogievskiy 3 years, 1 month ago
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