summaryrefslogtreecommitdiffstats
path: root/po
diff options
context:
space:
mode:
authorHanna Reitz2022-02-16 11:53:55 +0100
committerKevin Wolf2022-03-04 18:18:26 +0100
commit971bea8089531af56b1bbd9ce62e756bdf006711 (patch)
treea877a1ed3171fd079bc24e0a7a937c6b4dd84eda /po
parentiotests: Allow using QMP with the QSD (diff)
downloadqemu-971bea8089531af56b1bbd9ce62e756bdf006711.tar.gz
qemu-971bea8089531af56b1bbd9ce62e756bdf006711.tar.xz
qemu-971bea8089531af56b1bbd9ce62e756bdf006711.zip
iotests/graph-changes-while-io: New test
Test the following scenario: 1. Some block node (null-co) attached to a user (here: NBD server) that performs I/O and keeps the node in an I/O thread 2. Repeatedly run blockdev-add/blockdev-del to add/remove an overlay to/from that node Each blockdev-add triggers bdrv_refresh_limits(), and because blockdev-add runs in the main thread, it does not stop the I/O requests. I/O can thus happen while the limits are refreshed, and when such a request sees a temporarily invalid block limit (e.g. alignment is 0), this may easily crash qemu (or the storage daemon in this case). The block layer needs to ensure that I/O requests to a node are paused while that node's BlockLimits are refreshed. Signed-off-by: Hanna Reitz <hreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20220216105355.30729-4-hreitz@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'po')
0 files changed, 0 insertions, 0 deletions