[SRU][N:linux-bluefield][PATCH v1 0/3] UBUNTU: SAUCE: ipv4: Provide a FIB flushing signal from nexthop removal functions
Stav Aviram
saviram at nvidia.com
Thu May 7 11:20:15 UTC 2026
BugLink: https://bugs.launchpad.net/bugs/2151772
SRU Justification:
[IMPACT]
Fix a performance issue in the IPv4 routing table causing severe RTNL lock
contention which in some complicated deployments (multiple VXLAN interfaces,
128K+ routes, 128K+ nexthops) causes systemd-networkd to fail to renew DHCP
addresses in time, which then makes those interfaces become unmanaged.
[FIX]
The fixes optimize nexthop removal when an interface goes down by batching
FIB table flushing. Previously, for each nexthop being removed, the FIB table
was flushed to remove all routing table entries pointing to the nexthop being
removed. This flushing is a sequential walk of the entire FIB trie, and for N
nexthops being removed and R routes installed results in O(N x R) performance.
The fix postpones flushing until all nexthops are marked dead and then does a
single FIB flush to remove all affected routing entries. This improves the
performance to O(N + R).
Upstream patches being submitted here: https://lore.kernel.org/netdev/20260507075606.322405-1-cratiu@nvidia.com/T/#t
Those patches don't apply cleanly on 6.8 due to other missing functionality, dedicated 6.8. patches will be provided in this ticket.
[TEST CASE]
Successfully built the adjusted upstream patches on linux-bluefield-6.8
master-next branch.
[Regression Potential]
Low risk. The latest upstream patches don't apply cleanly on 6.8 due to
missing functionality, but the modifications to make the patches apply are
trivial and don't impact the logical flow of batching the cleanup.
Cosmin Ratiu (3):
UBUNTU: SAUCE: ipv4: Provide a FIB flushing signal from nexthop
removal functions
UBUNTU: SAUCE: ipv4: Flush the FIB once on multiple nexthop removal
UBUNTU: SAUCE: ipv4: Add __must_check to nexthop removal functions
net/ipv4/nexthop.c | 93 +++++++++++++++++++++++++++++-----------------
1 file changed, 58 insertions(+), 35 deletions(-)
--
2.38.1
More information about the kernel-team
mailing list