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

From: Uladzislau Rezki
Date: Wed Mar 15 2023 - 15:26:09 EST


On Wed, Mar 15, 2023 at 01:16:20PM -0600, Jens Axboe wrote:
> 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.
>
This is basically about what it does. If you renamed it to "_synchronize()"
in reality it would not mean that it always a synchronous call, most of the
time it is not whereas the name would point that it is.

--
Uladzislau Rezki