BUG: perf top enters loop synthesizing events for existing threads

From: Arnaldo Carvalho de Melo
Date: Wed Apr 08 2015 - 09:42:59 EST


Heads up,

While testing some unrelated patches I noticed, in one of my
machines, that 'perf top', as root, is entering some sort of loop and
ends up consuming a lot of memory, making the system unresponsive,
bisected it down to:

[acme@zoo linux]$ git bisect good
ca6c41c59b964d362823e80442e9e32c31106b29 is the first bad commit
commit ca6c41c59b964d362823e80442e9e32c31106b29
Author: David Ahern <dsahern@xxxxxxxxx>
Date: Mon Mar 30 14:35:58 2015 -0600

perf tools: Fix ppid for synthesized fork events

363b785f38 added synthesized fork events and set a thread's parent id to
itself. Since we are already processing /proc/<pid>/status the ppid can
be determined properly. Make it so.

Signed-off-by: David Ahern <dsahern@xxxxxxxxx>
Acked-by: Don Zickus <dzickus@xxxxxxxxxx>
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Joe Mario <jmario@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/1427747758-18510-2-git-send-email-dsahern@xxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

:040000 040000 24d479e4afbe95aaba882850473a870b6b3c7e87
cc86fe0e51b5e8a66e8a23f934fd0c4ff0f8dcd6 M tools
[acme@zoo linux]$


I also noticed that if I set /proc/sys/kernel/perf_event_paranoid to -1
to run it as !root, then the problem "goes away", which I think probably
is explained by, as !root, not being able to parse some of the /proc
files for existing threads and thus not triggering the bug, still
investigating...

I might need to revert it for this cycle...

- Arnaldo
--
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/