* [PATCH 1/3] perf tools: Fix trace events storms due to weight demux
@ 2012-07-18 17:10 Frederic Weisbecker
2012-07-18 17:10 ` [PATCH 2/3] perf tools: Return correct number of characters printed in callchain Frederic Weisbecker
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Frederic Weisbecker @ 2012-07-18 17:10 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra
Cc: LKML, Frederic Weisbecker, David Ahern, Jiri Olsa, Namhyung Kim
Trace events have a period (weight) of 1 by default. This can
be overriden on events definition by using the __perf_count()
macro.
For example, the sched_stat_runtime() is weighted with the runtime
of the task that fired the event.
By default, perf handles such weighted event by dividing it into
individual events carrying a weight of 1. For example if
sched_stat_runtime is fired and the task has run 5000000 nsecs,
perf divides it into 5000000 events in the buffer.
This behaviour makes weighted events unusable because they quickly
fullfill the buffers and we lose most events.
commit 5d81e5cfb37a174e8ddc0413e2e70cdf05807ace
("events: Don't divide events if it has field period") solves this
problem by sending only one event when PERF_SAMPLE_PERIOD flag
is set. The weight is carried in the sample itself such that we don't
need to demultiplex it anymore.
This patch provides the last missing piece to use this feature by setting
PERF_SAMPLE_PERIOD from perf tools when we deal with trace events.
Before:
$ ./perf record -e sched:* -a sleep 1
[ perf record: Woken up 3 times to write data ]
[ perf record: Captured and wrote 1.619 MB perf.data (~70749 samples) ]
Warning:
Processed 16909 events and lost 1 chunks!
Check IO/CPU overload!
$ ./perf script
perf 1894 [003] 824.898327: sched_migrate_task: comm=perf pid=1898 prio=120 orig_cpu=2 dest_cpu=0
perf 1894 [003] 824.898335: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898336: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898337: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898338: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898339: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898340: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898341: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
[...]
After:
$ ./perf record -e sched:* -a sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.074 MB perf.data (~3228 samples) ]
$ ./perf script
perf 1461 [000] 554.286957: sched_migrate_task: comm=perf pid=1465 prio=120 orig_cpu=3 dest_cpu=1
perf 1461 [000] 554.286964: sched_stat_sleep: comm=perf pid=1465 delay=133047190 [ns]
perf 1461 [000] 554.286967: sched_wakeup: comm=perf pid=1465 prio=120 success=1 target_cpu=001
swapper 0 [001] 554.286976: sched_stat_wait: comm=perf pid=1465 delay=0 [ns]
swapper 0 [001] 554.286983: sched_switch: prev_comm=swapper/1 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=perf
[...]
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
tools/perf/util/evlist.c | 2 +-
tools/perf/util/parse-events.c | 1 +
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index f74e956..3edfd34 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -214,7 +214,7 @@ int perf_evlist__add_tracepoints(struct perf_evlist *evlist,
attrs[i].type = PERF_TYPE_TRACEPOINT;
attrs[i].config = err;
attrs[i].sample_type = (PERF_SAMPLE_RAW | PERF_SAMPLE_TIME |
- PERF_SAMPLE_CPU);
+ PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD);
attrs[i].sample_period = 1;
}
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 1aa721d..a729945 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -377,6 +377,7 @@ static int add_tracepoint(struct list_head **list, int *idx,
attr.sample_type |= PERF_SAMPLE_RAW;
attr.sample_type |= PERF_SAMPLE_TIME;
attr.sample_type |= PERF_SAMPLE_CPU;
+ attr.sample_type |= PERF_SAMPLE_PERIOD;
attr.sample_period = 1;
snprintf(name, MAX_NAME_LEN, "%s:%s", sys_name, evt_name);
--
1.7.5.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/3] perf tools: Return correct number of characters printed in callchain
2012-07-18 17:10 [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
@ 2012-07-18 17:10 ` Frederic Weisbecker
2012-07-25 19:21 ` [tip:perf/core] perf hists: " tip-bot for Frederic Weisbecker
2012-07-18 17:10 ` [PATCH 3/3] perf tools: Print newline between hists callchains Frederic Weisbecker
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Frederic Weisbecker @ 2012-07-18 17:10 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra
Cc: LKML, Frederic Weisbecker, David Ahern, Jiri Olsa, Namhyung Kim
Include the omitted number of characters printed for the first entry.
Not that it really matters because nobody seem to care about the number
of printed characters for now. But just in case.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
tools/perf/util/hist.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 514e2a4..90dc35a 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -708,7 +708,7 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
bool printed = false;
struct rb_node *node;
int i = 0;
- int ret;
+ int ret = 0;
/*
* If have one single callchain root, don't bother printing
@@ -747,8 +747,9 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
root = &cnode->rb_root;
}
- return __callchain__fprintf_graph(fp, root, total_samples,
+ ret += __callchain__fprintf_graph(fp, root, total_samples,
1, 1, left_margin);
+ return ret;
}
static size_t __callchain__fprintf_flat(FILE *fp,
--
1.7.5.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/3] perf tools: Print newline between hists callchains
2012-07-18 17:10 [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
2012-07-18 17:10 ` [PATCH 2/3] perf tools: Return correct number of characters printed in callchain Frederic Weisbecker
@ 2012-07-18 17:10 ` Frederic Weisbecker
2012-07-25 19:23 ` [tip:perf/core] perf hists: " tip-bot for Frederic Weisbecker
2012-07-18 17:29 ` [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
2012-07-25 19:22 ` [tip:perf/core] " tip-bot for Frederic Weisbecker
3 siblings, 1 reply; 8+ messages in thread
From: Frederic Weisbecker @ 2012-07-18 17:10 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra
Cc: LKML, Frederic Weisbecker, David Ahern, Jiri Olsa, Namhyung Kim
Tiny cosmetic fix. The lack of a newline between hists callchains
was looking slightly messy.
Before:
0.24% swapper [kernel.kallsyms] [k] _raw_spin_lock_irq
|
--- _raw_spin_lock_irq
run_timer_softirq
__do_softirq
call_softirq
do_softirq
irq_exit
smp_apic_timer_interrupt
apic_timer_interrupt
default_idle
amd_e400_idle
cpu_idle
start_secondary
0.10% perf [kernel.kallsyms] [k] lock_is_held
|
--- lock_is_held
__might_sleep
mutex_lock_nested
perf_event_for_each_child
perf_ioctl
do_vfs_ioctl
sys_ioctl
system_call_fastpath
ioctl
cmd_record
run_builtin
main
__libc_start_main
After:
0.24% swapper [kernel.kallsyms] [k] _raw_spin_lock_irq
|
--- _raw_spin_lock_irq
run_timer_softirq
__do_softirq
call_softirq
do_softirq
irq_exit
smp_apic_timer_interrupt
apic_timer_interrupt
default_idle
amd_e400_idle
cpu_idle
start_secondary
0.10% perf [kernel.kallsyms] [k] lock_is_held
|
--- lock_is_held
__might_sleep
mutex_lock_nested
perf_event_for_each_child
perf_ioctl
do_vfs_ioctl
sys_ioctl
system_call_fastpath
ioctl
cmd_record
run_builtin
main
__libc_start_main
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
---
tools/perf/util/hist.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 90dc35a..f247ef2 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -749,6 +749,8 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
ret += __callchain__fprintf_graph(fp, root, total_samples,
1, 1, left_margin);
+ ret += fprintf(fp, "\n");
+
return ret;
}
--
1.7.5.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] perf tools: Fix trace events storms due to weight demux
2012-07-18 17:10 [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
2012-07-18 17:10 ` [PATCH 2/3] perf tools: Return correct number of characters printed in callchain Frederic Weisbecker
2012-07-18 17:10 ` [PATCH 3/3] perf tools: Print newline between hists callchains Frederic Weisbecker
@ 2012-07-18 17:29 ` Frederic Weisbecker
2012-07-25 7:43 ` Ingo Molnar
2012-07-25 19:22 ` [tip:perf/core] " tip-bot for Frederic Weisbecker
3 siblings, 1 reply; 8+ messages in thread
From: Frederic Weisbecker @ 2012-07-18 17:29 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra
Cc: LKML, David Ahern, Jiri Olsa, Namhyung Kim
In case you wonder. This doesn't fix a regression so this is
3.6 material.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] perf tools: Fix trace events storms due to weight demux
2012-07-18 17:29 ` [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
@ 2012-07-25 7:43 ` Ingo Molnar
0 siblings, 0 replies; 8+ messages in thread
From: Ingo Molnar @ 2012-07-25 7:43 UTC (permalink / raw)
To: Frederic Weisbecker
Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Peter Zijlstra, LKML,
David Ahern, Jiri Olsa, Namhyung Kim
* Frederic Weisbecker <fweisbec@gmail.com> wrote:
> In case you wonder. This doesn't fix a regression so this is
> 3.6 material.
The newline and tracing one might be argued a regression, but
yeah, these are probably best for v3.6.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 8+ messages in thread
* [tip:perf/core] perf hists: Return correct number of characters printed in callchain
2012-07-18 17:10 ` [PATCH 2/3] perf tools: Return correct number of characters printed in callchain Frederic Weisbecker
@ 2012-07-25 19:21 ` tip-bot for Frederic Weisbecker
0 siblings, 0 replies; 8+ messages in thread
From: tip-bot for Frederic Weisbecker @ 2012-07-25 19:21 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, hpa, mingo, a.p.zijlstra, namhyung, jolsa,
fweisbec, dsahern, tglx
Commit-ID: 8760db726e2afcd1a78e2ff58965c6b35a5826cb
Gitweb: http://git.kernel.org/tip/8760db726e2afcd1a78e2ff58965c6b35a5826cb
Author: Frederic Weisbecker <fweisbec@gmail.com>
AuthorDate: Wed, 18 Jul 2012 19:10:55 +0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 25 Jul 2012 11:31:37 -0300
perf hists: Return correct number of characters printed in callchain
Include the omitted number of characters printed for the first entry.
Not that it really matters because nobody seem to care about the number
of printed characters for now. But just in case.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1342631456-7233-2-git-send-email-fweisbec@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/hist.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 514e2a4..90dc35a 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -708,7 +708,7 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
bool printed = false;
struct rb_node *node;
int i = 0;
- int ret;
+ int ret = 0;
/*
* If have one single callchain root, don't bother printing
@@ -747,8 +747,9 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
root = &cnode->rb_root;
}
- return __callchain__fprintf_graph(fp, root, total_samples,
+ ret += __callchain__fprintf_graph(fp, root, total_samples,
1, 1, left_margin);
+ return ret;
}
static size_t __callchain__fprintf_flat(FILE *fp,
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [tip:perf/core] perf tools: Fix trace events storms due to weight demux
2012-07-18 17:10 [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
` (2 preceding siblings ...)
2012-07-18 17:29 ` [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
@ 2012-07-25 19:22 ` tip-bot for Frederic Weisbecker
3 siblings, 0 replies; 8+ messages in thread
From: tip-bot for Frederic Weisbecker @ 2012-07-25 19:22 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, hpa, mingo, a.p.zijlstra, namhyung, jolsa,
fweisbec, dsahern, tglx
Commit-ID: 0983cc0dbca45250cbb5984bec7c303ac265b8e5
Gitweb: http://git.kernel.org/tip/0983cc0dbca45250cbb5984bec7c303ac265b8e5
Author: Frederic Weisbecker <fweisbec@gmail.com>
AuthorDate: Wed, 18 Jul 2012 19:10:54 +0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 25 Jul 2012 11:32:06 -0300
perf tools: Fix trace events storms due to weight demux
Trace events have a period (weight) of 1 by default. This can be
overriden on events definition by using the __perf_count() macro.
For example, the sched_stat_runtime() is weighted with the runtime of
the task that fired the event.
By default, perf handles such weighted event by dividing it into
individual events carrying a weight of 1. For example if
sched_stat_runtime is fired and the task has run 5000000 nsecs, perf
divides it into 5000000 events in the buffer.
This behaviour makes weighted events unusable because they quickly
fullfill the buffers and we lose most events.
The commit 5d81e5cfb37a174e8ddc0413e2e70cdf05807ace ("events: Don't
divide events if it has field period") solves this problem by sending
only one event when PERF_SAMPLE_PERIOD flag is set. The weight is
carried in the sample itself such that we don't need to demultiplex it
anymore.
This patch provides the last missing piece to use this feature by
setting PERF_SAMPLE_PERIOD from perf tools when we deal with trace
events.
Before:
$ ./perf record -e sched:* -a sleep 1
[ perf record: Woken up 3 times to write data ]
[ perf record: Captured and wrote 1.619 MB perf.data (~70749 samples) ]
Warning:
Processed 16909 events and lost 1 chunks!
Check IO/CPU overload!
$ ./perf script
perf 1894 [003] 824.898327: sched_migrate_task: comm=perf pid=1898 prio=120 orig_cpu=2 dest_cpu=0
perf 1894 [003] 824.898335: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898336: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898337: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898338: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898339: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898340: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
perf 1894 [003] 824.898341: sched_stat_sleep: comm=perf pid=1898 delay=113179500 [ns]
[...]
After:
$ ./perf record -e sched:* -a sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.074 MB perf.data (~3228 samples) ]
$ ./perf script
perf 1461 [000] 554.286957: sched_migrate_task: comm=perf pid=1465 prio=120 orig_cpu=3 dest_cpu=1
perf 1461 [000] 554.286964: sched_stat_sleep: comm=perf pid=1465 delay=133047190 [ns]
perf 1461 [000] 554.286967: sched_wakeup: comm=perf pid=1465 prio=120 success=1 target_cpu=001
swapper 0 [001] 554.286976: sched_stat_wait: comm=perf pid=1465 delay=0 [ns]
swapper 0 [001] 554.286983: sched_switch: prev_comm=swapper/1 prev_pid=0 prev_prio=120 prev_state=R ==> next_comm=perf
[...]
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1342631456-7233-1-git-send-email-fweisbec@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evlist.c | 2 +-
tools/perf/util/parse-events.c | 1 +
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index f74e956..3edfd34 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -214,7 +214,7 @@ int perf_evlist__add_tracepoints(struct perf_evlist *evlist,
attrs[i].type = PERF_TYPE_TRACEPOINT;
attrs[i].config = err;
attrs[i].sample_type = (PERF_SAMPLE_RAW | PERF_SAMPLE_TIME |
- PERF_SAMPLE_CPU);
+ PERF_SAMPLE_CPU | PERF_SAMPLE_PERIOD);
attrs[i].sample_period = 1;
}
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 1aa721d..a729945 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -377,6 +377,7 @@ static int add_tracepoint(struct list_head **list, int *idx,
attr.sample_type |= PERF_SAMPLE_RAW;
attr.sample_type |= PERF_SAMPLE_TIME;
attr.sample_type |= PERF_SAMPLE_CPU;
+ attr.sample_type |= PERF_SAMPLE_PERIOD;
attr.sample_period = 1;
snprintf(name, MAX_NAME_LEN, "%s:%s", sys_name, evt_name);
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [tip:perf/core] perf hists: Print newline between hists callchains
2012-07-18 17:10 ` [PATCH 3/3] perf tools: Print newline between hists callchains Frederic Weisbecker
@ 2012-07-25 19:23 ` tip-bot for Frederic Weisbecker
0 siblings, 0 replies; 8+ messages in thread
From: tip-bot for Frederic Weisbecker @ 2012-07-25 19:23 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, hpa, mingo, a.p.zijlstra, namhyung, jolsa,
fweisbec, dsahern, tglx
Commit-ID: 6654f5d8bdaa438b1e60dfeb90f9d46ca969c012
Gitweb: http://git.kernel.org/tip/6654f5d8bdaa438b1e60dfeb90f9d46ca969c012
Author: Frederic Weisbecker <fweisbec@gmail.com>
AuthorDate: Wed, 18 Jul 2012 19:10:56 +0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 25 Jul 2012 11:32:26 -0300
perf hists: Print newline between hists callchains
Tiny cosmetic fix. The lack of a newline between hists callchains was
looking slightly messy.
Before:
0.24% swapper [kernel.kallsyms] [k] _raw_spin_lock_irq
|
--- _raw_spin_lock_irq
run_timer_softirq
__do_softirq
call_softirq
do_softirq
irq_exit
smp_apic_timer_interrupt
apic_timer_interrupt
default_idle
amd_e400_idle
cpu_idle
start_secondary
0.10% perf [kernel.kallsyms] [k] lock_is_held
|
--- lock_is_held
__might_sleep
mutex_lock_nested
perf_event_for_each_child
perf_ioctl
do_vfs_ioctl
sys_ioctl
system_call_fastpath
ioctl
cmd_record
run_builtin
main
__libc_start_main
After:
0.24% swapper [kernel.kallsyms] [k] _raw_spin_lock_irq
|
--- _raw_spin_lock_irq
run_timer_softirq
__do_softirq
call_softirq
do_softirq
irq_exit
smp_apic_timer_interrupt
apic_timer_interrupt
default_idle
amd_e400_idle
cpu_idle
start_secondary
0.10% perf [kernel.kallsyms] [k] lock_is_held
|
--- lock_is_held
__might_sleep
mutex_lock_nested
perf_event_for_each_child
perf_ioctl
do_vfs_ioctl
sys_ioctl
system_call_fastpath
ioctl
cmd_record
run_builtin
main
__libc_start_main
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1342631456-7233-3-git-send-email-fweisbec@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/hist.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 90dc35a..f247ef2 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -749,6 +749,8 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
ret += __callchain__fprintf_graph(fp, root, total_samples,
1, 1, left_margin);
+ ret += fprintf(fp, "\n");
+
return ret;
}
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-07-25 19:23 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-18 17:10 [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
2012-07-18 17:10 ` [PATCH 2/3] perf tools: Return correct number of characters printed in callchain Frederic Weisbecker
2012-07-25 19:21 ` [tip:perf/core] perf hists: " tip-bot for Frederic Weisbecker
2012-07-18 17:10 ` [PATCH 3/3] perf tools: Print newline between hists callchains Frederic Weisbecker
2012-07-25 19:23 ` [tip:perf/core] perf hists: " tip-bot for Frederic Weisbecker
2012-07-18 17:29 ` [PATCH 1/3] perf tools: Fix trace events storms due to weight demux Frederic Weisbecker
2012-07-25 7:43 ` Ingo Molnar
2012-07-25 19:22 ` [tip:perf/core] " tip-bot for Frederic Weisbecker
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.