netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/4] net: reduce RTNL pressure in unregister_netdevice()
@ 2025-01-07 17:38 Eric Dumazet
  2025-01-07 17:38 ` [PATCH net-next 1/4] net: no longer assume RTNL is held in flush_all_backlogs() Eric Dumazet
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Eric Dumazet @ 2025-01-07 17:38 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski, Paolo Abeni
  Cc: netdev, Simon Horman, eric.dumazet, Eric Dumazet

One major source of RTNL contention resides in unregister_netdevice()

Due to RCU protection of various network structures, and
unregister_netdevice() being a synchronous function,
it is calling potentially slow functions while holding RTNL.

I think we can release RTNL in two points, so that three
slow functions are called while RTNL can be used
by other threads.

Eric Dumazet (4):
  net: no longer assume RTNL is held in flush_all_backlogs()
  net: no longer hold RTNL while calling flush_all_backlogs()
  net: expedite synchronize_net() for cleanup_net()
  net: reduce RTNL hold duration in unregister_netdevice_many_notify()

 include/net/net_namespace.h |  2 ++
 net/core/dev.c              | 61 +++++++++++++++++++++++++------------
 net/core/net_namespace.c    |  5 +++
 3 files changed, 48 insertions(+), 20 deletions(-)

-- 
2.47.1.613.gc27f4b7a9f-goog


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-01-09 18:15 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-07 17:38 [PATCH net-next 0/4] net: reduce RTNL pressure in unregister_netdevice() Eric Dumazet
2025-01-07 17:38 ` [PATCH net-next 1/4] net: no longer assume RTNL is held in flush_all_backlogs() Eric Dumazet
2025-01-07 17:38 ` [PATCH net-next 2/4] net: no longer hold RTNL while calling flush_all_backlogs() Eric Dumazet
2025-01-07 17:38 ` [PATCH net-next 3/4] net: expedite synchronize_net() for cleanup_net() Eric Dumazet
2025-01-09 17:42   ` kernel test robot
2025-01-09 18:14   ` kernel test robot
2025-01-07 17:38 ` [PATCH net-next 4/4] net: reduce RTNL hold duration in unregister_netdevice_many_notify() Eric Dumazet
2025-01-07 20:11 ` [PATCH net-next 0/4] net: reduce RTNL pressure in unregister_netdevice() Jakub Kicinski
2025-01-07 20:22   ` Eric Dumazet
2025-01-07 20:46     ` Eric Dumazet
2025-01-07 21:09       ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).