mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
block/io_uring: implements interfaces for io_uring
Aborts when sqe fails to be set as sqes cannot be returned to the ring. Adds slow path for short reads for older kernels Signed-off-by: Aarushi Mehta <mehta.aaru20@gmail.com> Acked-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 20200120141858.587874-5-stefanha@redhat.com Message-Id: <20200120141858.587874-5-stefanha@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
4c34ee366d
commit
6663a0a337
5 changed files with 439 additions and 1 deletions
|
@ -49,6 +49,7 @@ typedef void IOHandler(void *opaque);
|
|||
struct Coroutine;
|
||||
struct ThreadPool;
|
||||
struct LinuxAioState;
|
||||
struct LuringState;
|
||||
|
||||
struct AioContext {
|
||||
GSource source;
|
||||
|
@ -117,11 +118,19 @@ struct AioContext {
|
|||
struct ThreadPool *thread_pool;
|
||||
|
||||
#ifdef CONFIG_LINUX_AIO
|
||||
/* State for native Linux AIO. Uses aio_context_acquire/release for
|
||||
/*
|
||||
* State for native Linux AIO. Uses aio_context_acquire/release for
|
||||
* locking.
|
||||
*/
|
||||
struct LinuxAioState *linux_aio;
|
||||
#endif
|
||||
#ifdef CONFIG_LINUX_IO_URING
|
||||
/*
|
||||
* State for Linux io_uring. Uses aio_context_acquire/release for
|
||||
* locking.
|
||||
*/
|
||||
struct LuringState *linux_io_uring;
|
||||
#endif
|
||||
|
||||
/* TimerLists for calling timers - one per clock type. Has its own
|
||||
* locking.
|
||||
|
@ -386,6 +395,11 @@ struct LinuxAioState *aio_setup_linux_aio(AioContext *ctx, Error **errp);
|
|||
/* Return the LinuxAioState bound to this AioContext */
|
||||
struct LinuxAioState *aio_get_linux_aio(AioContext *ctx);
|
||||
|
||||
/* Setup the LuringState bound to this AioContext */
|
||||
struct LuringState *aio_setup_linux_io_uring(AioContext *ctx, Error **errp);
|
||||
|
||||
/* Return the LuringState bound to this AioContext */
|
||||
struct LuringState *aio_get_linux_io_uring(AioContext *ctx);
|
||||
/**
|
||||
* aio_timer_new_with_attrs:
|
||||
* @ctx: the aio context
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue