public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
From: Pavel Begunkov <asml.silence@gmail.com>
To: Jens Axboe <axboe@kernel.dk>, io-uring@vger.kernel.org
Cc: Dylan Yudaken <dyudaken@gmail.com>
Subject: Re: [PATCH 1/1] io_uring/zctx: separate notification user_data
Date: Tue, 17 Feb 2026 11:15:58 +0000	[thread overview]
Message-ID: <3888d916-259b-4d1f-96c2-157c289d867e@gmail.com> (raw)
In-Reply-To: <133c27e8-7b5f-4754-9f8a-17d96e736621@kernel.dk>

On 2/16/26 17:27, Jens Axboe wrote:
...
>> There are already 6, it'll be 7th. I also have one or two more in mind,
>> that's already over the half. The same was probably thought about
>> sqe->flags, and even though it's twice as many bits for net, those
>> are taken faster as potential cost of redesign is lower.
>>
>> Fwiw, the code is nastier as well, more branchy and away from
>> other notification init because of dependency on reading the
>> flags.
>>
>> @@ -1331,7 +1333,7 @@ int io_send_zc_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
>>   
>>       zc->done_io = 0;
>>   
>> -    if (unlikely(READ_ONCE(sqe->__pad2[0]) || READ_ONCE(sqe->addr3)))
>> +    if (unlikely(READ_ONCE(sqe->__pad2[0])))
>>           return -EINVAL;
>>       /* we don't support IOSQE_CQE_SKIP_SUCCESS just yet */
>>       if (req->flags & REQ_F_CQE_SKIP)
>> @@ -1358,6 +1360,13 @@ int io_send_zc_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
>>           }
>>       }
>>   
>> +    if (zc->flags & IORING_SEND_ZC_NOTIF_USER_DATA) {
>> +        notif->cqe.user_data = READ_ONCE(sqe->addr3);
>> +    } else {
>> +        if (READ_ONCE(sqe->addr3))
>> +            return -EINVAL;
>> +    }
>> +
> 
> I think just remove the else part here - addr3 is valid now that
> IORING_SEND_ZC_NOTIF_USER_DATA is supported, and if you mess it up in
> your applications, you'll find this via development anyway. Since addr3
> == 0 is a valid value, it doesn't make much sense to check for it being
> non-zero.

Gating it on a separate flag but not checking when not set makes
it only more confusing in terms of why would you do a flag in
the first place.

It's not like a flags field where any value set would be an
> -EINVAL case. Doesn't even exclude having another flag for using addr3
> for something else anyway.

You can override the behaviour with another flag in either case,
but realistically it's better to avoid as it's always messy,
unless the features are clearly exclusive.

I know there is no way to convince you, but v2 already degraded
the uapi as per requested, can we have that one? The "else" branch
doesn't make the api worse, on the opposite.

-- 
Pavel Begunkov


  reply	other threads:[~2026-02-17 11:16 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-16 11:48 [PATCH 1/1] io_uring/zctx: separate notification user_data Pavel Begunkov
2026-02-16 15:10 ` Jens Axboe
2026-02-16 15:48   ` Pavel Begunkov
2026-02-16 15:52     ` Jens Axboe
2026-02-16 15:53       ` Pavel Begunkov
2026-02-16 15:55         ` Jens Axboe
2026-02-16 17:20           ` Pavel Begunkov
2026-02-16 17:27             ` Jens Axboe
2026-02-17 11:15               ` Pavel Begunkov [this message]
2026-02-17 13:12                 ` Jens Axboe
2026-02-17 15:03                   ` Pavel Begunkov
2026-02-17 15:15                     ` 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=3888d916-259b-4d1f-96c2-157c289d867e@gmail.com \
    --to=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=dyudaken@gmail.com \
    --cc=io-uring@vger.kernel.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