Re: 0087-rcu-Use-a-raw_spinlock_t-for-kfree-batching.patch

From: Sebastian Andrzej Siewior
Date: Wed Apr 15 2020 - 09:34:33 EST


On 2020-04-05 06:53:43 [+0200], Mike Galbraith wrote:
> Hi Sebastian,
Hi Mike,

> Just a heads up wrt $subject...
>
> I had done the same in my 5.6 tree, but then 5.7 came along, and I had
> to revisit due to 34c881745549e adding an allocation under that lock
> with irqs disabled. The same commit that added the lock added this.
>
> local_irq_save(flags); // For safely calling this_cpu_ptr().
>
> Whacking that instead of converting the lock cures 5.6 and 5.7 woes.

So I think you are telling me that I made the lock raw and then they
added in v5.7 a __get_free_page() call in
kfree_call_rcu_add_ptr_to_bulk() which is invoked from the free path.

This is indeed not something that made me happy. Now let me think about
this for a momentâ

> -Mike

Sebastian