1. 28 11月, 2009 11 次提交
  2. 25 11月, 2009 1 次提交
    • T
      perf tools: Add 'signed' flag setting back into trace-event-parse.c · 0d0bea5e
      Tom Zanussi 提交于
      Commit 13999e59 (perf tools:
      Handle the case with and without the "signed" trace field)
      removed code to set the FIELD_IS_SIGNED flag that was originally
      added by commit 26a50744
      (tracing/events: Add 'signed' field to format files).
      
      This adds it back.
      Signed-off-by: NTom Zanussi <tzanussi@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1259133299-23594-2-git-send-email-tzanussi@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0d0bea5e
  3. 24 11月, 2009 9 次提交
    • A
      perf symbols: Rename find_symbol routines to find_function · fcf1203a
      Arnaldo Carvalho de Melo 提交于
      Paving the way for supporting variable in adition to function
      symbols.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1259074912-5924-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fcf1203a
    • A
      perf tools: Remove unused wrapper routines · 727dad10
      Arnaldo Carvalho de Melo 提交于
      And also make xrealloc and xmalloc weak symbols so that we don't
      have this problem:
      
       /usr/lib/gcc/x86_64-redhat-linux/4.4.1/../../../../lib64/libiberty.a(xmalloc.o):
       In function `xrealloc':
       (.text+0xc0): multiple definition of `xrealloc'
       libperf.a(wrapper.o):/home/acme_unencrypted/git/linux-2.6-tip/tools/perf/util/wrapper.c:67:
       first defined here
       collect2: ld returned 1 exit status
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1259071517-3242-4-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      727dad10
    • A
      perf tools: Introduce zalloc() for the common calloc(1, N) case · 36479484
      Arnaldo Carvalho de Melo 提交于
      This way we type less characters and it looks more like the
      kzalloc kernel counterpart.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1259071517-3242-3-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      36479484
    • A
      perf symbols: Simplify symbol machinery setup · b32d133a
      Arnaldo Carvalho de Melo 提交于
      And also express its configuration toggles via a struct.
      
      Now all one has to do is to call symbol__init(NULL) if the
      defaults are OK, or pass a struct symbol_conf pointer with the
      desired configuration.
      
      If a tool uses kernel_maps__find_symbol() to look at the kernel
      and modules mappings for a symbol but didn't call symbol__init()
      first, that will generate a one time warning too, alerting the
      subcommand developer that symbol__init() must be called.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1259071517-3242-2-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b32d133a
    • J
      perf tools: Use common process_event functions for annotate and report · e74328d3
      John Kacur 提交于
      Prevent bit-rot in perf-annotate by using common functions where
      possible. Here we create process_events.[ch] to hold the common
      functions.
      Signed-off-by: NJohn Kacur <jkacur@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: acme@redhat.com
      LKML-Reference: <1259073301-11506-3-git-send-email-jkacur@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e74328d3
    • P
      perf tools: Fix compilation on powerpc · ee3d2504
      Paul Mackerras 提交于
      Currently, perf fails to compile on powerpc with this error:
      
           CC util/header.o
       In file included from util/../perf.h:17,
                        from util/header.c:9:
       util/../../../arch/powerpc/include/asm/unistd.h:360:27: error:
       linux/linkage.h: No such file or directory make: ***
       [util/header.o] Error 1
      
      The reason is that we still have a #define __KERNEL__ in effect
      at the point where <asm/unistd.h> gets included, which means we
      get extra stuff that we don't need or want.
      
      This fixes the problem by undefining __KERNEL__ once we have
      included the file for which we need __KERNEL__ defined.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <19211.24287.453183.78836@cargo.ozlabs.ibm.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ee3d2504
    • A
      perf tools: Move graph_line and graph_dotted_line from top · 2890284b
      Arnaldo Carvalho de Melo 提交于
      So that they can be used in other tools.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1259005869-13487-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2890284b
    • A
      perf symbols: Look for vmlinux in more places · cc612d81
      Arnaldo Carvalho de Melo 提交于
      Now that we can check the buildid to see if it really matches,
      this can be done safely:
      
        vmlinux
        /boot/vmlinux
        /boot/vmlinux-<uts.release>
        /lib/modules/<uts.release>/build/vmlinux
        /usr/lib/debug/lib/modules/%s/vmlinux
      
      More can be added - if you know about distros that put the
      vmlinux somewhere else please let us know.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1259001550-8194-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      cc612d81
    • F
      perf tools: Add support for breakpoint events in perf tools · 1b290d67
      Frederic Weisbecker 提交于
      Add the breakpoint events support with this new sysnopsis:
      
        mem:addr[:access]
      
      Where addr is a raw addr value in the kernel and access can be
      either [r][w][x]
      
      Example to profile tasklist_lock:
      
      	$ grep tasklist_lock /proc/kallsyms
      	ffffffff8189c000 D tasklist_lock
      
      	$ perf record -e mem:0xffffffff8189c000:rw -a -f -c 1
      	$ perf report
      
      	# Samples: 62
      	#
      	# Overhead          Command  Shared Object  Symbol
      	# ........  ...............  .............  ......
      	#
      	    29.03%          swapper  [kernel]       [k] _raw_read_trylock
      	    29.03%          swapper  [kernel]       [k] _raw_read_unlock
      	    19.35%             init  [kernel]       [k] _raw_read_trylock
      	    19.35%             init  [kernel]       [k] _raw_read_unlock
      	     1.61%         events/0  [kernel]       [k] _raw_read_trylock
      	     1.61%         events/0  [kernel]       [k] _raw_read_unlock
      
      Coming soon:
      
       - Support for symbols in the event definition.
      
       - Default period to 1 for breakpoint events because these are
         not high frequency events. The same thing is needed for trace
         events.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Prasad <prasad@linux.vnet.ibm.com>
      LKML-Reference: <1258987355-8751-4-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Prasad <prasad@linux.vnet.ibm.com>
      1b290d67
  4. 23 11月, 2009 1 次提交
  5. 22 11月, 2009 4 次提交
    • P
      perf symbols: Fix ELF header errors during "perf kmem record" · e57cfcda
      Pekka Enberg 提交于
      The write_event() function in builtin-record.c writes out all
      mmap()'d DSOs including non-ELF files like GNOME resource files
      and such.
      
      Therefore, check for ELF_K_ELF in filename__read_build_id()
      before attempting to read the ELF header with gelf_getehdr().
      
      Fixes the following error messages when running "perf kmem
      record":
      
        penberg@penberg-laptop:~/src/linux/tools/perf$ perf kmem record
        ^C[ perf record: Woken up 2 times to write data ]
        [ perf record: Captured and wrote 0.753 MB perf.data (~32885 samples) ]
        filename__read_build_id: cannot get elf header.
        filename__read_build_id: cannot get elf header.
        filename__read_build_id: cannot get elf header.
        filename__read_build_id: cannot get elf header.
        filename__read_build_id: cannot get elf header.
        filename__read_build_id: cannot get elf header.
        filename__read_build_id: cannot get elf header.
        filename__read_build_id: cannot get elf header.
        filename__read_build_id: cannot get elf header.
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Li Zefan <lizf@cn.fujitsu.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <1258885784-11709-1-git-send-email-penberg@cs.helsinki.fi>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e57cfcda
    • A
      perf trace: Read_tracing_data should die() another day · e2561368
      Arnaldo Carvalho de Melo 提交于
      It better propagate errors, also if we do a simple:
      
      [root@doppio linux-2.6-tip]# perf record -R -a -f sleep 3s ;
      perf trace [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.182 MB perf.data (~7972 samples) ]
      Fatal: not an trace data file
      [root@doppio linux-2.6-tip]#
      
      That is what is expected, right? I.e. as we didn't specify any
      tracepoint event via -e, it should gracefully bail out and not
      SEGFAULT.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258821086-11521-3-git-send-email-acme@infradead.org>
      [ Fixed the error messages some more ]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e2561368
    • A
      perf symbols: Old versions of elf.h don't have NT_GNU_BUILD_ID · c12e15e7
      Arnaldo Carvalho de Melo 提交于
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258821086-11521-2-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c12e15e7
    • A
      perf symbols: Fixup kernel_maps__fixup_end end map · 90c83218
      Arnaldo Carvalho de Melo 提交于
      We better call this routine after both the kernel and modules
      are loaded, because as it was if there weren't modules it would not
      be called, resulting in kernel_map->end remaining at zero, so no
      map would be found and consequently the kernel symtab wouldn't
      get loaded, i.e. no kernel symbols would be resolved.
      
      Also this fixes another case, that is when we _have_ modules,
      but the last map would have its ->end address not set before we
      loaded its symbols, which would never happen because ->end was
      not set.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258821086-11521-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      90c83218
  6. 21 11月, 2009 6 次提交
    • A
      perf symbols: Change the kernel DSO name if it comes from kallsyms · ef6ae724
      Arnaldo Carvalho de Melo 提交于
      So that the user have a clearer indication about the source of
      the symbols, as we only state buildid mismatches in verbose
      mode, because 'perf top' would overwrite such warning anyway.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258757489-5978-6-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ef6ae724
    • A
      perf symbols: Check vmlinux buildid · fbd733b8
      Arnaldo Carvalho de Melo 提交于
      E.g.:
      
      [root@doppio linux-2.6-tip]# perf top -v --vmlinux
      ../build/tip/vmlinux > /dev/null build_id in vmlinux is
      e96699725a47413a50c231864a8e7a8ced40a31b while expected is
      18e7cc53db62a7d35e9d6f6c9ddc23017d38ee9a, ignoring it
      
      I.e. perf top was told to use a vmlinux file that is not the one
      currently running on the machine, it ignores it and falls back
      to using /proc/kallsyms.
      
      This solves many, at first, mysterious results when people have
      a stale vmlinux file while keeping the default of trying to use
      the vmlinux file in the current directory in things like 'perf
      annotate' where the DWARF info is required and thus we can't use
      just /proc/kallsyms.
      
      Modules buildids are already being checked as of the previous
      changeset in this series, because we are using the default
      dso__load routine, that will look at a series of places looking
      for the best file with a matching buildid, starting in the
      -debuginfo directories.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258757489-5978-5-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fbd733b8
    • A
      perf symbols: Do lazy symtab loading for the kernel & modules too · c338aee8
      Arnaldo Carvalho de Melo 提交于
      Just like we do with the other DSOs. This also simplifies the
      kernel_maps setup process, now all that the tools need to do is
      to call kernel_maps__init and the maps for the modules and
      kernel will be created, then, later, when
      kernel_maps__find_symbol() is used, it will also call
      maps__find_symbol that already checks if the symtab was loaded,
      loading it if needed.
      
      Now if one does 'perf top --hide_kernel_symbols' we won't pay
      the price of loading the (many) symbols in /proc/kallsyms or
      vmlinux.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258757489-5978-4-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c338aee8
    • A
      perf symbols: Introduce dso__build_id_equal · 78075caa
      Arnaldo Carvalho de Melo 提交于
      Will be used in more places.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258757489-5978-3-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      78075caa
    • A
      perf symbols: Filename__read_build_id should look at .notes section too · fd7a346e
      Arnaldo Carvalho de Melo 提交于
      In the kernel we have more than one notes section, so the linker
      script combines all and puts them into a ".notes" combined
      section. So we need to look at both sections and also traverse
      them looking at multiple GElf_Nhdr entries till we find the one
      we want, with the build_id.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258757489-5978-2-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fd7a346e
    • A
      perf symbols: Remove unrelated actions from dso__load_kernel_sym · 6671cb16
      Arnaldo Carvalho de Melo 提交于
      It should just load kernel symbols, not load the list of
      modules. There are more stuff to move to other routines, but
      lets do it in several steps.
      
      End goal is to be able to defer symbol table loading till we
      find a hit for that map address range. So that the kernel &
      modules are handled just like all the other DSOs in the system.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258757489-5978-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6671cb16
  7. 20 11月, 2009 3 次提交
  8. 19 11月, 2009 5 次提交
    • A
      perf symbols: Capture the running kernel buildid too · 2446042c
      Arnaldo Carvalho de Melo 提交于
      [root@doppio linux-2.6-tip]# perf record -a -f sleep 3s ; perf
      buildid-list | grep vmlinux
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.171 MB perf.data (~7489
      samples) ] 18e7cc53db62a7d35e9d6f6c9ddc23017d38ee9a vmlinux
      [root@doppio linux-2.6-tip]#
      
      Several refactorings were needed so that we can have symmetry
      between dsos__load_modules() and dsos__load_kernel(), i.e. those
      functions will respectively create and add to the dsos list the
      loaded modules and kernel, with its buildids, but not load its
      symbols. That is something the subcomands that need will have to
      call dso__load_kernel_sym(), just like we do with modules with
      dsos__load_module_sym()/dso__load_module_sym().
      
      Next csets will actually use this info to stop producing bogus
      results using mismatched vmlinux and .ko files.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258582853-8579-4-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2446042c
    • A
      perf symbols: Record the build_ids of kernel modules too · f1617b40
      Arnaldo Carvalho de Melo 提交于
      [root@doppio linux-2.6-tip]# perf record -a sleep 2s;perf
      buildid-list|tail [ perf record: Woken up 1 times to write data
      ] [ perf record: Captured and wrote 0.162 MB perf.data (~7078
      samples) ] 881588fa57b3c1696bc91e5e804a11304f093535 [cfg80211]
      4d47ce1da9d16bad00c962c072451b7c681e82df [snd_page_alloc]
      5146377e89a7caac617f9782f1a02e46263d3a31 [rfkill]
      2153b937bff0d345fea83b63a2e1d3138569f83d [i915]
      4e6fb1bb97362e3ee4d306988b9ad6912d5fb9ae [drm_kms_helper]
      f56ef2bf853e3a798f0d8d51f797622e5dc4420e [drm]
      b0d157a3b5c4e017329ffc07c64623cd6ad65e95 [i2c_algo_bit]
      8125374b905ef9fa8b65d98e166b008ad952f198 [i2c_core]
      fc875c6e5a90e7b915e9d445d0efc859e1b2678c [video]
      4b43c5006589f977e9762fdfc7ac1a92b72fca52 [output]
      [root@doppio linux-2.6-tip]#
      
      elfutils libdwfl/linux-kernel-modules.c was used as reference,
      as suggested by Roland McGrath.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258582853-8579-3-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f1617b40
    • A
      perf symbols: Kill struct build_id_list and die() another day · e30a3d12
      Arnaldo Carvalho de Melo 提交于
      No need for this struct and its allocations, we can just use the
      ->build_id member we already have in struct dso, then ask for it
      to be read, and later traverse the dsos list, writing the
      buildid table to the perf.data file.
      
      As a bonus, one more die() function got killed.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258582853-8579-2-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e30a3d12
    • A
      perf symbols: Fix comparision of build_ids · d3379ab9
      Arnaldo Carvalho de Melo 提交于
      When we read the build_id from the DSO name to then index into
      /usr/lib/debug/.buildid/DSO_BUILD_ID[0:2]/DSO_BUILD_ID[2:], we
      were jumping directly to the comparision with the buildid we
      already have in dso->build_id (that came from the perf.data
      build_id section, collected at perf record time)
      unconditionally, even if we didn't had recorded it, and
      furthermore, comparing a formatted buildid with a rawbuildid, yikes.
      
      Fix it by deleting the dso__read_build_id() function, that was
      really misdesigned anyway, and do the necessary checks and
      correct comparison of raw buildids.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258582853-8579-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d3379ab9
    • A
      perf symbols: Add a long_name_len member to struct dso · cfc10d3b
      Arnaldo Carvalho de Melo 提交于
      Using a two bytes hole we already had and since we also need to
      calculate this strlen for fetching the buildids. We'll use it in
      'perf top' to auto-adjust the output based on the terminal
      width.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frédéric Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1258479655-28662-1-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      cfc10d3b