Messages in this thread | | | From | Namhyung Kim <> | Subject | Re: [PATCH 06/19] perf ftrace: Add support for --pid option | Date | Thu, 18 Jul 2013 15:38:19 +0900 |
| |
Hi Jiri,
On Thu, 11 Jul 2013 16:56:54 +0900, Namhyung Kim wrote: > On Wed, 10 Jul 2013 16:18:20 +0200, Jiri Olsa wrote: >> On Wed, Jun 26, 2013 at 04:14:09PM +0900, Namhyung Kim wrote: >>> From: Namhyung Kim <namhyung.kim@lge.com> >>> >>> The -p (--pid) option enables to trace existing process by its pid. >> >> hi, >> I can't get any output from -p for live subcommand: >> >> [jolsa@krava perf]$ pgrep yes >> 6443 >> [jolsa@krava perf]$ sudo ./perf ftrace live -p `pgrep yes` > > Hmm... looks like it's stuck on polling the trace_pipe: > > $ sudo strace ./perf ftrace -p `pgrep yes' > ... > poll([{fd=3, events=POLLIN}], 1, 4294967295 > > > Need to investigate it more.
What's your kernel version? My kernel was 3.6.9. I guess there's a problem with trace_pipe's poll implementation on pre-3.10 kernels which was fixed by:
commit cc60cdc952be09bca5b0bff9fefc7aa6185c3049 Author: Steven Rostedt <srostedt@redhat.com> Date: Thu Feb 28 09:17:16 2013 -0500
tracing: Fix polling on trace_pipe_raw
The trace_pipe_raw never implemented polling and this was casing issues for several utilities. This is now implemented.
Blocked reads still are on the TODO list.
Reported-by: Mauro Carvalho Chehab <mchehab@redhat.com> Tested-by: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
It seems recent kernel doesn't have this issue. Could you confirm that?
Anyway, I decided not to use poll() here since all recorders only read one file and it'll provide better compatibility. I will use non-blocking read() + nanosleep() as trace-cmd does.
Thanks, Namhyung
| |