[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240221105915.829140-1-edumazet@google.com>
Date: Wed, 21 Feb 2024 10:59:02 +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, eric.dumazet@...il.com,
Eric Dumazet <edumazet@...gle.com>
Subject: [PATCH net-next 00/13] rtnetlink: reduce RTNL pressure for dumps
This series restarts the conversion of rtnl dump operations
to RCU protection, instead of requiring RTNL.
In this new attempt (prior one failed in 2009), I chose to
allow a gradual conversion of selected operations.
After this series, "ip -6 addr" and "ip -4 ro" no longer
need to acquire RTNL.
I refrained from changing inet_dump_ifaddr() and inet6_dump_addr()
to avoid merge conflicts because of two fixes in net tree.
I also started the work for "ip link" future conversion.
Eric Dumazet (13):
rtnetlink: prepare nla_put_iflink() to run under RCU
ipv6: prepare inet6_fill_ifla6_attrs() for RCU
ipv6: prepare inet6_fill_ifinfo() for RCU protection
ipv6: use xarray iterator to implement inet6_dump_ifinfo()
netlink: fix netlink_diag_dump() return value
netlink: hold nlk->cb_mutex longer in __netlink_dump_start()
rtnetlink: change nlk->cb_mutex role
rtnetlink: add RTNL_FLAG_DUMP_UNLOCKED flag
ipv6: switch inet6_dump_ifinfo() to RCU protection
inet: allow ip_valid_fib_dump_req() to be called with RTNL or RCU
inet: switch inet_dump_fib() to RCU protection
rtnetlink: make rtnl_fill_link_ifmap() RCU ready
rtnetlink: provide RCU protection to rtnl_fill_prop_list()
drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +-
drivers/net/can/vxcan.c | 2 +-
.../net/ethernet/qualcomm/rmnet/rmnet_vnd.c | 2 +-
drivers/net/ipvlan/ipvlan_main.c | 2 +-
drivers/net/macsec.c | 2 +-
drivers/net/macvlan.c | 2 +-
drivers/net/netkit.c | 2 +-
drivers/net/veth.c | 2 +-
drivers/net/wireless/virtual/virt_wifi.c | 2 +-
include/linux/netdevice.h | 6 +-
include/linux/netlink.h | 2 +
include/net/ip_fib.h | 1 +
include/net/rtnetlink.h | 1 +
net/8021q/vlan_dev.c | 4 +-
net/core/dev.c | 6 +-
net/core/rtnetlink.c | 41 ++--
net/dsa/user.c | 2 +-
net/ieee802154/6lowpan/core.c | 2 +-
net/ipv4/fib_frontend.c | 50 ++--
net/ipv4/fib_trie.c | 4 +-
net/ipv4/ipmr.c | 4 +-
net/ipv6/addrconf.c | 222 +++++++++---------
net/ipv6/ip6_fib.c | 7 +-
net/ipv6/ip6_tunnel.c | 2 +-
net/ipv6/ip6mr.c | 4 +-
net/ipv6/ndisc.c | 2 +-
net/mpls/af_mpls.c | 4 +-
net/netlink/af_netlink.c | 46 ++--
net/netlink/af_netlink.h | 5 +-
net/netlink/diag.c | 2 +-
net/xfrm/xfrm_interface_core.c | 2 +-
31 files changed, 240 insertions(+), 199 deletions(-)
--
2.44.0.rc0.258.g7320e95886-goog
Powered by blists - more mailing lists