Re: [External] Re: [PATCH v2 2/6] perf/core: Introduce percpu perf_cgroup

From: Peter Zijlstra
Date: Wed Mar 23 2022 - 04:14:49 EST


On Wed, Mar 23, 2022 at 12:33:51AM +0800, Chengming Zhou wrote:
> On 2022/3/22 9:01 下午, Peter Zijlstra wrote:
> > On Tue, Mar 22, 2022 at 08:08:30PM +0800, Chengming Zhou wrote:
> >> Although we don't have incosistency problem any more, we can
> >> have other problem like:
> >>
> >> CPU1 CPU2
> >> (in context_switch) (attach running task)
> >> prev->cgroups = cgrp2
> >> perf_cgroup_sched_switch(prev, next)
> >> cgrp2 == cgrp2 is True
> >>
> >
> > Again, I'm not following, how can you attach to a running task from
> > another CPU ?
>
> Hi Peter, I make a little testcase which can reproduce the race
> problem, on system with PSI disabled. Because when PSI enabled,
> cgroup_move_task() will hold rq lock to assign task->cgroups.

No, the problem is that you're talking about cgroup attach while I'm
thinking of attaching a event to a task. And your picture has nothing to
clarify.

Those pictures of yours could really do with a few more function names
in them, otherwise it's absolutely unclear what code is running where.