diff options
| author | Eric Dumazet <[email protected]> | 2024-04-26 06:42:22 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2024-04-29 09:54:12 +0100 |
| commit | cd42ba1c8ac9deb9032add6adf491110e7442040 (patch) | |
| tree | cbe0ad7372a49bff0d17b429fbefd21e126d33ee /tools/perf/scripts/python/stackcollapse.py | |
| parent | d63394abc923093423c141d4049b72aa403fff07 (diff) | |
net: give more chances to rcu in netdev_wait_allrefs_any()
This came while reviewing commit c4e86b4363ac ("net: add two more
call_rcu_hurry()").
Paolo asked if adding one synchronize_rcu() would help.
While synchronize_rcu() does not help, making sure to call
rcu_barrier() before msleep(wait) is definitely helping
to make sure lazy call_rcu() are completed.
Instead of waiting ~100 seconds in my tests, the ref_tracker
splats occurs one time only, and netdev_wait_allrefs_any()
latency is reduced to the strict minimum.
Ideally we should audit our call_rcu() users to make sure
no refcount (or cascading call_rcu()) is held too long,
because rcu_barrier() is quite expensive.
Fixes: 0e4be9e57e8c ("net: use exponential backoff in netdev_wait_allrefs")
Signed-off-by: Eric Dumazet <[email protected]>
Link: https://lore.kernel.org/all/[email protected]/T/#m76d73ed6b03cd930778ac4d20a777f22a08d6824
Reviewed-by: Jiri Pirko <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions