Re: [PATCH v4 0/3] qapi: Fix some command blocked for too long
Michael Tokarev <[email protected]>
| Newsgroups | gmane.comp.emulators.qemu.block,gmane.comp.emulators.qemu,gmane.comp.emulators.qemu.stable |
|---|---|
| Message-ID | <[email protected]> |
On 4/1/25 16:02, zoudongjie via wrote: > From: Zhu Yangyang <[email protected]> > > QMP may will be blocked for a long time on bdrv_drained_begin() when a > network disk is configured and the network failure is just about to occur. > > In theory, any command may be blocked if it calls bdrv_drained_begin(). > > This series add a timeout parameter for qmp_block_set_io_throttle() and > qmp_block_resize() to control their execution duration. Hi! Has this (oldish) patchset been abandoned/lost somehow? Thanks, /mjt > Changelog > v4 --- > 1. Corrected the added version of the timeout parameter from 10.0 to 10.1 > 2. Add a patch to add the timeout parameter for qmp_block_resize(). > > v3 --- > Unify AIO_WAIT_WHILE_{TIMEOUT/INTERNAL} by replacing AIO_WAIT_WHILE_INTERNAL() with > AIO_WAIT_WHILE_TIMEOUT(..., 0). > > v2 --- > 1. Support 0 in BDRV_POLL_WHILE_TIMEOUT(), 0 means infinite. > 2. Use uint64_t timeout_ns instead of int64 timeout to name variables. > 3. Use timer_pending() to check for expiry instead of explicitly checking > against the deadline for BDRV_POLL_WHILE_TIMEOUT(). > 4. Add documentation for bdrv_drained_begin_timeout(), note that bdrv_drained_end() > must be called when -ETIMEDOUT is returned. > 5. Add a timeout parameter to the qmp_block_set_io_throttle() instead of hardcoding > the timeout, and the default value is 0, mean an infinite timeout. > > v1 patch link: > https://lore.kernel.org/qemu-devel/[email protected]/ > > > Zhu Yangyang (3): > io/block: Refactoring the bdrv_drained_begin() function and implement > a timeout mechanism. > qapi/throttle: add timeout parameter for qmp_block_set_io_throttle() > qapi/resize: add timeout parameter for qmp_block_resize() > > block/block-backend.c | 14 ++++- > block/io.c | 58 +++++++++++++++++---- > block/monitor/block-hmp-cmds.c | 2 +- > block/qapi-system.c | 10 +++- > blockdev.c | 16 +++++- > include/block/aio-wait.h | 47 ++++++++++++----- > include/block/block-io.h | 22 +++++++- > include/system/block-backend-global-state.h | 1 + > qapi/block-core.json | 11 +++- > util/aio-wait.c | 5 ++ > 10 files changed, 155 insertions(+), 31 deletions(-) >