From: Jens Axboe <axboe@kernel.dk>
To: Stefan Metzmacher <metze@samba.org>,
Pavel Begunkov <asml.silence@gmail.com>,
io-uring@vger.kernel.org
Cc: Keith Busch <kbusch@kernel.org>
Subject: Re: [PATCH v2 2/2] io_uring/timeout: immediate timeout arg
Date: Fri, 27 Feb 2026 09:21:39 -0700 [thread overview]
Message-ID: <82c6812f-828b-4a28-af7f-38079490386b@kernel.dk> (raw)
In-Reply-To: <df890812-04bc-428d-b9b5-40b836e611ea@samba.org>
On 2/27/26 9:17 AM, Stefan Metzmacher wrote:
> Am 27.02.26 um 16:05 schrieb Jens Axboe:
>> On 2/27/26 7:08 AM, Stefan Metzmacher wrote:
>>> Hi Pavel,
>>>
>>>> if (unlikely(req->flags & (REQ_F_FIXED_FILE | REQ_F_BUFFER_SELECT)))
>>>> return -EINVAL;
>>>> @@ -460,10 +461,20 @@ int io_timeout_remove_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
>>>> return -EINVAL;
>>>> if (tr->flags & IORING_LINK_TIMEOUT_UPDATE)
>>>> tr->ltimeout = true;
>>>> - if (tr->flags & ~(IORING_TIMEOUT_UPDATE_MASK|IORING_TIMEOUT_ABS))
>>>> + if (tr->flags & ~(IORING_TIMEOUT_UPDATE_MASK |
>>>> + IORING_TIMEOUT_ABS |
>>>> + IORING_TIMEOUT_IMMEDIATE_ARG))
>>>> return -EINVAL;
>>>> - if (get_timespec64(&tr->ts, u64_to_user_ptr(READ_ONCE(sqe->addr2))))
>>>> +
>>>> + arg = READ_ONCE(sqe->addr2);
>>>> + if (tr->flags & IORING_TIMEOUT_IMMEDIATE_ARG) {
>>>> + if (tr->flags & IORING_TIMEOUT_ABS)
>>>> + return -EINVAL;
>>>> + tr->ts = ns_to_timespec64(arg);
>>>
>>> I'm wondering if there is enough free space in a small sqe to hold a full timespec?
>>> So that there is no restriction for IORING_TIMEOUT_ABS...
>>
>> There's ->addr3 for another 8b value, so yes it should very much be
>> possible. I quite like that idea, it'll then be the same as the regular
>> timeout options, except the values are passed directly in the sqe rather
>> than needing the copy.
>
> Yes, attr_ptr and attr_type_mask would even be two 8b values together,
> basically the same as 'struct __kernel_timespec', correct?
>
> So we could even add 'struct __kernel_timespec ts;' to the last
> union of sqe...
Let's just encode it in addr and addr3, I'd prefer not to further
obfuscate the sqe definition! And on the liburing side, you just add an
immediate helper for setting it up like that, done.
--
Jens Axboe
next prev parent reply other threads:[~2026-02-27 16:21 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-25 10:35 [PATCH v2 0/2] timeout immediate arg Pavel Begunkov
2026-02-25 10:35 ` [PATCH v2 1/2] io_uring/timeout: READ_ONCE sqe->addr Pavel Begunkov
2026-02-25 10:35 ` [PATCH v2 2/2] io_uring/timeout: immediate timeout arg Pavel Begunkov
2026-02-27 14:08 ` Stefan Metzmacher
2026-02-27 15:05 ` Jens Axboe
2026-02-27 16:17 ` Stefan Metzmacher
2026-02-27 16:21 ` Jens Axboe [this message]
2026-02-27 19:08 ` Pavel Begunkov
2026-02-27 19:39 ` Jens Axboe
2026-02-27 20:03 ` Pavel Begunkov
2026-02-27 20:19 ` Jens Axboe
2026-02-27 21:09 ` Pavel Begunkov
2026-02-27 21:17 ` Jens Axboe
2026-02-27 22:10 ` Pavel Begunkov
2026-02-27 22:19 ` Jens Axboe
2026-02-27 22:47 ` Pavel Begunkov
2026-02-25 15:36 ` (subset) [PATCH v2 0/2] timeout immediate arg Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=82c6812f-828b-4a28-af7f-38079490386b@kernel.dk \
--to=axboe@kernel.dk \
--cc=asml.silence@gmail.com \
--cc=io-uring@vger.kernel.org \
--cc=kbusch@kernel.org \
--cc=metze@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox