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....@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 <srost...@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 <mche...@redhat.com>
    Tested-by: Mauro Carvalho Chehab <mche...@redhat.com>
    Signed-off-by: Steven Rostedt <rost...@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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to