All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Joel Fernandes (Google)" <joel@joelfernandes.org>
To: linux-kernel@vger.kernel.org
Cc: "Joel Fernandes (Google)" <joel@joelfernandes.org>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	David Ahern <dsahern@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>,
	Jakub Kicinski <kuba@kernel.org>,
	Jamal Hadi Salim <jhs@mojatatu.com>,
	Jiri Pirko <jiri@resnulli.us>,
	netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>,
	rcu@vger.kernel.org, rostedt@goodmis.org, paulmck@kernel.org,
	fweisbec@gmail.com
Subject: [PATCH rcu/dev 2/3] net: Use call_rcu_flush() for in_dev_rcu_put
Date: Thu, 17 Nov 2022 03:15:49 +0000	[thread overview]
Message-ID: <20221117031551.1142289-2-joel@joelfernandes.org> (raw)
In-Reply-To: <20221117031551.1142289-1-joel@joelfernandes.org>

In a networking test on ChromeOS, we find that using the new CONFIG_RCU_LAZY
causes a networking test to fail in the teardown phase.

The failure happens during: ip netns del <name>

Using ftrace, I found the callbacks it was queuing which this series fixes. Use
call_rcu_flush() to revert to the old behavior. With that, the test passes.

Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
---
 net/ipv4/devinet.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index e8b9a9202fec..98b20f333e00 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -328,7 +328,7 @@ static void inetdev_destroy(struct in_device *in_dev)
 	neigh_parms_release(&arp_tbl, in_dev->arp_parms);
 	arp_ifdown(dev);
 
-	call_rcu(&in_dev->rcu_head, in_dev_rcu_put);
+	call_rcu_flush(&in_dev->rcu_head, in_dev_rcu_put);
 }
 
 int inet_addr_onlink(struct in_device *in_dev, __be32 a, __be32 b)
-- 
2.38.1.584.g0f3c55d4c2-goog


  reply	other threads:[~2022-11-17  3:16 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-17  3:15 [PATCH rcu/dev 1/3] net: Use call_rcu_flush() for qdisc_free_cb Joel Fernandes (Google)
2022-11-17  3:15 ` Joel Fernandes (Google) [this message]
2022-11-17 21:58   ` [PATCH rcu/dev 2/3] net: Use call_rcu_flush() for in_dev_rcu_put Eric Dumazet
2022-11-18  0:52     ` Joel Fernandes
2022-11-18  1:12       ` Eric Dumazet
2022-11-17  3:15 ` [PATCH rcu/dev 3/3] net: Use call_rcu_flush() for dst_destroy_rcu Joel Fernandes (Google)
2022-11-17  3:44   ` Eric Dumazet
2022-11-17 15:58     ` Joel Fernandes
2022-11-17 17:17       ` Eric Dumazet
2022-11-17 17:33         ` Eric Dumazet
2022-11-17 17:38         ` Joel Fernandes
2022-11-17 17:39           ` Eric Dumazet
2022-11-17 17:42             ` Joel Fernandes
2022-11-17 17:49               ` Eric Dumazet
2022-11-17 18:18                 ` Joel Fernandes
2022-11-17 18:22                   ` Eric Dumazet
2022-11-17 17:40           ` Joel Fernandes
2022-11-17 19:29             ` Paul E. McKenney
2022-11-17 21:16               ` Joel Fernandes
2022-11-17 21:29                 ` Eric Dumazet
2022-11-18  1:05                   ` Joel Fernandes
2022-11-17 21:44 ` [PATCH rcu/dev 1/3] net: Use call_rcu_flush() for qdisc_free_cb Eric Dumazet
2022-11-17 21:58   ` Joel Fernandes
2022-11-18  0:23   ` Joel Fernandes

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=20221117031551.1142289-2-joel@joelfernandes.org \
    --to=joel@joelfernandes.org \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jhs@mojatatu.com \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=xiyou.wangcong@gmail.com \
    --cc=yoshfuji@linux-ipv6.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 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.