public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: Joel Fernandes <joel@joelfernandes.org>
Cc: dhowells@redhat.com, "Paul E. McKenney" <paulmck@kernel.org>,
	rcu@vger.kernel.org, linux-kernel@vger.kernel.org,
	kernel-team@meta.com, rostedt@goodmis.org,
	Marc Dionne <marc.dionne@auristor.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	linux-afs@lists.infradead.org, netdev@vger.kernel.org
Subject: Re: [PATCH rcu 14/16] rxrpc: Use call_rcu_hurry() instead of call_rcu()
Date: Wed, 30 Nov 2022 23:05:22 +0000	[thread overview]
Message-ID: <658624.1669849522@warthog.procyon.org.uk> (raw)
In-Reply-To: <CAEXW_YSd3dyxHxnU1EuER+xyBGGatONzPovphFX5K9seSbkdkg@mail.gmail.com>

Joel Fernandes <joel@joelfernandes.org> wrote:

> > Note that this conflicts with my patch:
> >
> >         rxrpc: Don't hold a ref for connection workqueue
> >         https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit/?h=rxrpc-next&id=450b00011290660127c2d76f5c5ed264126eb229
> >
> > which should render it unnecessary.  It's a little ahead of yours in the
> > net-next queue, if that means anything.
> 
> Could you clarify why it is unnecessary?

Rather than tearing down parts of the connection it only logs a trace line,
frees the memory and decrements the counter on the namespace.  This it used to
account that all the pieces of memory allocated in that namespace are gone
before the namespace is removed to check for leaks.  The RCU cleanup used to
use some other stuff (such as the peer hash) in the rxrpc_net struct but no
longer will after the patches I submitted.

> After your patch, you are still doing a wake up in your call_rcu() callback:
>
> - ASSERTCMP(refcount_read(&conn->ref), ==, 0);
> + if (atomic_dec_and_test(&rxnet->nr_conns))
> +    wake_up_var(&rxnet->nr_conns);
> +}
> 
> Are you saying the code can now tolerate delays? What if the RCU
> callback is invoked after arbitrarily long delays making the sleeping
> process to wait?

True.  But that now only holds up the destruction of a net namespace and the
removal of the rxrpc module.

> If you agree, you can convert the call_rcu() to call_rcu_hurry() in
> your patch itself. Would you be willing to do that? If not, that's
> totally OK and I can send a patch later once yours is in (after
> further testing).

I can add it to part 4 (see my rxrpc-ringless-5 branch) if it is necessary.

David


  reply	other threads:[~2022-11-30 23:06 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-30 18:13 [PATCH v3 rcu 0/16] Lazy call_rcu() updates for v6.2 Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 01/16] rcu: Simplify rcu_init_nohz() cpumask handling Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 02/16] rcu: Fix late wakeup when flush of bypass cblist happens Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 03/16] rcu: Fix missing nocb gp wake on rcu_barrier() Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 04/16] rcu: Make call_rcu() lazy to save power Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 05/16] rcu: Refactor code a bit in rcu_nocb_do_flush_bypass() Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 06/16] rcu: Shrinker for lazy rcu Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 07/16] rcuscale: Add laziness and kfree tests Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 08/16] rcu/sync: Use call_rcu_hurry() instead of call_rcu Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 09/16] rcu/rcuscale: Use call_rcu_hurry() for async reader test Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 10/16] rcu/rcutorture: Use call_rcu_hurry() where needed Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 11/16] scsi/scsi_error: Use call_rcu_hurry() instead of call_rcu() Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 12/16] percpu-refcount: Use call_rcu_hurry() for atomic switch Paul E. McKenney
2022-11-30 18:19   ` Joel Fernandes
2022-11-30 19:43   ` Tejun Heo
2022-11-30 21:44     ` Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 13/16] workqueue: Make queue_rcu_work() use call_rcu_hurry() Paul E. McKenney
2022-11-30 18:18   ` Joel Fernandes
2022-11-30 19:43   ` Tejun Heo
2022-11-30 18:13 ` [PATCH rcu 14/16] rxrpc: Use call_rcu_hurry() instead of call_rcu() Paul E. McKenney
2022-11-30 18:16   ` Joel Fernandes
2022-11-30 18:37     ` Eric Dumazet
2022-11-30 21:45       ` Paul E. McKenney
2022-11-30 21:49         ` Steven Rostedt
2022-11-30 22:00           ` Paul E. McKenney
2022-11-30 19:09     ` David Howells
2022-11-30 19:20       ` Joel Fernandes
2022-11-30 21:43         ` Paul E. McKenney
2022-11-30 22:06           ` Joel Fernandes
2022-11-30 20:12       ` Paul E. McKenney
2022-11-30 22:47       ` Joel Fernandes
2022-11-30 23:05         ` David Howells [this message]
2022-11-30 23:15           ` Joel Fernandes
2023-03-11 17:46           ` Joel Fernandes
2022-11-30 18:13 ` [PATCH rcu 15/16] net: Use call_rcu_hurry() for dst_release() Paul E. McKenney
2022-11-30 18:16   ` Joel Fernandes
2022-11-30 18:39     ` Eric Dumazet
2022-11-30 18:50       ` Joel Fernandes
2022-11-30 21:40       ` Paul E. McKenney
2022-11-30 18:13 ` [PATCH rcu 16/16] net: devinet: Reduce refcount before grace period Paul E. McKenney

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=658624.1669849522@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=joel@joelfernandes.org \
    --cc=kernel-team@meta.com \
    --cc=kuba@kernel.org \
    --cc=linux-afs@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.dionne@auristor.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox