On 2/19/21 8:47 PM, Pavel Begunkov wrote:
On 20/02/2021 03:40, Jens Axboe wrote:
On 2/19/21 6:39 PM, Pavel Begunkov wrote:
There is a short window where percpu_refs are already turned zero, but we try to do resurrect(). Play nicer and wait for all users to leave RCU section.
We need to do something better than synchronize_rcu() here, that can take a long time on a loaded box. I'll try and think about this one.
It only happens when it can't be drained and there are task_works or signals. I have another patch, doing it via tryget, but it's uglier and I'd rather prefer synchronize_rcu for stable.
Right, but the task_work coming in may not be unlikely. So it's not strictly an error path.