linux/tools/perf/ui
Arnaldo Carvalho de Melo a3f895be1f perf annotate browser: Initial loop detection
Simple algorithm, just look for the next backward jump that points to
before the cursor.

Then draw an arrow connecting the jump to its target.

Do this as you move the cursor, entering/exiting possible loops.

Ex (graph chars replaced to avoid mail encoding woes):

avc_has_perm_flags
    0.00 |         nopl   0x0(%rax)
    5.36 |+-> 68:  mov    (%rax),%rax
    5.15 ||        test   %rax,%rax
    0.00 ||      v je     130
    2.96 ||   74:  cmp    -0x20(%rax),%ebx
   47.38 ||        lea    -0x20(%rax),%rcx
    0.28 ||      ^ jne    68
    3.16 ||        cmp    -0x18(%rax),%dx
    0.00 |+------^ jne    68
    4.92 |         cmp    0x4(%rcx),%r13d
    0.00 |       v jne    68
    1.15 |         test   %rcx,%rcx
    0.00 |       v je     130

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-5gairf6or7dazlx3ocxwvftm@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-04-24 14:24:28 -03:00
..
browsers perf annotate browser: Initial loop detection 2012-04-24 14:24:28 -03:00
gtk perf tools: Move GTK+ bits to tools/perf/ui/gtk directory 2012-04-11 17:18:31 -03:00
browser.c perf annotate browser: Initial loop detection 2012-04-24 14:24:28 -03:00
browser.h perf annotate browser: Initial loop detection 2012-04-24 14:24:28 -03:00
helpline.c perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
helpline.h perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
keysyms.h perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
libslang.h perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
progress.c perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
progress.h perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
setup.c perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
ui.h perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
util.c perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00
util.h perf tools: Move UI bits to tools/perf/ui directory 2012-04-11 17:16:40 -03:00