* [PATCH 1/7] perf evlist: Restore original errno after open failed
2012-03-05 15:55 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
@ 2012-03-05 15:55 ` Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 2/7] perf tools: Add descriptions of missing Makefile arguments Arnaldo Carvalho de Melo
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-03-05 15:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung.kim@lge.com>
If perf_evsel__open() failed, the errno was set and returned properly.
However since the perf_evlist__open() called close() on fd's for all of
evsel x cpu x thread after the failure, the errno was overridden by
other code (EBADF). So the caller of the function ended up seeing
different error message and getting confused.
Fit it by restoring original return value. Because one of caller of the
function is in the python extension, and it uses system errno
internally, it'd be better restoring the original value rather than
using the return value of the function directly, IMHO (i.e. I'm not a
python expert :)
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1329966816-23175-1-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/evlist.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index f8da9fa..159263d 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -765,6 +765,7 @@ out_err:
list_for_each_entry_reverse(evsel, &evlist->entries, node)
perf_evsel__close(evsel, ncpus, nthreads);
+ errno = -err;
return err;
}
--
1.7.9.2.358.g22243
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 2/7] perf tools: Add descriptions of missing Makefile arguments
2012-03-05 15:55 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 1/7] perf evlist: Restore original errno after open failed Arnaldo Carvalho de Melo
@ 2012-03-05 15:55 ` Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 3/7] perf annotate: Print asm code as blue when source code is displayed Arnaldo Carvalho de Melo
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-03-05 15:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Paul Mackerras, Peter Zijlstra,
Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung.kim@lge.com>
There are some variable arguments can be specified on make invocation,
but some of them are missing descriptions so that user cannot be
informed easily. Fix it.
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1329980894-4289-1-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Makefile | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index e011b50..fa04340 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -15,6 +15,16 @@ endif
# Define V to have a more verbose compile.
#
+# Define O to save output files in a separate directory.
+#
+# Define ARCH as name of target architecture if you want cross-builds.
+#
+# Define CROSS_COMPILE as prefix name of compiler if you want cross-builds.
+#
+# Define NO_LIBPERL to disable perl script extension.
+#
+# Define NO_LIBPYTHON to disable python script extension.
+#
# Define PYTHON to point to the python binary if the default
# `python' is not correct; for example: PYTHON=python2
#
@@ -32,6 +42,10 @@ endif
# Define NO_DWARF if you do not want debug-info analysis feature at all.
#
# Define WERROR=0 to disable treating any warnings as errors.
+#
+# Define NO_NEWT if you do not want TUI support.
+#
+# Define NO_DEMANGLE if you do not want C++ symbol demangling.
$(OUTPUT)PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE
@$(SHELL_PATH) util/PERF-VERSION-GEN $(OUTPUT)
--
1.7.9.2.358.g22243
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 3/7] perf annotate: Print asm code as blue when source code is displayed
2012-03-05 15:55 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 1/7] perf evlist: Restore original errno after open failed Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 2/7] perf tools: Add descriptions of missing Makefile arguments Arnaldo Carvalho de Melo
@ 2012-03-05 15:55 ` Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 4/7] perf annotate: Handle lower case key code in annotate_browser__run() Arnaldo Carvalho de Melo
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-03-05 15:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung.kim@lge.com>
Print unselected asm code lines as blue. This is what we do now for
--stdio.
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1329986784-4916-2-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/ui/browsers/annotate.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/ui/browsers/annotate.c b/tools/perf/util/ui/browsers/annotate.c
index 295a9c9..76caae9 100644
--- a/tools/perf/util/ui/browsers/annotate.c
+++ b/tools/perf/util/ui/browsers/annotate.c
@@ -69,14 +69,17 @@ static void annotate_browser__write(struct ui_browser *self, void *entry, int ro
if (!self->navkeypressed)
width += 1;
+ if (!ab->hide_src_code && ol->offset != -1)
+ if (!current_entry || (self->use_navkeypressed &&
+ !self->navkeypressed))
+ ui_browser__set_color(self, HE_COLORSET_CODE);
+
if (!*ol->line)
slsmg_write_nstring(" ", width - 18);
else
slsmg_write_nstring(ol->line, width - 18);
- if (!current_entry)
- ui_browser__set_color(self, HE_COLORSET_CODE);
- else
+ if (current_entry)
ab->selection = ol;
}
--
1.7.9.2.358.g22243
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 4/7] perf annotate: Handle lower case key code in annotate_browser__run()
2012-03-05 15:55 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (2 preceding siblings ...)
2012-03-05 15:55 ` [PATCH 3/7] perf annotate: Print asm code as blue when source code is displayed Arnaldo Carvalho de Melo
@ 2012-03-05 15:55 ` Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 5/7] perf annotate: Restore title when came back to original symbol Arnaldo Carvalho de Melo
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-03-05 15:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung.kim@lge.com>
Accepting upper case character only is unconvenient since it requires
SHIFT key too. Why not change to it accept a simple key stroke?
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1329986784-4916-3-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/ui/browsers/annotate.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/perf/util/ui/browsers/annotate.c b/tools/perf/util/ui/browsers/annotate.c
index 76caae9..374d3bc5 100644
--- a/tools/perf/util/ui/browsers/annotate.c
+++ b/tools/perf/util/ui/browsers/annotate.c
@@ -287,9 +287,11 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx,
nd = self->curr_hot;
break;
case 'H':
+ case 'h':
nd = self->curr_hot;
break;
case 'S':
+ case 's':
if (annotate_browser__toggle_source(self))
ui_helpline__puts(help);
continue;
--
1.7.9.2.358.g22243
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 5/7] perf annotate: Restore title when came back to original symbol
2012-03-05 15:55 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (3 preceding siblings ...)
2012-03-05 15:55 ` [PATCH 4/7] perf annotate: Handle lower case key code in annotate_browser__run() Arnaldo Carvalho de Melo
@ 2012-03-05 15:55 ` Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 6/7] perf annotate: Fix help string on tui Arnaldo Carvalho de Melo
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-03-05 15:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung.kim@lge.com>
On tui annotation, the title was set to name of the target symbol if
user selects the target. However it remained after returning to original
symbol from the target. Fix it.
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1329986784-4916-4-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/ui/browsers/annotate.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/perf/util/ui/browsers/annotate.c b/tools/perf/util/ui/browsers/annotate.c
index 374d3bc5..e733577 100644
--- a/tools/perf/util/ui/browsers/annotate.c
+++ b/tools/perf/util/ui/browsers/annotate.c
@@ -343,6 +343,7 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx,
pthread_mutex_unlock(¬es->lock);
symbol__tui_annotate(target, ms->map, evidx,
timer, arg, delay_secs);
+ ui_browser__show_title(&self->b, sym->name);
}
continue;
case K_LEFT:
--
1.7.9.2.358.g22243
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 6/7] perf annotate: Fix help string on tui
2012-03-05 15:55 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (4 preceding siblings ...)
2012-03-05 15:55 ` [PATCH 5/7] perf annotate: Restore title when came back to original symbol Arnaldo Carvalho de Melo
@ 2012-03-05 15:55 ` Arnaldo Carvalho de Melo
2012-03-05 15:55 ` [PATCH 7/7] perf annotate: Add missing newline on error message Arnaldo Carvalho de Melo
2012-03-05 16:02 ` [GIT PULL 0/7] perf/core improvements and fixes Ingo Molnar
7 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-03-05 15:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung.kim@lge.com>
Separate multiple binding using /, capitalize descriptions, add missing
key binding.
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1329986784-4916-5-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/ui/browsers/annotate.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/ui/browsers/annotate.c b/tools/perf/util/ui/browsers/annotate.c
index e733577..57a4c6e 100644
--- a/tools/perf/util/ui/browsers/annotate.c
+++ b/tools/perf/util/ui/browsers/annotate.c
@@ -233,9 +233,9 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx,
struct rb_node *nd = NULL;
struct map_symbol *ms = self->b.priv;
struct symbol *sym = ms->sym;
- const char *help = "<-, ESC: exit, TAB/shift+TAB: cycle hottest lines, "
- "H: Hottest, -> Line action, S -> Toggle source "
- "code view";
+ const char *help = "<-/ESC: Exit, TAB/shift+TAB: Cycle hot lines, "
+ "H: Go to hottest line, ->/ENTER: Line action, "
+ "S: Toggle source code view";
int key;
if (ui_browser__show(&self->b, sym->name, help) < 0)
--
1.7.9.2.358.g22243
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 7/7] perf annotate: Add missing newline on error message
2012-03-05 15:55 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (5 preceding siblings ...)
2012-03-05 15:55 ` [PATCH 6/7] perf annotate: Fix help string on tui Arnaldo Carvalho de Melo
@ 2012-03-05 15:55 ` Arnaldo Carvalho de Melo
2012-03-05 16:02 ` [GIT PULL 0/7] perf/core improvements and fixes Ingo Molnar
7 siblings, 0 replies; 9+ messages in thread
From: Arnaldo Carvalho de Melo @ 2012-03-05 15:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Namhyung Kim, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
From: Namhyung Kim <namhyung.kim@lge.com>
If perf.data couldn't find vmlinux image for the given build-id,
it would print error message. However it lacked a newline at the
end, so the output looked like below:
$ perf annotate --stdio
No vmlinux file with build id 63b554b2e90f14a4bced200008865e757d3e8b36
was found in the path.
Please use:
perf buildid-cache -av vmlinux
or:
--vmlinux vmlinux Percent | Source code & Disassembly of a.out
------------------------------------------------
:
:
:
: Disassembly of section .text:
:
: 00000000004004f4 <foo>:
0.00 : 4004f4: push %rbp
0.00 : 4004f5: mov %rsp,%rbp
0.00 : 4004f8: movl $0x0,-0x4(%rbp)
0.00 : 4004ff: jmp 400517 <foo+0x23>
14.70 : 400501: mov 0x200b28(%rip),%rax # 601030 <count>
0.02 : 400508: add $0x1,%rax
0.01 : 40050c: mov %rax,0x200b1d(%rip) # 601030 <count>
0.01 : 400513: addl $0x1,-0x4(%rbp)
13.92 : 400517: cmpl $0x98967f,-0x4(%rbp)
71.33 : 40051e: jle 400501 <foo+0xd>
0.00 : 400520: leaveq
0.00 : 400521: retq
Fix it by adding a newline at the end of the message. It doesn't affect
the tui output AFAICS. New output will look like this:
...
or:
--vmlinux vmlinux
Percent | Source code & Disassembly of a.out
------------------------------------------------
:
:
:
: Disassembly of section .text:
...
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1329986784-4916-6-git-send-email-namhyung.kim@lge.com
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/annotate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 011ed26..e5a462f 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -315,7 +315,7 @@ fallback:
"Please use:\n\n"
" perf buildid-cache -av vmlinux\n\n"
"or:\n\n"
- " --vmlinux vmlinux",
+ " --vmlinux vmlinux\n",
sym->name, build_id_msg ?: "");
goto out_free_filename;
}
--
1.7.9.2.358.g22243
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [GIT PULL 0/7] perf/core improvements and fixes
2012-03-05 15:55 [GIT PULL 0/7] perf/core improvements and fixes Arnaldo Carvalho de Melo
` (6 preceding siblings ...)
2012-03-05 15:55 ` [PATCH 7/7] perf annotate: Add missing newline on error message Arnaldo Carvalho de Melo
@ 2012-03-05 16:02 ` Ingo Molnar
7 siblings, 0 replies; 9+ messages in thread
From: Ingo Molnar @ 2012-03-05 16:02 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: linux-kernel, Namhyung Kim, Namhyung Kim, Paul Mackerras,
Peter Zijlstra, Arnaldo Carvalho de Melo
* Arnaldo Carvalho de Melo <acme@infradead.org> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 737f24bda723fdf89ecaacb99fa2bf5683c32799:
>
> Merge branch 'perf/urgent' into perf/core (2012-03-05 09:20:08 +0100)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-core-for-mingo
>
> for you to fetch changes up to ff2a6617c2acd6a8dc468c90ab8708a6ad112bb0:
>
> perf annotate: Add missing newline on error message (2012-03-05 10:15:50 -0300)
>
> ----------------------------------------------------------------
> Improvements for 'perf annotate' from Namhyung Kim.
>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
>
> ----------------------------------------------------------------
> Namhyung Kim (7):
> perf evlist: Restore original errno after open failed
> perf tools: Add descriptions of missing Makefile arguments
> perf annotate: Print asm code as blue when source code is displayed
> perf annotate: Handle lower case key code in annotate_browser__run()
> perf annotate: Restore title when came back to original symbol
> perf annotate: Fix help string on tui
> perf annotate: Add missing newline on error message
>
> tools/perf/Makefile | 14 ++++++++++++++
> tools/perf/util/annotate.c | 2 +-
> tools/perf/util/evlist.c | 1 +
> tools/perf/util/ui/browsers/annotate.c | 18 ++++++++++++------
> 4 files changed, 28 insertions(+), 7 deletions(-)
Pulled, thanks a lot Arnaldo!
Ingo
^ permalink raw reply [flat|nested] 9+ messages in thread