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

From: Paul E. McKenney
Date: Thu Feb 23 2023 - 10:54:24 EST


On Thu, Feb 23, 2023 at 02:29:42PM +0000, Zhuo, Qiuxu wrote:
> > 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/

Pablo and Julian, how are things coming with that patch?

Thanx, Paul