Messages in this thread | | | Subject | Re: [PATCH RFC] perf_counter: Don't swap contexts containing locked mutex | From | Pekka Enberg <> | Date | Fri, 29 May 2009 16:49:21 +0300 |
| |
Hi Ingo,
On Fri, 2009-05-29 at 14:35 +0200, Ingo Molnar wrote: > * Ingo Molnar <mingo@elte.hu> wrote: > > > try the latest Git repo (i tried 95110d7) and do this: > > > > make clean > > perf stat -- make -j > > > > that locks up for me, very quickly, with permanently stuck tasks: > > > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND > > 10748 mingo 20 0 0 0 0 R 100.4 0.0 0:06.44 chmod > > 10756 mingo 20 0 0 0 0 R 100.4 0.0 0:06.43 touch > > > > looping in the remove-context retry loop. > > ok, after muchos debugging and tracing this turned out to be the > perf_counter_task_exit() in kernel/fork.c, in the fork() failure > path. That zapped the task ctx in cpuctx and caused the next > schedule (which is rare) to not schedule the real context out. Then, > when the task was scheduled back in again later, we scheduled in > already active counters. Much mayhem followed and the lockup was a > common incarnation of that. I pushed out a couple of fixes for this. > > Pekka, the symptoms appear to match your 'stuck Xorg while make -j' > symptoms pretty accurately - so if you try latest perfcounters/core > it might solve some of those problems as well.
Yup, works much better here. Thanks!
Tested-by: Pekka Enberg <penberg@cs.helsinki.fi>
Pekka
| |