diff options
author | Jonas Rebmann <[email protected]> | 2024-10-07 16:17:12 +0200 |
---|---|---|
committer | David S. Miller <[email protected]> | 2024-10-09 12:50:11 +0100 |
commit | 298f70b37144217c580490fddfcda850213f5250 (patch) | |
tree | cc85f0918ed95a7a898a069673ea967ad0f5f286 /tools/perf/scripts/python/syscall-counts.py | |
parent | 69a3272d787c3e5977927a2775ecbd1a847dcf11 (diff) |
net: dpaa: use __dev_mc_sync in dpaa_set_rx_mode()
The original driver first unregisters then re-registers all multicast
addresses in the struct net_device_ops::ndo_set_rx_mode() callback.
As the networking stack calls ndo_set_rx_mode() if a single multicast
address change occurs, a significant amount of time may be used to first
unregister and then re-register unchanged multicast addresses. This
leads to performance issues when tracking large numbers of multicast
addresses.
Replace the unregister and register loop and the hand crafted
mc_addr_list list handling with __dev_mc_sync(), to only update entries
which have changed.
On profiling with an fsl_dpa NIC, this patch presented a speedup of
around 40 when successively setting up 2000 multicast groups using
setsockopt(), without drawbacks on smaller numbers of multicast groups.
Signed-off-by: Jonas Rebmann <[email protected]>
Reviewed-by: Sean Anderson <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts.py')
0 files changed, 0 insertions, 0 deletions