Message ID | 20220216105355.30729-1-hreitz@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | block: Make bdrv_refresh_limits() non-recursive | expand |
On Wed, Feb 16, 2022 at 11:53:52AM +0100, Hanna Reitz wrote: > Hi, > > v1 with detailed reasoning: > https://lists.nongnu.org/archive/html/qemu-block/2022-02/msg00508.html > > This series makes bdrv_refresh_limits() non-recursive so that it is > sufficient for callers to ensure that the node on which they call it > will not receive concurrent I/O requests (instead of ensuring the same > for the whole subtree). > > We need to ensure such I/O does not happen because bdrv_refresh_limits() > is not atomic and will produce intermediate invalid values, which will > break concurrent I/O requests that read these values. > > > v2: > - Use separate `try` block to clean up in patch 2 instead of putting the > `os.remove()` in the existing one (which would cause the second > `os.remove()` to be skipped if the first one failed) > > > 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/3:[----] [--] 'block: Make bdrv_refresh_limits() non-recursive' > 002/3:[0005] [FC] 'iotests: Allow using QMP with the QSD' > 003/3:[----] [--] 'iotests/graph-changes-while-io: New test' > > > Hanna Reitz (3): > block: Make bdrv_refresh_limits() non-recursive > iotests: Allow using QMP with the QSD > iotests/graph-changes-while-io: New test > > block/io.c | 4 - > tests/qemu-iotests/iotests.py | 32 ++++++- > .../qemu-iotests/tests/graph-changes-while-io | 91 +++++++++++++++++++ > .../tests/graph-changes-while-io.out | 5 + > 4 files changed, 127 insertions(+), 5 deletions(-) > create mode 100755 tests/qemu-iotests/tests/graph-changes-while-io > create mode 100644 tests/qemu-iotests/tests/graph-changes-while-io.out > > -- > 2.34.1 > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Am 16.02.2022 um 11:53 hat Hanna Reitz geschrieben: > Hi, > > v1 with detailed reasoning: > https://lists.nongnu.org/archive/html/qemu-block/2022-02/msg00508.html > > This series makes bdrv_refresh_limits() non-recursive so that it is > sufficient for callers to ensure that the node on which they call it > will not receive concurrent I/O requests (instead of ensuring the same > for the whole subtree). > > We need to ensure such I/O does not happen because bdrv_refresh_limits() > is not atomic and will produce intermediate invalid values, which will > break concurrent I/O requests that read these values. Thanks, applied to the block branch. Kevin