On 2/28/25 7:31 PM, Pavel Begunkov wrote: > On 3/1/25 02:22, Jens Axboe wrote: >> On 2/28/25 7:04 PM, Caleb Sander Mateos wrote: >>> On Fri, Feb 28, 2025 at 5:45?PM Pavel Begunkov <asml.silence@xxxxxxxxx> wrote: >>>> >>>> On 3/1/25 00:16, Caleb Sander Mateos wrote: >>>>> Declare io_find_buf_node() in io_uring/rsrc.h so it can be called from >>>>> other files. >>>>> >>>>> Signed-off-by: Caleb Sander Mateos <csander@xxxxxxxxxxxxxxx> >>>>> --- >>>>> io_uring/rsrc.c | 4 ++-- >>>>> io_uring/rsrc.h | 2 ++ >>>>> 2 files changed, 4 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c >>>>> index 45bfb37bca1e..4c4f57cd77f9 100644 >>>>> --- a/io_uring/rsrc.c >>>>> +++ b/io_uring/rsrc.c >>>>> @@ -1066,12 +1066,12 @@ static int io_import_fixed(int ddir, struct iov_iter *iter, >>>>> } >>>>> >>>>> return 0; >>>>> } >>>>> >>>>> -static inline struct io_rsrc_node *io_find_buf_node(struct io_kiocb *req, >>>>> - unsigned issue_flags) >>>> >>>> That's a hot path, an extra function call wouldn't be great, >>>> and it's an internal detail as well. Let's better see what we >>>> can do with the nop situation. >>> >>> I can add back inline. With that, there shouldn't be any difference to >>> the generated instructions for io_import_reg_buf(). >> >> Yeah, in general I don't like manual inlines, unless it's been proven >> that the compiler messes it up for some reason. If it's short enough >> it'll be inlined. > > It will _not_ be inlined in this case. Hmm ok - I wonder why that is. But if we want to force it to do that, then we can just re-add the inline for the local definition, that'll be fine with it still being non-static and available. -- Jens Axboe