17 Jan, 2015

1 commit

  • Currently the symbol structure is allocated with symbol_conf.priv_size
    to carry sideband information like annotation, map browser on TUI and
    sort-by-name tree node. So retrieving these information from symbol
    needs to care about the details of such placement.

    However the annotation code just assumes that the symbol is placed after
    the struct annotation. But actually there's other info between them.
    So accessing those struct will lead to an undefined behavior (usually a
    crash) after they write their info to the same location.

    To reproduce the problem, please follow the steps below:

    1. run perf report (TUI of course) with -v option
    2. open map browser (by pressing right arrow key for any entry)
    3. search any function (by pressing '/' key and input whatever..)
    4. return to the hist browser (by pressing 'q' or left arrow key)
    5. open annotation window for the same entry (by pressing 'a' key)

    Signed-off-by: Namhyung Kim
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Masami Hiramatsu
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1421234288-22758-1-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

19 Nov, 2014

1 commit

  • With srcline key/sort'ing it's useful to have line numbers in the
    annotate window. This patch implements this.

    Use objdump -l to request the line numbers and save them in the line
    structure. Then the browser displays them for source lines.

    The line numbers are not displayed by default, but can be toggled on
    with 'k'

    There is one unfortunate problem with this setup. For lines not
    containing source and which are outside functions objdump -l reports
    line numbers off by a few: it always reports the first line number in
    the next function even for lines that are outside the function.

    I haven't found a nice way to detect/correct this. Probably objdump has
    to be fixed.

    See https://sourceware.org/bugzilla/show_bug.cgi?id=16433

    The line numbers are still useful even with these problems, as most are
    correct and the ones which are not are nearby.

    v2: Fix help text. Handle (discriminator...) output in objdump.
    Left align the line numbers.

    Signed-off-by: Andi Kleen
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Link: http://lkml.kernel.org/r/1415844328-4884-9-git-send-email-andi@firstfloor.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Andi Kleen
     

02 May, 2014

1 commit

  • Combine all definitions into a common tools/include/linux/types.h and
    kill the wild growth elsewhere. Move DECLARE_BITMAP to its proper
    bitmap.h header.

    Signed-off-by: Borislav Petkov
    Acked-by: Rusty Russell
    Link: http://lkml.kernel.org/n/tip-azczs7qcv6h9xek9od10hiv2@git.kernel.org
    Signed-off-by: Jiri Olsa

    Borislav Petkov
     

24 Feb, 2014

1 commit

  • The TUI of perf report and top support annotation, but stdio and GTK
    don't. So it should be checked before calling hist_entry__inc_addr_
    samples() to avoid wasting resources that will never be used.

    perf annotate need it regardless of UI and sort keys, so the check
    of whether to allocate resources should be on the tools that have
    annotate as an option in the TUI, 'report' and 'top', not on the
    function called by all of them.

    It caused perf annotate on ppc64 to produce zero output, since the
    buckets were not being allocated.

    Reported-by: Anton Blanchard
    Signed-off-by: Namhyung Kim
    Cc: Anton Blanchard
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1392859976-32760-1-git-send-email-namhyung@kernel.org
    [ Renamed (report,top)__needs_annotate() to ui__has_annotation() ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

19 Dec, 2013

3 commits

  • Since it is now accessed just thru addr_map_symbol and hist_entry
    wrappers.

    Acked-by: Namhyung Kim
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-gjoam7wcfrb03sp753gk1nfk@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Those are just wrappers to annotation methods, so move them to
    annotate.c

    Acked-by: Namhyung Kim
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-336h7z0bi2k51cbfi6mkpo5k@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Since there are three calls that could receive just the struct
    addr_map_symbol pointer and call the symbol method.

    Acked-by: Namhyung Kim
    Cc: Adrian Hunter
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-d728gz1orgkaknac9ppnzd9e@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

10 Oct, 2013

1 commit

  • Separate out GTK codes to a shared object called libperf-gtk.so. This
    time only GTK codes are built with -fPIC and libperf remains as is. Now
    run GTK hist and annotation browser using libdl.

    Signed-off-by: Namhyung Kim
    Reviewed-by: Pekka Enberg
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1379053663-13706-1-git-send-email-namhyung@kernel.org
    [ Fix it up wrt Ingo's tools/perf build speedups ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

09 Oct, 2013

1 commit

  • Standardize all the feature flags based on the HAVE_{FEATURE}_SUPPORT naming convention:

    HAVE_ARCH_X86_64_SUPPORT
    HAVE_BACKTRACE_SUPPORT
    HAVE_CPLUS_DEMANGLE_SUPPORT
    HAVE_DWARF_SUPPORT
    HAVE_ELF_GETPHDRNUM_SUPPORT
    HAVE_GTK2_SUPPORT
    HAVE_GTK_INFO_BAR_SUPPORT
    HAVE_LIBAUDIT_SUPPORT
    HAVE_LIBELF_MMAP_SUPPORT
    HAVE_LIBELF_SUPPORT
    HAVE_LIBNUMA_SUPPORT
    HAVE_LIBUNWIND_SUPPORT
    HAVE_ON_EXIT_SUPPORT
    HAVE_PERF_REGS_SUPPORT
    HAVE_SLANG_SUPPORT
    HAVE_STRLCPY_SUPPORT

    Cc: Arnaldo Carvalho de Melo
    Cc: Peter Zijlstra
    Cc: Namhyung Kim
    Cc: David Ahern
    Cc: Jiri Olsa
    Link: http://lkml.kernel.org/n/tip-u3zvqejddfZhtrbYbfhi3spa@git.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

01 Apr, 2013

1 commit

  • Now that the map browser shares the input routine with the hists
    browser, there is no need for using any libnewt routine, so remove all
    traces except for honouring NO_NEWT=1 on the makefile command line as an
    indication that TUI support is not needed, in fact it just sets
    NO_SLANG=1.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-wae5o7xca9m52bj1re28jc5j@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

16 Mar, 2013

4 commits

  • The disasm_line__calc_percent() which was used by annotate browser code
    almost duplicates disasm__calc_percent. Let's get rid of the code
    duplication.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1362462812-30885-11-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Dynamically allocate source_line_percent according to a number of group
    members and save nr_pcnt to the struct source_line. This way we can
    handle multiple events in a general manner.

    However since the size of struct source_line is not fixed anymore,
    iterating whole source_line should care about its size.

    $ perf annotate --group --stdio --print-line

    Sorted summary for file /lib/ld-2.11.1.so
    ----------------------------------------------
    33.33 0.00 /build/buildd/eglibc-2.11.1/elf/rtld.c:381
    33.33 0.00 /build/buildd/eglibc-2.11.1/elf/dynamic-link.h:128
    33.33 0.00 /build/buildd/eglibc-2.11.1/elf/do-rel.h:105
    0.00 75.00 /build/buildd/eglibc-2.11.1/elf/dynamic-link.h:137
    0.00 25.00 /build/buildd/eglibc-2.11.1/elf/dynamic-link.h:187
    ...

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1362462812-30885-9-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • The source_line_percent struct contains percentage value of the symbol
    histogram. This is a preparation of event group view change.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1362462812-30885-8-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Pass evsel instead of evidx. This is a preparation for supporting event
    group view in annotation and no functional change is intended.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1362462812-30885-2-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

15 Feb, 2013

2 commits

  • Show multiple annotation result for each evsel. Each result represents
    the most frquently sampled symbol/function for the evsel and it will be
    shown in a tab window.

    For this add a reference to main container (notebook) to the pgctx. At
    the first call to annotate browser, hist_entry__find_annotations() will
    setup a new browser, and next calls will add new tabs to the browser.
    But it requires final perf_gtk__show_annotations() to start processing
    GUI events.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-3-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Basic implementation of perf annotate on GTK2. Currently only
    shows first symbol. Add a new --gtk option to use it.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-2-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

10 Nov, 2012

1 commit

  • The --print-line option of perf annotate command shows summary for
    each source line. But it didn't merge same lines so that it can
    appear multiple times.

    * before:

    Sorted summary for file /home/namhyung/bin/mcol
    ----------------------------------------------
    21.71 /home/namhyung/tmp/mcol.c:26
    20.66 /home/namhyung/tmp/mcol.c:25
    9.53 /home/namhyung/tmp/mcol.c:24
    7.68 /home/namhyung/tmp/mcol.c:25
    7.67 /home/namhyung/tmp/mcol.c:25
    7.66 /home/namhyung/tmp/mcol.c:26
    7.49 /home/namhyung/tmp/mcol.c:26
    6.92 /home/namhyung/tmp/mcol.c:25
    6.81 /home/namhyung/tmp/mcol.c:25
    1.07 /home/namhyung/tmp/mcol.c:26
    0.52 /home/namhyung/tmp/mcol.c:25
    0.51 /home/namhyung/tmp/mcol.c:25
    0.51 /home/namhyung/tmp/mcol.c:24

    * after:

    Sorted summary for file /home/namhyung/bin/mcol
    ----------------------------------------------
    50.77 /home/namhyung/tmp/mcol.c:25
    37.94 /home/namhyung/tmp/mcol.c:26
    10.04 /home/namhyung/tmp/mcol.c:24

    To do that, introduce percent_sum field so that the normal
    line-by-line output doesn't get changed.

    Signed-off-by: Namhyung Kim
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1352440729-21848-1-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

06 Nov, 2012

1 commit

  • Currently various hist browser functions receive 3 arguments for
    refreshing histogram but only used from a few places. Also it's only
    for perf top command so that it can be NULL for other (and probably
    most) cases. Pack them into a struct in order to reduce number of those
    unused arguments.

    This is a mechanical change and does not intend a functional change.

    Signed-off-by: Namhyung Kim
    Tested-by: David Ahern
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Irina Tirdea
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1351835406-15208-2-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

25 Oct, 2012

1 commit

  • As we have architecture information of saved perf.data file, we can try
    to find cross-built objdump path.

    The triplets include support for Android (arm, x86 and mips
    architectures).

    Signed-off-by: Irina Tirdea
    Originally-by: Namhyung Kim
    Acked-by: Namhyung Kim
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/1350344020-8071-5-git-send-email-irina.tirdea@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Irina Tirdea
     

03 Oct, 2012

1 commit

  • For building perf without libnewt, we can set NO_NEWT=1 as a argument of
    make. It then defines NO_NEWT_SUPPORT macro for C code to do the proper
    handling. However it usually used in a negative semantics - e.g. #ifndef -
    so we saw double negations which can be misleading. Convert it to a
    positive form to make it more readable.

    Signed-off-by: Namhyung Kim
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1348824728-14025-7-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

11 Sep, 2012

1 commit

  • perf defines both __used and __unused variables to use for marking
    unused variables. The variable __used is defined to
    __attribute__((__unused__)), which contradicts the kernel definition to
    __attribute__((__used__)) for new gcc versions. On Android, __used is
    also defined in system headers and this leads to warnings like: warning:
    '__used__' attribute ignored

    __unused is not defined in the kernel and is not a standard definition.
    If __unused is included everywhere instead of __used, this leads to
    conflicts with glibc headers, since glibc has a variables with this name
    in its headers.

    The best approach is to use __maybe_unused, the definition used in the
    kernel for __attribute__((unused)). In this way there is only one
    definition in perf sources (instead of 2 definitions that point to the
    same thing: __used and __unused) and it works on both Linux and Android.
    This patch simply replaces all instances of __used and __unused with
    __maybe_unused.

    Signed-off-by: Irina Tirdea
    Acked-by: Pekka Enberg
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/1347315303-29906-7-git-send-email-irina.tirdea@intel.com
    [ committer note: fixed up conflict with a116e05 in builtin-sched.c ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Irina Tirdea
     

08 Sep, 2012

1 commit

  • pthread variables are used in some files without explicitely including
    pthread.h. This leads to compile errors on Android. e.g.: in annotate.h,
    error: unknown type name 'pthread_mutex_t'

    Including pthread.h explicitely in files that use it to have all definitions
    included.

    Signed-off-by: Irina Tirdea
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/1347065004-15306-8-git-send-email-irina.tirdea@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Irina Tirdea
     

06 Sep, 2012

1 commit

  • When analyzing perf data from hosts of other architecture than one of
    the local host it's useful to call objdump that is part of a toolchain
    for that architecture. Instead of calling regular objdump, call one that
    user specified in command line.

    Signed-off-by: Maciek Borzecki
    Acked-by: David Ahern
    Link: http://lkml.kernel.org/r/1346754750.16299.3.camel@localhost.localdomain
    Signed-off-by: Arnaldo Carvalho de Melo

    Maciek Borzecki
     

13 May, 2012

2 commits

  • So that we don't special case disasm_line__free, allowing each
    instruction class to provide an specialized destructor, like is needed
    for 'lock'.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-xxw4vs5n077tf35jsvjzylhb@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • It just chops off the 'lock' and uses the ins__find, etc machinery to
    call instruction specific parsers/beautifiers.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-4913ba2dzakz5rivgumosqbh@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

12 May, 2012

1 commit

  • This:

    mov 0x95bbb6(%rip),%ecx # ffffffff81ae8d04

    Becomes:

    mov d_hash_shift,%ecx

    Ditto for many more instructions that take two operands.

    Requested-by: Linus Torvalds
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-i5opbyai2x6mn9e5yjmhx9k6@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

08 May, 2012

1 commit


26 Apr, 2012

1 commit

  • I.e. jumps that go to code outside the current function, that is denoted
    in objdump -dS as:

    399f877a9f: jne 399f87bcf4

    I.e. without the + after the name of the current function, like in:

    399f877aa5: jmp 399f877ab2

    The browser will use that info to avoid drawing connectors to the start
    of the function, since ops.target.addr was zero.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-xrn35g2mlawz1ydo1p73w3q6@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

25 Apr, 2012

1 commit

  • We were using ins_ops->target for callq addresses and jump offsets,
    disambiguate by having ins_ops->target.addr and ins_ops->target.offset.

    For jumps we'll need both to fixup lines that don't have an offset on
    the <> part.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-3nlcmstua75u07ao7wja1rwx@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

21 Apr, 2012

2 commits

  • 0.00 | callq ffffffff8112f190

    Becomes:

    0.00 | callq __mod_zone_page_state

    But if you press 'o' it gets verbose, i.e. as in objdump -dS:

    0.00 | ffffffff8116bdda: callq ffffffff8112f190

    Requested-by: Linus Torvalds
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-bwse2wib954y0db7dq91bes5@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • So that the ins_ops can handle them in a single place, instead of adding
    more and more functions or ins_ops parameters.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-pk4dqaum6ftiz104dvimwgtb@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

19 Apr, 2012

3 commits

  • And implement the jump one, where if the operands string is not passed,
    a compact form that uses just the target address is used.

    Right now this is toggled via the 'o' option in the annotate browser,
    switching from:

    0.00 : ffffffff811661e8: je ffffffff81166204
    0.00 : ffffffff811661ea: cmp $0xb,%esi
    0.00 : ffffffff811661ed: je ffffffff811661f8

    To:

    0.00 : 28: je 44
    0.00 : 2a: cmp $0xb,%esi
    0.00 : 2d: je 38

    Suggested-by: Linus Torvalds
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-o88q46yh4kxgpd1chk5gvjl5@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • No need to do it everytime the user presses enter/-> on a call
    instruction.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-ybgss44m5ycry8mk7b1qdbre@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • So that at disassembly time we parse targets, etc.

    Supporting jump instructions initially, call functions are next.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-7vzlh66n5or46n27ji658cnl@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

16 Apr, 2012

2 commits

  • For lines with instructions find the name and operands, breaking those
    tokens for consumption by the browser.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-6aazb9f5o3d9zi28e6rruv12@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • We want to move away from using 'objdump -dS' as the only disassembler
    supported.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-lsn9pjuxxm5ezsubyhkmprw7@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

28 Nov, 2011

1 commit

  • Since symbol__alloc_hists need it, to avoid passing it around in many
    functions have it in the symbol_conf struct.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-cwv8ysvpywzjq4v3xtbd4zwv@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

08 Oct, 2011

1 commit

  • I.e. when in the annotate TUI window, if Enter is pressed over an
    assembly line with a 'callq' it will try to open another TUI window with
    that symbol.

    This is just a proof of concept and works only on x86_64, more work is
    needed to support kernel modules, userland, other arches, etc, but
    should already be useful as-is.

    Suggested-by: Ingo Molnar
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-opyvskw5na3qdmkv8vxi3zbr@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

07 Oct, 2011

1 commit

  • This allows passing a timer to be run periodically, which will update
    the hists tree that then gers refreshed on the screen, just like the
    Live mode (symbol entries, annotation) we already have in 'perf top
    --tui'.

    Will be used by the new hist_entry/hists based 'top' tool.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-2r44qd8oe4sagzcgoikl8qzc@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

30 Sep, 2011

1 commit

  • Add -M option to report/annotate to pass directly to objdump. This
    allows to use -M intel for intel style disassembler syntax, which is
    useful for people who are very used to the Intel syntax.

    Link: http://lkml.kernel.org/r/1316122302-24306-2-git-send-email-andi@firstfloor.org
    [committer note: Add missing Documentation bits, fixup conflicts with 3e6a2a7]
    Cc: Frederic Weisbecker
    Cc: Stephane Eranian
    Signed-off-by: Andi Kleen
    Signed-off-by: Arnaldo Carvalho de Melo

    Andi Kleen