aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2019-12-17 08:04:44 -0700
committerJens Axboe <axboe@kernel.dk>2020-01-20 17:03:59 -0700
commitce35a47a3a0208a77b4d31b7f2e8ed57d624093d (patch)
tree903370888177b20dcbeab7e48a0452f696b858c8 /include/uapi
parentio-wq: support concurrent non-blocking work (diff)
downloadlinux-dev-ce35a47a3a0208a77b4d31b7f2e8ed57d624093d.tar.xz
linux-dev-ce35a47a3a0208a77b4d31b7f2e8ed57d624093d.zip
io_uring: add IOSQE_ASYNC
io_uring defaults to always doing inline submissions, if at all possible. But for larger copies, even if the data is fully cached, that can take a long time. Add an IOSQE_ASYNC flag that the application can set on the SQE - if set, it'll ensure that we always go async for those kinds of requests. Use the io-wq IO_WQ_WORK_CONCURRENT flag to ensure we get the concurrency we desire for this case. Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/uapi')
-rw-r--r--include/uapi/linux/io_uring.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h
index 3f45f7c543de..d7ec50247a3a 100644
--- a/include/uapi/linux/io_uring.h
+++ b/include/uapi/linux/io_uring.h
@@ -51,6 +51,7 @@ struct io_uring_sqe {
#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */
#define IOSQE_IO_LINK (1U << 2) /* links next sqe */
#define IOSQE_IO_HARDLINK (1U << 3) /* like LINK, but stronger */
+#define IOSQE_ASYNC (1U << 4) /* always go async */
/*
* io_uring_setup() flags