mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
dma: use current AioContext for dma_blk_io()
In the past a single AioContext was used for block I/O and it was fetched using blk_get_aio_context(). Nowadays the block layer supports running I/O from any AioContext and multiple AioContexts at the same time. Remove the dma_blk_io() AioContext argument and use the current AioContext instead. This makes calling the function easier and enables multiple IOThreads to use dma_blk_io() concurrently for the same block device. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Message-ID: <20250311132616.1049687-3-stefanha@redhat.com> Tested-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
b2e3659d0d
commit
a89c3c9b2c
5 changed files with 9 additions and 14 deletions
|
@ -211,7 +211,7 @@ static const AIOCBInfo dma_aiocb_info = {
|
|||
.cancel_async = dma_aio_cancel,
|
||||
};
|
||||
|
||||
BlockAIOCB *dma_blk_io(AioContext *ctx,
|
||||
BlockAIOCB *dma_blk_io(
|
||||
QEMUSGList *sg, uint64_t offset, uint32_t align,
|
||||
DMAIOFunc *io_func, void *io_func_opaque,
|
||||
BlockCompletionFunc *cb,
|
||||
|
@ -223,7 +223,7 @@ BlockAIOCB *dma_blk_io(AioContext *ctx,
|
|||
|
||||
dbs->acb = NULL;
|
||||
dbs->sg = sg;
|
||||
dbs->ctx = ctx;
|
||||
dbs->ctx = qemu_get_current_aio_context();
|
||||
dbs->offset = offset;
|
||||
dbs->align = align;
|
||||
dbs->sg_cur_index = 0;
|
||||
|
@ -251,7 +251,7 @@ BlockAIOCB *dma_blk_read(BlockBackend *blk,
|
|||
QEMUSGList *sg, uint64_t offset, uint32_t align,
|
||||
void (*cb)(void *opaque, int ret), void *opaque)
|
||||
{
|
||||
return dma_blk_io(blk_get_aio_context(blk), sg, offset, align,
|
||||
return dma_blk_io(sg, offset, align,
|
||||
dma_blk_read_io_func, blk, cb, opaque,
|
||||
DMA_DIRECTION_FROM_DEVICE);
|
||||
}
|
||||
|
@ -269,7 +269,7 @@ BlockAIOCB *dma_blk_write(BlockBackend *blk,
|
|||
QEMUSGList *sg, uint64_t offset, uint32_t align,
|
||||
void (*cb)(void *opaque, int ret), void *opaque)
|
||||
{
|
||||
return dma_blk_io(blk_get_aio_context(blk), sg, offset, align,
|
||||
return dma_blk_io(sg, offset, align,
|
||||
dma_blk_write_io_func, blk, cb, opaque,
|
||||
DMA_DIRECTION_TO_DEVICE);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue