Re: [PATCH RFC] mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context.

From: Maurizio Lombardi
Date: Tue Aug 30 2022 - 15:03:35 EST


út 30. 8. 2022 v 20:59 odesílatel Sebastian Andrzej Siewior
<bigeasy@xxxxxxxxxxxxx> napsal:
>
> On 2022-08-30 17:48:06 [+0200], Maurizio Lombardi wrote:
> > Hmm, this is not good indeed. I guess I should have used for_each_online_cpu()
> > instead of on_each_cpu_cond().
>
> But you must not invoked that function cross-CPU since the code expects
> to access the per-CPU variables always from the local-CPU.

Ok, thanks for the clarification.

>
> > >
> > > Couldn't we instead use a workqueue with that WQ_MEM_RECLAIM bit? It may
> > > reclaim memory after all ;)
> >
> > That should also fix it, do you think it would be ok to allocate a workqueue in
> > in kmem_cache_init() ?
>
> I guess so. There is probably none that is already available.
>

Will test it and submit a patch soon.

Thanks,
Maurizio