* [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols
@ 2009-11-16 23:45 Arnaldo Carvalho de Melo
2009-11-16 23:45 ` [PATCH 2/2] perf buildid-list: Always show the DSO name Arnaldo Carvalho de Melo
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-11-16 23:45 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Frederic Weisbecker,
Mike Galbraith, Paul Mackerras, Peter Zijlstra
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Default continues to be showing all symbols. 'K' and 'U' can be used
to toggle showing kernel and user symbols.
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-top.c | 42 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 3af9520..89b7f68 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -76,6 +76,9 @@ static int delay_secs = 2;
static int zero = 0;
static int dump_symtab = 0;
+static bool hide_kernel_symbols = false;
+static bool hide_user_symbols = false;
+
/*
* Source
*/
@@ -104,6 +107,7 @@ struct sym_entry {
unsigned long snap_count;
double weight;
int skip;
+ u8 origin;
struct map *map;
struct source_line *source;
struct source_line *lines;
@@ -430,6 +434,13 @@ static void print_sym_table(void)
list_for_each_entry_safe_from(syme, n, &active_symbols, node) {
syme->snap_count = syme->count[snap];
if (syme->snap_count != 0) {
+ if ((hide_user_symbols &&
+ syme->origin == PERF_RECORD_MISC_USER) ||
+ (hide_kernel_symbols &&
+ syme->origin == PERF_RECORD_MISC_KERNEL)) {
+ list_remove_active_sym(syme);
+ continue;
+ }
syme->weight = sym_weight(syme);
rb_insert_active_sym(&tmp, syme);
sum_ksamples += syme->snap_count;
@@ -637,6 +648,12 @@ static void print_mapped_keys(void)
if (nr_counters > 1)
fprintf(stdout, "\t[w] toggle display weighted/count[E]r. \t(%d)\n", display_weighted ? 1 : 0);
+ fprintf(stdout,
+ "\t[K] hide kernel_symbols symbols. \t(%s)\n",
+ hide_kernel_symbols ? "yes" : "no");
+ fprintf(stdout,
+ "\t[U] hide user symbols. \t(%s)\n",
+ hide_user_symbols ? "yes" : "no");
fprintf(stdout, "\t[z] toggle sample zeroing. \t(%d)\n", zero ? 1 : 0);
fprintf(stdout, "\t[qQ] quit.\n");
}
@@ -650,6 +667,8 @@ static int key_mapped(int c)
case 'z':
case 'q':
case 'Q':
+ case 'K':
+ case 'U':
return 1;
case 'E':
case 'w':
@@ -727,6 +746,9 @@ static void handle_keypress(int c)
case 'F':
prompt_percent(&sym_pcnt_filter, "Enter details display event filter (percent)");
break;
+ case 'K':
+ hide_kernel_symbols = !hide_kernel_symbols;
+ break;
case 'q':
case 'Q':
printf("exiting.\n");
@@ -746,6 +768,9 @@ static void handle_keypress(int c)
pthread_mutex_unlock(&syme->source_lock);
}
break;
+ case 'U':
+ hide_user_symbols = !hide_user_symbols;
+ break;
case 'w':
display_weighted = ~display_weighted;
break;
@@ -857,11 +882,16 @@ static void event__process_sample(const event_t *self, int counter)
struct map *map;
struct sym_entry *syme;
struct symbol *sym;
+ u8 origin = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
- switch (self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK) {
+ switch (origin) {
case PERF_RECORD_MISC_USER: {
- struct thread *thread = threads__findnew(self->ip.pid);
+ struct thread *thread;
+ if (hide_user_symbols)
+ return;
+
+ thread = threads__findnew(self->ip.pid);
if (thread == NULL)
return;
@@ -885,6 +915,9 @@ static void event__process_sample(const event_t *self, int counter)
return;
/* Fall thru */
case PERF_RECORD_MISC_KERNEL:
+ if (hide_kernel_symbols)
+ return;
+
sym = kernel_maps__find_symbol(ip, &map);
if (sym == NULL)
return;
@@ -897,6 +930,7 @@ static void event__process_sample(const event_t *self, int counter)
if (!syme->skip) {
syme->count[counter]++;
+ syme->origin = origin;
record_precise_ip(syme, counter, ip);
pthread_mutex_lock(&active_symbols_lock);
if (list_empty(&syme->node) || !syme->node.next)
@@ -1178,6 +1212,8 @@ static const struct option options[] = {
OPT_INTEGER('C', "CPU", &profile_cpu,
"CPU to profile on"),
OPT_STRING('k', "vmlinux", &vmlinux_name, "file", "vmlinux pathname"),
+ OPT_BOOLEAN('K', "hide_kernel_symbols", &hide_kernel_symbols,
+ "hide kernel symbols"),
OPT_INTEGER('m', "mmap-pages", &mmap_pages,
"number of mmap data pages"),
OPT_INTEGER('r', "realtime", &realtime_prio,
@@ -1200,6 +1236,8 @@ static const struct option options[] = {
"profile at this frequency"),
OPT_INTEGER('E', "entries", &print_entries,
"display this many functions"),
+ OPT_BOOLEAN('U', "hide_user_symbols", &hide_user_symbols,
+ "hide user symbols"),
OPT_BOOLEAN('v', "verbose", &verbose,
"be more verbose (show counter open errors, etc)"),
OPT_END()
--
1.6.2.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] perf buildid-list: Always show the DSO name
2009-11-16 23:45 [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols Arnaldo Carvalho de Melo
@ 2009-11-16 23:45 ` Arnaldo Carvalho de Melo
2009-11-17 6:32 ` [tip:perf/core] " tip-bot for Arnaldo Carvalho de Melo
2009-11-17 6:32 ` [tip:perf/core] perf top: Introduce --hide_{user,kernel}_symbols tip-bot for Arnaldo Carvalho de Melo
2009-11-17 6:33 ` [PATCH 1/2] " Ingo Molnar
2 siblings, 1 reply; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-11-16 23:45 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Arnaldo Carvalho de Melo, Frederic Weisbecker,
Mike Galbraith, Paul Mackerras, Peter Zijlstra
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Porcelain can ignore it, humans can make more sense of it.
Suggested-by: Frederic Weisbecker <fweisbec@gmail.com>
Suggested-by: Ingo Molnar <mingo@elte.hu>
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Documentation/perf-buildid-list.txt | 2 +-
tools/perf/builtin-buildid-list.c | 2 +-
tools/perf/util/symbol.c | 5 +----
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/tools/perf/Documentation/perf-buildid-list.txt b/tools/perf/Documentation/perf-buildid-list.txt
index abab34e..01b642c 100644
--- a/tools/perf/Documentation/perf-buildid-list.txt
+++ b/tools/perf/Documentation/perf-buildid-list.txt
@@ -26,7 +26,7 @@ OPTIONS
Don't do ownership validation.
-v::
--verbose::
- Be more verbose, showing the name of the DSOs after the buildids.
+ Be more verbose.
SEE ALSO
--------
diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c
index 2e377e1..7dee9d1 100644
--- a/tools/perf/builtin-buildid-list.c
+++ b/tools/perf/builtin-buildid-list.c
@@ -28,7 +28,7 @@ static const struct option options[] = {
"input file name"),
OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),
OPT_BOOLEAN('v', "verbose", &verbose,
- "be more verbose (show counter open errors, etc)"),
+ "be more verbose"),
OPT_END()
};
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 53de9c4..1b77e81 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1442,10 +1442,7 @@ size_t dsos__fprintf_buildid(FILE *fp)
list_for_each_entry(pos, &dsos, node) {
ret += dso__fprintf_buildid(pos, fp);
- if (verbose)
- ret += fprintf(fp, " %s\n", pos->long_name);
- else
- ret += fprintf(fp, "\n");
+ ret += fprintf(fp, " %s\n", pos->long_name);
}
return ret;
}
--
1.6.2.5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [tip:perf/core] perf top: Introduce --hide_{user,kernel}_symbols
2009-11-16 23:45 [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols Arnaldo Carvalho de Melo
2009-11-16 23:45 ` [PATCH 2/2] perf buildid-list: Always show the DSO name Arnaldo Carvalho de Melo
@ 2009-11-17 6:32 ` tip-bot for Arnaldo Carvalho de Melo
2009-11-17 6:33 ` [PATCH 1/2] " Ingo Molnar
2 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Arnaldo Carvalho de Melo @ 2009-11-17 6:32 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, paulus, acme, hpa, mingo, peterz, efault, fweisbec,
tglx, mingo
Commit-ID: 8ffcda17314cfeb698a667567ea63f63362dffbb
Gitweb: http://git.kernel.org/tip/8ffcda17314cfeb698a667567ea63f63362dffbb
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
AuthorDate: Mon, 16 Nov 2009 21:45:24 -0200
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Tue, 17 Nov 2009 07:19:53 +0100
perf top: Introduce --hide_{user,kernel}_symbols
Default continues to be showing all symbols. 'K' and 'U' can be
used to toggle showing kernel and user symbols.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <1258415125-15019-1-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
tools/perf/builtin-top.c | 42 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 3af9520..89b7f68 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -76,6 +76,9 @@ static int delay_secs = 2;
static int zero = 0;
static int dump_symtab = 0;
+static bool hide_kernel_symbols = false;
+static bool hide_user_symbols = false;
+
/*
* Source
*/
@@ -104,6 +107,7 @@ struct sym_entry {
unsigned long snap_count;
double weight;
int skip;
+ u8 origin;
struct map *map;
struct source_line *source;
struct source_line *lines;
@@ -430,6 +434,13 @@ static void print_sym_table(void)
list_for_each_entry_safe_from(syme, n, &active_symbols, node) {
syme->snap_count = syme->count[snap];
if (syme->snap_count != 0) {
+ if ((hide_user_symbols &&
+ syme->origin == PERF_RECORD_MISC_USER) ||
+ (hide_kernel_symbols &&
+ syme->origin == PERF_RECORD_MISC_KERNEL)) {
+ list_remove_active_sym(syme);
+ continue;
+ }
syme->weight = sym_weight(syme);
rb_insert_active_sym(&tmp, syme);
sum_ksamples += syme->snap_count;
@@ -637,6 +648,12 @@ static void print_mapped_keys(void)
if (nr_counters > 1)
fprintf(stdout, "\t[w] toggle display weighted/count[E]r. \t(%d)\n", display_weighted ? 1 : 0);
+ fprintf(stdout,
+ "\t[K] hide kernel_symbols symbols. \t(%s)\n",
+ hide_kernel_symbols ? "yes" : "no");
+ fprintf(stdout,
+ "\t[U] hide user symbols. \t(%s)\n",
+ hide_user_symbols ? "yes" : "no");
fprintf(stdout, "\t[z] toggle sample zeroing. \t(%d)\n", zero ? 1 : 0);
fprintf(stdout, "\t[qQ] quit.\n");
}
@@ -650,6 +667,8 @@ static int key_mapped(int c)
case 'z':
case 'q':
case 'Q':
+ case 'K':
+ case 'U':
return 1;
case 'E':
case 'w':
@@ -727,6 +746,9 @@ static void handle_keypress(int c)
case 'F':
prompt_percent(&sym_pcnt_filter, "Enter details display event filter (percent)");
break;
+ case 'K':
+ hide_kernel_symbols = !hide_kernel_symbols;
+ break;
case 'q':
case 'Q':
printf("exiting.\n");
@@ -746,6 +768,9 @@ static void handle_keypress(int c)
pthread_mutex_unlock(&syme->source_lock);
}
break;
+ case 'U':
+ hide_user_symbols = !hide_user_symbols;
+ break;
case 'w':
display_weighted = ~display_weighted;
break;
@@ -857,11 +882,16 @@ static void event__process_sample(const event_t *self, int counter)
struct map *map;
struct sym_entry *syme;
struct symbol *sym;
+ u8 origin = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
- switch (self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK) {
+ switch (origin) {
case PERF_RECORD_MISC_USER: {
- struct thread *thread = threads__findnew(self->ip.pid);
+ struct thread *thread;
+ if (hide_user_symbols)
+ return;
+
+ thread = threads__findnew(self->ip.pid);
if (thread == NULL)
return;
@@ -885,6 +915,9 @@ static void event__process_sample(const event_t *self, int counter)
return;
/* Fall thru */
case PERF_RECORD_MISC_KERNEL:
+ if (hide_kernel_symbols)
+ return;
+
sym = kernel_maps__find_symbol(ip, &map);
if (sym == NULL)
return;
@@ -897,6 +930,7 @@ static void event__process_sample(const event_t *self, int counter)
if (!syme->skip) {
syme->count[counter]++;
+ syme->origin = origin;
record_precise_ip(syme, counter, ip);
pthread_mutex_lock(&active_symbols_lock);
if (list_empty(&syme->node) || !syme->node.next)
@@ -1178,6 +1212,8 @@ static const struct option options[] = {
OPT_INTEGER('C', "CPU", &profile_cpu,
"CPU to profile on"),
OPT_STRING('k', "vmlinux", &vmlinux_name, "file", "vmlinux pathname"),
+ OPT_BOOLEAN('K', "hide_kernel_symbols", &hide_kernel_symbols,
+ "hide kernel symbols"),
OPT_INTEGER('m', "mmap-pages", &mmap_pages,
"number of mmap data pages"),
OPT_INTEGER('r', "realtime", &realtime_prio,
@@ -1200,6 +1236,8 @@ static const struct option options[] = {
"profile at this frequency"),
OPT_INTEGER('E', "entries", &print_entries,
"display this many functions"),
+ OPT_BOOLEAN('U', "hide_user_symbols", &hide_user_symbols,
+ "hide user symbols"),
OPT_BOOLEAN('v', "verbose", &verbose,
"be more verbose (show counter open errors, etc)"),
OPT_END()
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [tip:perf/core] perf buildid-list: Always show the DSO name
2009-11-16 23:45 ` [PATCH 2/2] perf buildid-list: Always show the DSO name Arnaldo Carvalho de Melo
@ 2009-11-17 6:32 ` tip-bot for Arnaldo Carvalho de Melo
0 siblings, 0 replies; 9+ messages in thread
From: tip-bot for Arnaldo Carvalho de Melo @ 2009-11-17 6:32 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, paulus, acme, hpa, mingo, efault, peterz, fweisbec,
tglx, mingo
Commit-ID: 1124ba73be6a758965340bd997593b2996649d60
Gitweb: http://git.kernel.org/tip/1124ba73be6a758965340bd997593b2996649d60
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
AuthorDate: Mon, 16 Nov 2009 21:45:25 -0200
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Tue, 17 Nov 2009 07:19:54 +0100
perf buildid-list: Always show the DSO name
Porcelain can ignore it, humans can make more sense of it.
Suggested-by: Frederic Weisbecker <fweisbec@gmail.com>
Suggested-by: Ingo Molnar <mingo@elte.hu>
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <1258415125-15019-2-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
tools/perf/Documentation/perf-buildid-list.txt | 2 +-
tools/perf/builtin-buildid-list.c | 2 +-
tools/perf/util/symbol.c | 5 +----
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/tools/perf/Documentation/perf-buildid-list.txt b/tools/perf/Documentation/perf-buildid-list.txt
index abab34e..01b642c 100644
--- a/tools/perf/Documentation/perf-buildid-list.txt
+++ b/tools/perf/Documentation/perf-buildid-list.txt
@@ -26,7 +26,7 @@ OPTIONS
Don't do ownership validation.
-v::
--verbose::
- Be more verbose, showing the name of the DSOs after the buildids.
+ Be more verbose.
SEE ALSO
--------
diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c
index 2e377e1..7dee9d1 100644
--- a/tools/perf/builtin-buildid-list.c
+++ b/tools/perf/builtin-buildid-list.c
@@ -28,7 +28,7 @@ static const struct option options[] = {
"input file name"),
OPT_BOOLEAN('f', "force", &force, "don't complain, do it"),
OPT_BOOLEAN('v', "verbose", &verbose,
- "be more verbose (show counter open errors, etc)"),
+ "be more verbose"),
OPT_END()
};
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 53de9c4..1b77e81 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1442,10 +1442,7 @@ size_t dsos__fprintf_buildid(FILE *fp)
list_for_each_entry(pos, &dsos, node) {
ret += dso__fprintf_buildid(pos, fp);
- if (verbose)
- ret += fprintf(fp, " %s\n", pos->long_name);
- else
- ret += fprintf(fp, "\n");
+ ret += fprintf(fp, " %s\n", pos->long_name);
}
return ret;
}
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols
2009-11-16 23:45 [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols Arnaldo Carvalho de Melo
2009-11-16 23:45 ` [PATCH 2/2] perf buildid-list: Always show the DSO name Arnaldo Carvalho de Melo
2009-11-17 6:32 ` [tip:perf/core] perf top: Introduce --hide_{user,kernel}_symbols tip-bot for Arnaldo Carvalho de Melo
@ 2009-11-17 6:33 ` Ingo Molnar
2009-11-17 6:44 ` Mike Galbraith
2009-11-17 12:57 ` Arnaldo Carvalho de Melo
2 siblings, 2 replies; 9+ messages in thread
From: Ingo Molnar @ 2009-11-17 6:33 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Arnaldo Carvalho de Melo, Frederic Weisbecker,
Mike Galbraith, Paul Mackerras, Peter Zijlstra
btw., the user symbol printouts of perf top cause some display problems
- such as below. The DSO printout is way too long to fit into 92 cols,
wrapping around in my terminal and making much of the output unreadable.
Could we cut it by default please?
Also, it would be nice to only print the basename() portion of the DSO.
Both the /lib64 and the /opt/crossgcc/cross/libexec/ portion is
repetitive and not really important in understanding perf top output.
There should perhaps be a 'dso-abs' symbol column that prints out the
full pathname?
Ingo
------------->
$ echo $COLUMNS $LINES
92 28
$ perf top
------------------------------------------------------------------------------
PerfTop: 13676 irqs/sec kernel:14.3% [1000Hz cycles], (all, 16 CPUs)
------------------------------------------------------------------------------
samples pcnt function DSO
_______ _____ ________________________________ ________________
2315.00 4.6% ht_lookup_with_hash /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
2202.00 4.4% _cpp_lex_direct /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
1490.00 3.0% _int_malloc /lib64/libc-2.10.90.so
1172.00 2.3% _cpp_clean_line /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
887.00 1.8% lex_identifier /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
845.00 1.7% clear_page_c [kernel]
836.00 1.7% cpp_get_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
795.00 1.6% ggc_alloc_stat /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
675.00 1.3% cpp_output_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
675.00 1.3% __GI_memset /lib64/libc-2.10.90.so
622.00 1.2% _int_free /lib64/libc-2.10.90.so
609.00 1.2% page_fault [kernel]
568.00 1.1% gimplify_expr /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
567.00 1.1% _cpp_lex_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
440.00 0.9% yylex /home/mingo/tip/scripts/genksyms/genksyms
423.00 0.8% __GI___libc_malloc /lib64/libc-2.10.90.so
417.00 0.8% walk_tree_1 /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
416.00 0.8% __GI_memcpy /lib64/libc-2.10.90.so
377.00 0.7% enter_macro_context /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols
2009-11-17 6:33 ` [PATCH 1/2] " Ingo Molnar
@ 2009-11-17 6:44 ` Mike Galbraith
2009-11-17 6:56 ` Ingo Molnar
2009-11-17 12:57 ` Arnaldo Carvalho de Melo
1 sibling, 1 reply; 9+ messages in thread
From: Mike Galbraith @ 2009-11-17 6:44 UTC (permalink / raw)
To: Ingo Molnar
Cc: Arnaldo Carvalho de Melo, linux-kernel, Arnaldo Carvalho de Melo,
Frederic Weisbecker, Paul Mackerras, Peter Zijlstra
On Tue, 2009-11-17 at 07:33 +0100, Ingo Molnar wrote:
> btw., the user symbol printouts of perf top cause some display problems
> - such as below. The DSO printout is way too long to fit into 92 cols,
> wrapping around in my terminal and making much of the output unreadable.
>
> Could we cut it by default please?
An option to turn off userland would be nice too. If you're interested
in the kernel, a display like below is.. suboptimal. (--dso?)
> Also, it would be nice to only print the basename() portion of the DSO.
> Both the /lib64 and the /opt/crossgcc/cross/libexec/ portion is
> repetitive and not really important in understanding perf top output.
> There should perhaps be a 'dso-abs' symbol column that prints out the
> full pathname?
>
> Ingo
>
> ------------->
>
> $ echo $COLUMNS $LINES
> 92 28
>
> $ perf top
>
> ------------------------------------------------------------------------------
> PerfTop: 13676 irqs/sec kernel:14.3% [1000Hz cycles], (all, 16 CPUs)
> ------------------------------------------------------------------------------
>
> samples pcnt function DSO
> _______ _____ ________________________________ ________________
>
> 2315.00 4.6% ht_lookup_with_hash /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 2202.00 4.4% _cpp_lex_direct /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 1490.00 3.0% _int_malloc /lib64/libc-2.10.90.so
> 1172.00 2.3% _cpp_clean_line /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 887.00 1.8% lex_identifier /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 845.00 1.7% clear_page_c [kernel]
> 836.00 1.7% cpp_get_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 795.00 1.6% ggc_alloc_stat /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 675.00 1.3% cpp_output_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 675.00 1.3% __GI_memset /lib64/libc-2.10.90.so
> 622.00 1.2% _int_free /lib64/libc-2.10.90.so
> 609.00 1.2% page_fault [kernel]
> 568.00 1.1% gimplify_expr /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 567.00 1.1% _cpp_lex_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 440.00 0.9% yylex /home/mingo/tip/scripts/genksyms/genksyms
> 423.00 0.8% __GI___libc_malloc /lib64/libc-2.10.90.so
> 417.00 0.8% walk_tree_1 /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 416.00 0.8% __GI_memcpy /lib64/libc-2.10.90.so
> 377.00 0.7% enter_macro_context /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols
2009-11-17 6:44 ` Mike Galbraith
@ 2009-11-17 6:56 ` Ingo Molnar
2009-11-17 7:26 ` Mike Galbraith
0 siblings, 1 reply; 9+ messages in thread
From: Ingo Molnar @ 2009-11-17 6:56 UTC (permalink / raw)
To: Mike Galbraith
Cc: Arnaldo Carvalho de Melo, linux-kernel, Arnaldo Carvalho de Melo,
Frederic Weisbecker, Paul Mackerras, Peter Zijlstra
* Mike Galbraith <efault@gmx.de> wrote:
> On Tue, 2009-11-17 at 07:33 +0100, Ingo Molnar wrote:
> > btw., the user symbol printouts of perf top cause some display problems
> > - such as below. The DSO printout is way too long to fit into 92 cols,
> > wrapping around in my terminal and making much of the output unreadable.
> >
> > Could we cut it by default please?
>
> An option to turn off userland would be nice too. If you're
> interested in the kernel, a display like below is.. suboptimal.
> (--dso?)
See the subject line :-)
Ingo
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols
2009-11-17 6:56 ` Ingo Molnar
@ 2009-11-17 7:26 ` Mike Galbraith
0 siblings, 0 replies; 9+ messages in thread
From: Mike Galbraith @ 2009-11-17 7:26 UTC (permalink / raw)
To: Ingo Molnar
Cc: Arnaldo Carvalho de Melo, linux-kernel, Arnaldo Carvalho de Melo,
Frederic Weisbecker, Paul Mackerras, Peter Zijlstra
On Tue, 2009-11-17 at 07:56 +0100, Ingo Molnar wrote:
> * Mike Galbraith <efault@gmx.de> wrote:
>
> > On Tue, 2009-11-17 at 07:33 +0100, Ingo Molnar wrote:
> > > btw., the user symbol printouts of perf top cause some display problems
> > > - such as below. The DSO printout is way too long to fit into 92 cols,
> > > wrapping around in my terminal and making much of the output unreadable.
> > >
> > > Could we cut it by default please?
> >
> > An option to turn off userland would be nice too. If you're
> > interested in the kernel, a display like below is.. suboptimal.
> > (--dso?)
>
> See the subject line :-)
Heh. I read the text as cut the width only. $subject works for me :)
-Mike
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols
2009-11-17 6:33 ` [PATCH 1/2] " Ingo Molnar
2009-11-17 6:44 ` Mike Galbraith
@ 2009-11-17 12:57 ` Arnaldo Carvalho de Melo
1 sibling, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-11-17 12:57 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Frederic Weisbecker, Mike Galbraith, Paul Mackerras,
Peter Zijlstra
Em Tue, Nov 17, 2009 at 07:33:32AM +0100, Ingo Molnar escreveu:
>
> btw., the user symbol printouts of perf top cause some display problems
> - such as below. The DSO printout is way too long to fit into 92 cols,
> wrapping around in my terminal and making much of the output unreadable.
>
> Could we cut it by default please?
Was in my TODO list, just forgot to get back to it, will use that
TIOCWINCH ioctl to get the current width and react to it via the signal
too, etc.
> Also, it would be nice to only print the basename() portion of the DSO.
> Both the /lib64 and the /opt/crossgcc/cross/libexec/ portion is
> repetitive and not really important in understanding perf top output.
> There should perhaps be a 'dso-abs' symbol column that prints out the
> full pathname?
>
> Ingo
>
> ------------->
>
> $ echo $COLUMNS $LINES
> 92 28
>
> $ perf top
>
> ------------------------------------------------------------------------------
> PerfTop: 13676 irqs/sec kernel:14.3% [1000Hz cycles], (all, 16 CPUs)
> ------------------------------------------------------------------------------
>
> samples pcnt function DSO
> _______ _____ ________________________________ ________________
>
> 2315.00 4.6% ht_lookup_with_hash /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 2202.00 4.4% _cpp_lex_direct /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 1490.00 3.0% _int_malloc /lib64/libc-2.10.90.so
> 1172.00 2.3% _cpp_clean_line /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 887.00 1.8% lex_identifier /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 845.00 1.7% clear_page_c [kernel]
> 836.00 1.7% cpp_get_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 795.00 1.6% ggc_alloc_stat /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 675.00 1.3% cpp_output_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 675.00 1.3% __GI_memset /lib64/libc-2.10.90.so
> 622.00 1.2% _int_free /lib64/libc-2.10.90.so
> 609.00 1.2% page_fault [kernel]
> 568.00 1.1% gimplify_expr /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 567.00 1.1% _cpp_lex_token /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 440.00 0.9% yylex /home/mingo/tip/scripts/genksyms/genksyms
> 423.00 0.8% __GI___libc_malloc /lib64/libc-2.10.90.so
> 417.00 0.8% walk_tree_1 /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
> 416.00 0.8% __GI_memcpy /lib64/libc-2.10.90.so
> 377.00 0.7% enter_macro_context /opt/crossgcc/cross/libexec/gcc/x86_64-linux/4.4.2/cc1
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-11-17 12:57 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-16 23:45 [PATCH 1/2] perf top: Introduce --hide_{user,kernel}_symbols Arnaldo Carvalho de Melo
2009-11-16 23:45 ` [PATCH 2/2] perf buildid-list: Always show the DSO name Arnaldo Carvalho de Melo
2009-11-17 6:32 ` [tip:perf/core] " tip-bot for Arnaldo Carvalho de Melo
2009-11-17 6:32 ` [tip:perf/core] perf top: Introduce --hide_{user,kernel}_symbols tip-bot for Arnaldo Carvalho de Melo
2009-11-17 6:33 ` [PATCH 1/2] " Ingo Molnar
2009-11-17 6:44 ` Mike Galbraith
2009-11-17 6:56 ` Ingo Molnar
2009-11-17 7:26 ` Mike Galbraith
2009-11-17 12:57 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox