io_uring: Create a helper to return the SQE size
authorBreno Leitao <leitao@debian.org>
Thu, 4 May 2023 12:18:54 +0000 (05:18 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 4 May 2023 14:19:05 +0000 (08:19 -0600)
Create a simple helper that returns the size of the SQE. The SQE could
have two size, depending of the flags.

If IO_URING_SETUP_SQE128 flag is set, then return a double SQE,
otherwise returns the sizeof of io_uring_sqe (64 bytes).

Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/20230504121856.904491-2-leitao@debian.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.h

index 25515d6..259bf79 100644 (file)
@@ -394,4 +394,14 @@ static inline void io_req_queue_tw_complete(struct io_kiocb *req, s32 res)
        io_req_task_work_add(req);
 }
 
+/*
+ * IORING_SETUP_SQE128 contexts allocate twice the normal SQE size for each
+ * slot.
+ */
+static inline size_t uring_sqe_size(struct io_ring_ctx *ctx)
+{
+       if (ctx->flags & IORING_SETUP_SQE128)
+               return 2 * sizeof(struct io_uring_sqe);
+       return sizeof(struct io_uring_sqe);
+}
 #endif