public inbox for [email protected]
 help / color / mirror / Atom feed
From: Pavel Begunkov <[email protected]>
To: Caleb Sander Mateos <[email protected]>,
	Jens Axboe <[email protected]>
Cc: [email protected]
Subject: Re: [PATCH 2/2] io_uring/nop: use io_find_buf_node()
Date: Sat, 1 Mar 2025 01:41:38 +0000	[thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>

On 3/1/25 00:16, Caleb Sander Mateos wrote:
> Call io_find_buf_node() to avoid duplicating it in io_nop().

IORING_NOP_FIXED_BUFFER interface looks odd, instead of pretending
to use a buffer, it basically pokes directly into internal infra,
it's not something userspace should be able to do.

Jens, did use it anywhere? It's new, I'd rather kill it or align with
how requests consume buffers, i.e. addr+len, and then do
io_import_reg_buf() instead. That'd break the api though, but would
anyone care?


> Signed-off-by: Caleb Sander Mateos <[email protected]>
> ---
>   io_uring/nop.c | 13 ++-----------
>   1 file changed, 2 insertions(+), 11 deletions(-)
> 
> diff --git a/io_uring/nop.c b/io_uring/nop.c
> index ea539531cb5f..28f06285fdc2 100644
> --- a/io_uring/nop.c
> +++ b/io_uring/nop.c
> @@ -59,21 +59,12 @@ int io_nop(struct io_kiocb *req, unsigned int issue_flags)
>   			ret = -EBADF;
>   			goto done;
>   		}
>   	}
>   	if (nop->flags & IORING_NOP_FIXED_BUFFER) {
> -		struct io_ring_ctx *ctx = req->ctx;
> -		struct io_rsrc_node *node;
> -
> -		ret = -EFAULT;
> -		io_ring_submit_lock(ctx, issue_flags);
> -		node = io_rsrc_node_lookup(&ctx->buf_table, req->buf_index);
> -		if (node) {
> -			io_req_assign_buf_node(req, node);
> -			ret = 0;
> -		}
> -		io_ring_submit_unlock(ctx, issue_flags);
> +		if (!io_find_buf_node(req, issue_flags))
> +			ret = -EFAULT;
>   	}
>   done:
>   	if (ret < 0)
>   		req_set_fail(req);
>   	io_req_set_res(req, nop->result, 0);

-- 
Pavel Begunkov


  reply	other threads:[~2025-03-01  1:40 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-01  0:16 [PATCH 1/2] io_uring/rsrc: declare io_find_buf_node() in header file Caleb Sander Mateos
2025-03-01  0:16 ` [PATCH 2/2] io_uring/nop: use io_find_buf_node() Caleb Sander Mateos
2025-03-01  1:41   ` Pavel Begunkov [this message]
2025-03-01  1:58     ` Caleb Sander Mateos
2025-03-01  2:10       ` Jens Axboe
2025-03-01  2:11       ` Pavel Begunkov
2025-03-01  2:15     ` Pavel Begunkov
2025-03-01  2:21       ` Jens Axboe
2025-03-01  2:36         ` Pavel Begunkov
2025-03-01  2:39           ` Jens Axboe
2025-03-01  3:02             ` Pavel Begunkov
2025-03-01  1:46 ` [PATCH 1/2] io_uring/rsrc: declare io_find_buf_node() in header file Pavel Begunkov
2025-03-01  2:04   ` Caleb Sander Mateos
2025-03-01  2:22     ` Jens Axboe
2025-03-01  2:31       ` Pavel Begunkov
2025-03-01  2:33         ` Jens Axboe
2025-03-01  2:23 ` 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 \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /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