[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250108162255.1306392-1-edumazet@google.com>
Date: Wed, 8 Jan 2025 16:22:51 +0000
From: Eric Dumazet <edumazet@...gle.com>
To: "David S . Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>
Cc: netdev@...r.kernel.org, Simon Horman <horms@...nel.org>, eric.dumazet@...il.com,
Eric Dumazet <edumazet@...gle.com>
Subject: [PATCH v2 net-next 0/4] net: reduce RTNL pressure in unregister_netdevice()
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.
v2: Only temporarily release RTNL from cleanup_net()
v1: https://lore.kernel.org/netdev/20250107130906.098fc8d6@kernel.org/T/#m398c95f5778e1ff70938e079d3c4c43c050ad2a6
Eric Dumazet (4):
net: expedite synchronize_net() for cleanup_net()
net: no longer assume RTNL is held in flush_all_backlogs()
net: no longer hold RTNL while calling flush_all_backlogs()
net: reduce RTNL hold duration in unregister_netdevice_many_notify()
include/net/net_namespace.h | 2 +
net/core/dev.c | 78 +++++++++++++++++++++++++++----------
net/core/net_namespace.c | 5 +++
3 files changed, 65 insertions(+), 20 deletions(-)
--
2.47.1.613.gc27f4b7a9f-goog
Powered by blists - more mailing lists