Re: [PATCH] sched/fair: Prevent dead task groups from regaining cfs_rq's

From: Peter Zijlstra
Date: Fri Nov 05 2021 - 13:28:22 EST


On Fri, Nov 05, 2021 at 06:14:33PM +0100, Mathias Krause wrote:
> Am 05.11.21 um 17:58 schrieb Peter Zijlstra:
> > On Fri, Nov 05, 2021 at 05:29:14PM +0100, Mathias Krause wrote:
> >>> Looks like it needs to be the kfree_rcu() one in this case. I'll prepare
> >>> a patch.
> >>
> >> Testing the below patch right now. Looking good so far. Will prepare a
> >> proper patch later, if we all can agree that this covers all cases.
> >>
> >> But the basic idea is to defer the kfree()'s to after the next RCU GP,
> >> which also means we need to free the tg object itself later. Slightly
> >> ugly. :/
> >
> > Can't we add an rcu_head to struct task_group and simply call_rcu() the
> > thing with a free function?
>
> There is already one and this patch makes use of it for the second RCU
> GP requirement. Basically, the patch is doing what you request, no? See
> the new free_fair_sched_group().

For some reason I thought you still did kfree_rcu(), I suppose reading
is hard. I'll give it another go after dinner.