Re: perf and cgroup event scheduling

From: Stephane Eranian
Date: Thu Mar 31 2011 - 13:07:22 EST


Peter,

On Thu, Mar 31, 2011 at 6:27 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> Hi Stephane,
>
> while trying to make sense of various other fun event scheduling issues,
> I noticed that perf_cgroup_switch() isn't always doing the right thing.
>
> So we typically want to schedule: CPU-pinned, TASK-pinned, CPU-flexible
> TASK-flexible, however the current code doesn't respect that.
>
Unfortunately, you are right ;-). I think we should try to centralize
the scheduling
of per-cpu and per-thread event in a single function that goes through
the priority
list. In certain cases, we would sched out and back in per-thread
events, but that
would be the only to maintain the priority scheme. I will look into that.


In the meantime, yesterday, I found and fixed one potential kernel crash problem
related to mixing cgroup + per-thread events. I will be posting the
patch shortly.


> In particular perf_cgroup_sched_in() is placed wrong, it should be
> _before_ we schedule in the task contexts.
>
> There's further complications with things like perf_install_in_context()
> and perf_cgroup_move(), but those are either rare or 'interesting' to
> fix.
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/