mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
linux-aio: use LinuxAioState from the running thread
Remove usage of aio_context_acquire by always submitting asynchronous AIO to the current thread's LinuxAioState. In order to prevent mistakes from the caller side, avoid passing LinuxAioState in laio_io_{plug/unplug} and laio_co_submit, and document the functions to make clear that they work in the current thread's AioContext. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Message-Id: <20230203131731.851116-2-eesposit@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
e95200c1c5
commit
ab50533b69
5 changed files with 37 additions and 29 deletions
|
@ -90,6 +90,11 @@ void blk_iostatus_set_err(BlockBackend *blk, int error);
|
|||
int blk_get_max_iov(BlockBackend *blk);
|
||||
int blk_get_max_hw_iov(BlockBackend *blk);
|
||||
|
||||
/*
|
||||
* blk_io_plug/unplug are thread-local operations. This means that multiple
|
||||
* IOThreads can simultaneously call plug/unplug, but the caller must ensure
|
||||
* that each unplug() is called in the same IOThread of the matching plug().
|
||||
*/
|
||||
void coroutine_fn blk_co_io_plug(BlockBackend *blk);
|
||||
void co_wrapper blk_io_plug(BlockBackend *blk);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue