Re: [PATCH] io_uring: pass struct io_tw_state by value
From: Jens Axboe
Date: Wed Feb 12 2025 - 09:50:48 EST
On 2/12/25 7:49 AM, Pavel Begunkov wrote:
> On 2/12/25 14:33, Jens Axboe wrote:
>> On 2/11/25 2:45 PM, Caleb Sander Mateos wrote:
>>> 8e5b3b89ecaf ("io_uring: remove struct io_tw_state::locked") removed the
>>> only field of io_tw_state but kept it as a task work callback argument
>>> to "forc[e] users not to invoke them carelessly out of a wrong context".
>>> Passing the struct io_tw_state * argument adds a few instructions to all
>>> callers that can't inline the functions and see the argument is unused.
>>>
>>> So pass struct io_tw_state by value instead. Since it's a 0-sized value,
>>> it can be passed without any instructions needed to initialize it.
>>>
>>> Also add a comment to struct io_tw_state to explain its purpose.
>>
>> This is nice, reduces the code generated. It'll conflict with the
>> fix that Pavel posted, but I can just mangle this one once I get
>> the 6.15 branch rebased on top of -rc3. No need to send a v2.
>
> Hold on this one, we're better to adjust the patch, I'll
> follow up later today.
Sure no problem, it'll be early next week on the 6.15 front anyway,
nothing is being committed right now.
--
Jens Axboe