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

From: Zhuo, Qiuxu
Date: Thu Feb 23 2023 - 09:29:58 EST


> From: Frederic Weisbecker <frederic@xxxxxxxxxx>
> Sent: Thursday, February 23, 2023 8:45 PM
> To: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx>
> Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>; RCU <rcu@xxxxxxxxxxxxxxx>; Paul
> E . McKenney <paulmck@xxxxxxxxxx>; Oleksiy Avramchenko
> <oleksiy.avramchenko@xxxxxxxx>; Jens Axboe <axboe@xxxxxxxxx>; Philipp
> Reisner <philipp.reisner@xxxxxxxxxx>; Bryan Tan <bryantan@xxxxxxxxxx>;
> Steven Rostedt <rostedt@xxxxxxxxxxx>; Eric Dumazet
> <edumazet@xxxxxxxxxx>; Bob Pearson <rpearsonhpe@xxxxxxxxx>; Ariel
> Levkovich <lariel@xxxxxxxxxx>; Theodore Ts'o <tytso@xxxxxxx>; Julian
> Anastasov <ja@xxxxxx>
> Subject: Re: [PATCH 00/13] Rename k[v]free_rcu() single argument to
> k[v]free_rcu_mightsleep()
>
> On Wed, Feb 01, 2023 at 04:08:06PM +0100, Uladzislau Rezki (Sony) 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.
> >
> > Uladzislau Rezki (Sony) (13):
> > rcu/kvfree: Add kvfree_rcu_mightsleep() and kfree_rcu_mightsleep()
> > drbd: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
> > misc: vmw_vmci: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
> > tracing: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
> > lib/test_vmalloc.c: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
> > net/sysctl: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
> > RDMA/rxe: Rename kfree_rcu() to kfree_rcu_mightsleep()
> > net/mlx5: Rename kfree_rcu() to kfree_rcu_mightsleep()
> > ext4/super: Rename kfree_rcu() to kfree_rcu_mightsleep()
> > ipvs: Rename kfree_rcu() to kfree_rcu_mightsleep()
> > rcuscale: Rename kfree_rcu() to kfree_rcu_mightsleep()
> > doc: Update whatisRCU.rst
> > rcu/kvfree: Eliminate k[v]free_rcu() single argument macro
>
> Hi,
>
> Not sure if you guys noticed but on latest rcu/dev:
>
> net/netfilter/ipvs/ip_vs_est.c: In function ‘ip_vs_stop_estimator’:
> net/netfilter/ipvs/ip_vs_est.c:552:15: error: macro "kfree_rcu" requires 2
> arguments, but only 1 given
> kfree_rcu(td);
> ^
> net/netfilter/ipvs/ip_vs_est.c:552:3: error: ‘kfree_rcu’ undeclared (first use in
> this function); did you mean ‘kfree_skb’?
> kfree_rcu(td);
> ^~~~~~~~~
> kfree_skb
> net/netfilter/ipvs/ip_vs_est.c:552:3: note: each undeclared identifier is
> reported only once for each function it appears in
>

Hi Frederic Weisbecker,

I encountered the same build error as yours.
Per the discussion link below, the fix for this build error by Uladzislau Rezki will be picked up by some other maintainer's branch?
@Paul E . McKenney, please correct me if my understanding is wrong. 😊

https://lore.kernel.org/rcu/Y9qc+lgR1CgdszKs@salvia/

-Qiuxu