]> git.ipfire.org Git - thirdparty/qemu.git/commit
iotests/281: Let NBD connection yield in iothread
authorHanna Reitz <hreitz@redhat.com>
Fri, 4 Feb 2022 11:10:12 +0000 (12:10 +0100)
committerVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Fri, 11 Feb 2022 13:06:18 +0000 (14:06 +0100)
commit8cfbe929e8c26050f0a4580a1606a370a947d4ce
tree3634a0f84dfaa0a9900574ea679cc22680d757f3
parente15f3a66c830e3fce99c9d56c493c2f7078a1225
iotests/281: Let NBD connection yield in iothread

Put an NBD block device into an I/O thread, and then read data from it,
hoping that the NBD connection will yield during that read.  When it
does, the coroutine must be reentered in the block device's I/O thread,
which will only happen if the NBD block driver attaches the connection's
QIOChannel to the new AioContext.  It did not do that after 4ddb5d2fde
("block/nbd: drop connection_co") and prior to "block/nbd: Move s->ioc
on AioContext change", which would cause an assertion failure.

To improve our chances of yielding, the NBD server is throttled to
reading 64 kB/s, and the NBD client reads 128 kB, so it should yield at
some point.

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
tests/qemu-iotests/281
tests/qemu-iotests/281.out