[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 0/3] block: Synchronous bdrv_*() from coroutine in different
From: |
Kevin Wolf |
Subject: |
[RFC PATCH 0/3] block: Synchronous bdrv_*() from coroutine in different AioContext |
Date: |
Tue, 12 May 2020 16:43:15 +0200 |
Stefan (Reiter), after looking a bit closer at this, I think there is no
bug in QEMU, but the bug is in your coroutine code that calls block
layer functions without moving into the right AioContext first. I've
written this series anyway as it potentially makes the life of callers
easier and would probably make your buggy code correct.
However, it doesn't feel right to commit something like patch 2 without
having a user for it. Is there a reason why you can't upstream your
async snapshot code?
The series would also happen fix a bug in my recent patch to convert
qmp_block_resize() to coroutines, but I feel it's not how I would
naturally fix it. Switching the thread already in the QMP handler before
calling bdrv_truncate() would feel more appropriate. I wonder if it
wouldn't actually be the same for your snapshot code.
Kevin Wolf (3):
block: Factor out bdrv_run_co()
block: Allow bdrv_run_co() from different AioContext
block: Assert we're running in the right thread
block/io.c | 122 ++++++++++++++++++++---------------------------------
1 file changed, 45 insertions(+), 77 deletions(-)
--
2.25.3