Re: [PATCH 00/13] Rename k[v]free_rcu() single argument to k[v]free_rcu_mightsleep()

From: Jens Axboe
Date: Wed Mar 15 2023 - 15:16:27 EST


On 3/15/23 1:14?PM, Steven Rostedt wrote:
> On Wed, 1 Feb 2023 16:08:06 +0100
> "Uladzislau Rezki (Sony)" <urezki@xxxxxxxxx> wrote:
>
>> This small series is based on Paul's "dev" branch. Head is 6002817348a1c610dc1b1c01ff81654cdec12be4
>> it renames a single argument of k[v]free_rcu() to its new k[v]free_rcu_mightsleep() name.
>>
>> 1.
>> The problem is that, recently we have run into a precedent when
>> a user intended to give a second argument to kfree_rcu() API but
>> forgot to do it in a code so a call became as a single argument
>> of kfree_rcu() API.
>>
>> 2.
>> Such mistyping can lead to hidden bags where sleeping is forbidden.
>>
>> 3.
>> _mightsleep() prefix gives much more information for which contexts
>> it can be used for.
>
> My honest opinion is that I hate that name "kvfree_rcu_mightsleep()" ;-)
>
> As I honestly don't know why it might sleep.
>
> I didn't care about the name before, but now that it's touching code I
> maintain I do care ;-)
>
> Why not call it:
>
> kvfree_rcu_synchronize()
>
> ?
>
> As that is much more descriptive of what it does. Especially since these
> ugly names are popping up in my code because kvfree_rcu() replaced a
> rcu_synchronize() in the first place.

This was my main complaint too, kvfree_rcu_mightsleep() is an absolutely
horrible name for an API... But nobody seemed to care about that!

I like the _synchronize() suggestion, as it matches other RCU naming.

--
Jens Axboe