diff options
author | Kuniyuki Iwashima <kuniyu@amazon.com> | 2025-04-17 17:03:56 -0700 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2025-04-24 09:29:56 +0200 |
commit | 169fd62799e8acabbfb4760799be11138ced949c (patch) | |
tree | 98c6c22b276f86b2dc43587924d8250a874c35df /include/linux/wait_api.h | |
parent | 081efd18326e353c6fbfdeff903a83edde953f72 (diff) |
ipv6: Get rid of RTNL for SIOCADDRT and RTM_NEWROUTE.
Now we are ready to remove RTNL from SIOCADDRT and RTM_NEWROUTE.
The remaining things to do are
1. pass false to lwtunnel_valid_encap_type_attr()
2. use rcu_dereference_rtnl() in fib6_check_nexthop()
3. place rcu_read_lock() before ip6_route_info_create_nh().
Let's complete the RTNL-free conversion.
When each CPU-X adds 100000 routes on table-X in a batch
concurrently on c7a.metal-48xl EC2 instance with 192 CPUs,
without this series:
$ sudo ./route_test.sh
...
added 19200000 routes (100000 routes * 192 tables).
time elapsed: 191577 milliseconds.
with this series:
$ sudo ./route_test.sh
...
added 19200000 routes (100000 routes * 192 tables).
time elapsed: 62854 milliseconds.
I changed the number of routes in each table (1000 ~ 100000)
and consistently saw it finish 3x faster with this series.
Note that now every caller of lwtunnel_valid_encap_type() passes
false as the last argument, and this can be removed later.
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20250418000443.43734-16-kuniyu@amazon.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'include/linux/wait_api.h')
0 files changed, 0 insertions, 0 deletions