[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZiuRYxOo0nsVY3bm@nanopsycho>
Date: Fri, 26 Apr 2024 13:34:59 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: Eric Dumazet <edumazet@...gle.com>
Cc: "David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
netdev@...r.kernel.org, eric.dumazet@...il.com
Subject: Re: [PATCH net-next] net: give more chances to rcu in
netdev_wait_allrefs_any()
Fri, Apr 26, 2024 at 08:42:22AM CEST, edumazet@...gle.com wrote:
>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 <edumazet@...gle.com>
>Link: https://lore.kernel.org/all/28bbf698-befb-42f6-b561-851c67f464aa@kernel.org/T/#m76d73ed6b03cd930778ac4d20a777f22a08d6824
Reviewed-by: Jiri Pirko <jiri@...dia.com>
Powered by blists - more mailing lists