[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 1 Feb 2024 18:13:55 -0800
From: Bart Van Assche <bvanassche@....org>
To: Boqun Feng <boqun.feng@...il.com>
Cc: Zhiguo Niu <zhiguo.niu@...soc.com>, peterz@...radead.org,
mingo@...hat.com, will@...nel.org, longman@...hat.com,
linux-kernel@...r.kernel.org, niuzhiguo84@...il.com, ke.wang@...soc.com,
xuewen.yan@...soc.com, Carlos Llamas <cmllamas@...gle.com>
Subject: Re: [PATCH V2] lockdep: fix deadlock issue between lockdep and rcu
On 2/1/24 13:53, Boqun Feng wrote:
> Have you checked the change in the patch? Now call_rcu_zapped() has been
> splitted into two parts: preparing the callback and calling call_rcu(),
> the preparing part checks and sets the delayed_free.scheduled under
> graph_lock(), so only one CPU/thread will win and do the actual
> call_rcu(). And the RCU callback free_zapped_rcu() will unset
> delayed_free.scheduled, again under graph_lock().
>
> If you think it's still possible, could you provide a case where the
> race may happen?
Yes, I noticed that call_rcu_zapped() has been split but the first time
I took a look at this patch I wasn't sure that the new code is correct.
After having taken a second look, the new mechanism for deciding whether
or not to invoke call_rcu() seems fine to me.
Bart.
Powered by blists - more mailing lists