diff options
| author | Pavel Begunkov <asml.silence@gmail.com> | 2024-08-07 15:18:14 +0100 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2024-08-25 08:27:01 -0600 |
| commit | 2b8e976b984278edbeab3251d370e76d237699f9 (patch) | |
| tree | f91366b1a924921fc52d4fa43c8868dd3f30709d /io_uring/io_uring.h | |
| parent | d29cb3726f03cdac7889f0109a7cb84f79e168a8 (diff) | |
| download | lwn-2b8e976b984278edbeab3251d370e76d237699f9.tar.gz lwn-2b8e976b984278edbeab3251d370e76d237699f9.zip | |
io_uring: user registered clockid for wait timeouts
Add a new registration opcode IORING_REGISTER_CLOCK, which allows the
user to select which clock id it wants to use with CQ waiting timeouts.
It only allows a subset of all posix clocks and currently supports
CLOCK_MONOTONIC and CLOCK_BOOTTIME.
Suggested-by: Lewis Baker <lewissbaker@gmail.com>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/98f2bc8a3c36cdf8f0e6a275245e81e903459703.1723039801.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/io_uring.h')
| -rw-r--r-- | io_uring/io_uring.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/io_uring/io_uring.h b/io_uring/io_uring.h index c2acf6180845..9935819f12b7 100644 --- a/io_uring/io_uring.h +++ b/io_uring/io_uring.h @@ -437,6 +437,14 @@ static inline bool io_file_can_poll(struct io_kiocb *req) return false; } +static inline ktime_t io_get_time(struct io_ring_ctx *ctx) +{ + if (ctx->clockid == CLOCK_MONOTONIC) + return ktime_get(); + + return ktime_get_with_offset(ctx->clock_offset); +} + enum { IO_CHECK_CQ_OVERFLOW_BIT, IO_CHECK_CQ_DROPPED_BIT, |
