All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: Jens Axboe <axboe@kernel.dk>
Cc: "Uladzislau Rezki (Sony)" <urezki@gmail.com>,
	LKML <linux-kernel@vger.kernel.org>, RCU <rcu@vger.kernel.org>,
	Oleksiy Avramchenko <oleksiy.avramchenko@sony.com>,
	Philipp Reisner <philipp.reisner@linbit.com>,
	Bryan Tan <bryantan@vmware.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Eric Dumazet <edumazet@google.com>,
	Bob Pearson <rpearsonhpe@gmail.com>,
	Ariel Levkovich <lariel@nvidia.com>,
	Theodore Ts'o <tytso@mit.edu>, Julian Anastasov <ja@ssi.bg>
Subject: Re: [PATCH 00/13] Rename k[v]free_rcu() single argument to k[v]free_rcu_mightsleep()
Date: Thu, 23 Feb 2023 10:31:24 -0800	[thread overview]
Message-ID: <20230223183124.GF2948950@paulmck-ThinkPad-P17-Gen-1> (raw)
In-Reply-To: <84fd00b0-aa87-e4b7-e0a4-d57b720216c0@kernel.dk>

On Thu, Feb 23, 2023 at 07:57:13AM -0700, Jens Axboe wrote:
> On 2/1/23 8:08 AM, 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.
> 
> This patchset seems weird to me. We have a LOT of calls that might
> sleep, yet we don't suffix them all with _mightsleep(). Why is this
> any different? Why isn't this just a might_sleep() call in the
> actual helper, which will suffice for checkers and catch it at
> runtime as well.

Fair enough, and the situation that this patchset is addressing is also a
bit unusual.  This change was requested by Eric Dumazet due to a situation
where someone forgot the optional second argument to kfree_rcu().  Now,
you are right that this would be caught if invoked from a non-sleepable
context, but there are also cases where sleeping is legal, but where the
occasional wait for an RCU grace period would be a problem.  The checkers
cannot easily catch this sort of thing, and hence the change in name.

Hey, the combined one/two-argument form seemed like a good idea at
the time!  ;-)

							Thanx, Paul

  reply	other threads:[~2023-02-23 18:31 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-01 15:08 [PATCH 00/13] Rename k[v]free_rcu() single argument to k[v]free_rcu_mightsleep() Uladzislau Rezki (Sony)
2023-02-01 15:08 ` [PATCH 01/13] rcu/kvfree: Add kvfree_rcu_mightsleep() and kfree_rcu_mightsleep() Uladzislau Rezki (Sony)
2023-02-02  7:54   ` Zhuo, Qiuxu
2023-02-02 15:07     ` Paul E. McKenney
2023-02-01 15:08 ` [PATCH 02/13] drbd: Rename kvfree_rcu() to kvfree_rcu_mightsleep() Uladzislau Rezki (Sony)
2023-03-09 13:39   ` Uladzislau Rezki
2023-02-01 15:08 ` [PATCH 03/13] misc: vmw_vmci: " Uladzislau Rezki (Sony)
2023-03-09 13:41   ` Uladzislau Rezki
2023-03-09 14:36   ` Vishnu Dasa
2023-02-01 15:08 ` [PATCH 04/13] tracing: " Uladzislau Rezki (Sony)
2023-03-09 13:45   ` Uladzislau Rezki
2023-03-15 22:36     ` Steven Rostedt
2023-03-15 23:19       ` Jens Axboe
2023-03-16  0:37         ` Paul E. McKenney
2023-03-16  2:23           ` Steven Rostedt
2023-03-16  3:44             ` Paul E. McKenney
2023-03-16  4:16               ` Joel Fernandes
2023-03-16 12:14                 ` Steven Rostedt
2023-03-16 14:56                   ` Paul E. McKenney
2023-03-16  8:16       ` Uladzislau Rezki
2023-03-16 13:56         ` Steven Rostedt
2023-03-16 15:05           ` Uladzislau Rezki
2023-03-17  9:05             ` Uladzislau Rezki
2023-03-16 15:12           ` Paul E. McKenney
2023-03-16 17:54       ` Paul E. McKenney
2023-03-16 17:57       ` Uladzislau Rezki
2023-03-16 18:01         ` Joel Fernandes
2023-03-18 16:11           ` Steven Rostedt
2023-03-22 23:10             ` Joel Fernandes
2023-02-01 15:08 ` [PATCH 05/13] lib/test_vmalloc.c: " Uladzislau Rezki (Sony)
2023-02-01 15:08 ` [PATCH 06/13] net/sysctl: " Uladzislau Rezki (Sony)
2023-03-09 13:48   ` Uladzislau Rezki
2023-03-09 13:49   ` Uladzislau Rezki
2023-02-01 15:08 ` [PATCH 07/13] RDMA/rxe: Rename kfree_rcu() to kfree_rcu_mightsleep() Uladzislau Rezki (Sony)
2023-03-09 13:48   ` Uladzislau Rezki
2023-03-09 14:13     ` Uladzislau Rezki
2023-03-10  0:55       ` Joel Fernandes
2023-03-13 19:43         ` Bob Pearson
2023-03-15 11:50           ` Joel Fernandes
2023-03-15 18:07             ` Bob Pearson
2023-03-14  6:31       ` Zhu Yanjun
2023-02-01 15:08 ` [PATCH 08/13] net/mlx5: " Uladzislau Rezki (Sony)
2023-03-09 13:47   ` Uladzislau Rezki
2023-02-01 15:08 ` [PATCH 09/13] ext4/super: " Uladzislau Rezki (Sony)
2023-03-09 13:43   ` Uladzislau Rezki
2023-02-01 19:12 ` [PATCH 00/13] Rename k[v]free_rcu() single argument to k[v]free_rcu_mightsleep() Paul E. McKenney
2023-02-02 15:54   ` Uladzislau Rezki
2023-02-02 16:35     ` Paul E. McKenney
2023-02-23 12:45 ` Frederic Weisbecker
2023-02-23 14:29   ` Zhuo, Qiuxu
2023-02-23 15:54     ` Paul E. McKenney
2023-02-23 16:21       ` Julian Anastasov
2023-02-23 17:14         ` Paul E. McKenney
2023-02-23 17:36           ` Pablo Neira Ayuso
2023-02-23 18:21             ` Paul E. McKenney
2023-02-23 14:57 ` Jens Axboe
2023-02-23 18:31   ` Paul E. McKenney [this message]
2023-02-23 19:36     ` Jens Axboe
2023-02-23 19:47       ` Paul E. McKenney
2023-02-23 19:57         ` Jens Axboe
2023-03-15 19:14 ` Steven Rostedt
2023-03-15 19:16   ` Jens Axboe
2023-03-15 19:25     ` Uladzislau Rezki
2023-03-15 19:34       ` Steven Rostedt
2023-03-15 19:57         ` Joel Fernandes
2023-03-15 20:28           ` Steven Rostedt
2023-03-15 21:07             ` Uladzislau Rezki
2023-03-15 21:14               ` Uladzislau Rezki
2023-03-15 22:08             ` Joel Fernandes
2023-03-15 22:26               ` Steven Rostedt
2023-03-16  2:13                 ` Joel Fernandes
2023-03-16  2:50                   ` Steven Rostedt
2023-03-16  5:01                     ` Joel Fernandes
2023-03-16  1:25               ` Theodore Ts'o
2023-03-16  2:15                 ` Steven Rostedt
2023-03-16  2:52                 ` Paul E. McKenney
2023-03-16  0:42         ` Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230223183124.GF2948950@paulmck-ThinkPad-P17-Gen-1 \
    --to=paulmck@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=bryantan@vmware.com \
    --cc=edumazet@google.com \
    --cc=ja@ssi.bg \
    --cc=lariel@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleksiy.avramchenko@sony.com \
    --cc=philipp.reisner@linbit.com \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=rpearsonhpe@gmail.com \
    --cc=tytso@mit.edu \
    --cc=urezki@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.