[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v2 00/12] block: Fixes for concurrent block jobs
From: |
Max Reitz |
Subject: |
[Qemu-block] [PATCH v2 00/12] block: Fixes for concurrent block jobs |
Date: |
Wed, 3 Jul 2019 19:28:01 +0200 |
This is a v2 to “block: Add BDS.never_freeze”.
It depends on my “block: Delay poll when ending drained sections”
series:
Depends-on: <address@hidden>
It turned out that if you run 030 (or just the new test_overlapping_5
case) sufficiently often, it breaks; which is why I’m hesitant to just
merge the “add never_freeze” series as it is.
There are several reasons for why this test case breaks, I hope patches
3 to 6 fix them. Patch 12 adds a test that is much more reliable than
test_overlapping_5 at detecting the problems fixed by at least patches 4
to 6. (I think that 3 doesn’t really need a test.)
I’m sure there are other ways to see these problems, but well, coming
from 030, concurrent commit/stream jobs are how I reproduced them.
Hence the same of this series.
Patch 2 is for something I encountered on the way. Patch 11 tests it.
v2:
- Added a bunch of more patches.
git backport-diff against v1:
Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
001/12:[----] [--] 'block: Add BDS.never_freeze'
002/12:[down] 'block/stream: Fix error path'
003/12:[down] 'block/stream: Swap backing file change order'
004/12:[down] 'block: Keep subtree drained in drop_intermediate'
005/12:[down] 'block: Reduce (un)drains when replacing a child'
006/12:[down] 'block: Deep-clear inherits_from'
007/12:[----] [--] 'iotests: Fix throttling in 030'
008/12:[----] [--] 'iotests: Compare error messages in 030'
009/12:[----] [--] 'iotests: Add @use_log to VM.run_job()'
010/12:[----] [--] 'iotests: Add new case to 030'
011/12:[down] 'iotests: Add read-only test case to 030'
012/12:[down] 'iotests: Add test for concurrent stream/commit'
Max Reitz (12):
block: Add BDS.never_freeze
block/stream: Fix error path
block/stream: Swap backing file change order
block: Keep subtree drained in drop_intermediate
block: Reduce (un)drains when replacing a child
block: Deep-clear inherits_from
iotests: Fix throttling in 030
iotests: Compare error messages in 030
iotests: Add @use_log to VM.run_job()
iotests: Add new case to 030
iotests: Add read-only test case to 030
iotests: Add test for concurrent stream/commit
include/block/block_int.h | 3 +
block.c | 93 +++++++++++++------
block/commit.c | 4 +
block/mirror.c | 4 +
block/stream.c | 4 +-
tests/qemu-iotests/030 | 150 +++++++++++++++++++++++++------
tests/qemu-iotests/030.out | 4 +-
tests/qemu-iotests/258 | 163 ++++++++++++++++++++++++++++++++++
tests/qemu-iotests/258.out | 33 +++++++
tests/qemu-iotests/group | 1 +
tests/qemu-iotests/iotests.py | 18 ++--
11 files changed, 413 insertions(+), 64 deletions(-)
create mode 100755 tests/qemu-iotests/258
create mode 100644 tests/qemu-iotests/258.out
--
2.21.0
- [Qemu-block] [PATCH v2 00/12] block: Fixes for concurrent block jobs,
Max Reitz <=
- [Qemu-block] [PATCH v2 01/12] block: Add BDS.never_freeze, Max Reitz, 2019/07/03
- [Qemu-block] [PATCH v2 04/12] block: Keep subtree drained in drop_intermediate, Max Reitz, 2019/07/03
- [Qemu-block] [PATCH v2 11/12] iotests: Add read-only test case to 030, Max Reitz, 2019/07/03
- [Qemu-block] [PATCH v2 02/12] block/stream: Fix error path, Max Reitz, 2019/07/03
- [Qemu-block] [PATCH v2 12/12] iotests: Add test for concurrent stream/commit, Max Reitz, 2019/07/03
- [Qemu-block] [PATCH v2 07/12] iotests: Fix throttling in 030, Max Reitz, 2019/07/03
- [Qemu-block] [PATCH v2 05/12] block: Reduce (un)drains when replacing a child, Max Reitz, 2019/07/03
- [Qemu-block] [PATCH v2 09/12] iotests: Add @use_log to VM.run_job(), Max Reitz, 2019/07/03