lkml.org 
[lkml]   [2013]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [PATCH 12/14] perf ftrace: Use pager for displaying result
Date
On Mon, 6 May 2013 13:38:19 +0200, Jiri Olsa wrote:
> On Mon, May 06, 2013 at 10:52:46AM +0900, Namhyung Kim wrote:
>> On Fri, 26 Apr 2013 10:40:23 +0200, Jiri Olsa wrote:
>> > On Thu, Apr 25, 2013 at 03:50:45PM +0900, Namhyung Kim wrote:
>> >> On Wed, 24 Apr 2013 16:17:24 +0200, Jiri Olsa wrote:
>> >> > On Tue, Apr 23, 2013 at 05:31:10PM +0900, Namhyung Kim wrote:
>> >> >> From: Namhyung Kim <namhyung.kim@lge.com>
>> >> >>
>> >> >> It's convenient to use pager when seeing many lines of result.
>> >> >>
>> >> > for some reason I'm able to get any output for 'live' command only
>> >> > when using --no-pager option. I dont get any data for:
>> >> >
>> >> > # ./perf ftrace live ls
>> >> >
>> >> > not even ls output
>> >
>> > ok, now with your patch I get allways ls output correctly in pager
>>
>> "ls output" only? What about the ftrace outputs?
>>
>> >
>> >> >
>> >> > But sometime I dont even get ftrace output for:
>> >> >
>> >> > # ./perf --no-pager ftrace live ls
>> >> >
>> >> > just ls output
>> >
>> > this one still persists
>>
>> Hmm.. still hard to reproduce.. :(
>>
>> As it's --no-pager mode, so that it can be reproduced for you without
>> this patch, right?
>
> right, I still see the second issue (not getting ftrace output)
> regardless of the patch being applied or not

Did you get the same result always? What's the value of tracing_cpumask?

Could you please apply this debug patch below and run it again?

Thank you very much for your help!
Namhyung


diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c
index f1ecfa207822..6b7aeae2dfa5 100644
--- a/tools/perf/builtin-ftrace.c
+++ b/tools/perf/builtin-ftrace.c
@@ -40,9 +40,11 @@ struct perf_ftrace {
};

static bool done;
+static int _signal;

static void sig_handler(int sig __maybe_unused)
{
+ _signal = sig;
done = true;
}

@@ -218,6 +220,20 @@ static int do_ftrace_live(struct perf_ftrace *ftrace)

perf_evlist__start_workload(ftrace->evlist);

+ BUG_ON(ftrace->evlist->threads->map[0] != ftrace->evlist->workload.pid);
+
+ trace_file = get_tracing_file("tracing_on");
+ if (trace_file) {
+ int fd = open(trace_file, O_RDONLY);
+
+ BUG_ON(fd < 0);
+ BUG_ON(read(fd, buf, sizeof(buf)) < 0);
+ BUG_ON(buf[0] != '1');
+
+ close(fd);
+ put_tracing_file(trace_file);
+ }
+
while (!done) {
if (poll(&pollfd, 1, -1) < 0)
break;
@@ -231,6 +247,7 @@ static int do_ftrace_live(struct perf_ftrace *ftrace)
}
}

+ psignal(_signal, "perf");
write_tracing_file("tracing_on", "0");

/* read remaining buffer contents */



\
 
 \ /
  Last update: 2013-05-08 08:21    [W:0.079 / U:0.048 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site