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

From: Sebastian Andrzej Siewior
Date: Tue Sep 20 2022 - 03:57:11 EST


On 2022-09-20 16:46:41 [+0900], Hyeonggon Yoo wrote:
> > @@ -2730,7 +2735,7 @@ static void flush_all_cpus_locked(struct kmem_cache *s)
> > INIT_WORK(&sfw->work, flush_cpu_slab);
> > sfw->skip = false;
> > sfw->s = s;
> > - schedule_work_on(cpu, &sfw->work);
> > + queue_work_on(cpu, flushwq, &sfw->work);
>
> Hi. what happens here if flushwq failed?
>
> I think avoiding BUG_ON() makes sense,
> but shouldn't we have fallback method?

You get an output to act on and fix. The point is that it shouldn't have
happen in the first place. With the bug_on() that early, chances are
that you never see anything but a blank screen. So with the warn_on you
get probably to see the warn_on before you get here.

Sebastian