[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250114205531.967841-1-edumazet@google.com>
Date: Tue, 14 Jan 2025 20:55:26 +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 v3 net-next 0/5] 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.
v3: Deal with CONFIG_NET_NS=n
Use net_todo_list_for_cleanup_net in third patch.
Split the last patch in two parts for future bisections.
v2: Only temporarily release RTNL from cleanup_net()
v1: https://lore.kernel.org/netdev/20250107130906.098fc8d6@kernel.org/T/#m398c95f5778e1ff70938e079d3c4c43c050ad2a6
Eric Dumazet (5):
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()
(part 1)
net: reduce RTNL hold duration in unregister_netdevice_many_notify()
(part 2)
include/net/net_namespace.h | 2 +
net/core/dev.c | 97 ++++++++++++++++++++++++++++---------
net/core/net_namespace.c | 5 ++
3 files changed, 82 insertions(+), 22 deletions(-)
--
2.48.0.rc2.279.g1de40edade-goog
Powered by blists - more mailing lists