1. 14 Oct, 2013 8 commits
    • Adrian Hunter's avatar
      perf symbols: Workaround objdump difficulties with kcore · afba19d9
      Adrian Hunter authored
      The objdump tool fails to annotate module symbols when looking at kcore.
      
      Workaround this by extracting object code from kcore and putting it in a
      temporary file for objdump to use instead.
      
      The temporary file is created to look like kcore but contains only the
      function being disassembled.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1381320078-16497-3-git-send-email-adrian.hunter@intel.com
      [ Renamed 'index' to 'idx' to avoid shadowing string.h's 'index' in Fedora 12,
        Replace local with variable length with malloc/free to fix build in Fedora 12 ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      afba19d9
    • Adrian Hunter's avatar
      perf symbols: Validate kcore module addresses · 52afdaf9
      Adrian Hunter authored
      Before using kcore we need to check that modules are in memory at the
      same addresses that they were when data was recorded.
      
      This is done because, while we could remap symbols to different
      addresses, the object code linkages would still be different which would
      provide an erroneous view of the object code.
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1381320078-16497-2-git-send-email-adrian.hunter@intel.com
      [ Rename basename to base_name to avoid shadowing libgen's basename in fedora 12 ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      52afdaf9
    • Jiri Olsa's avatar
      perf tools: Separate lbfd check out of NO_DEMANGLE condition · 3e6a147d
      Jiri Olsa authored
      We fail build with NO_DEMANGLE with missing -lbfd externals error.
      The reason is that we now use bfd code in srcline object:
        perf tools: Implement addr2line directly using libbfd
      
      So we need to check/add -lbfd always now.
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      3e6a147d
    • Felipe Pena's avatar
      perf tests: Fix memory leak in dso-data.c · 1df9297c
      Felipe Pena authored
      Fix for a memory leak on test_file() function in dso-data.c.
      Signed-off-by: default avatarFelipe Pena <felipensp@gmail.com>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1381370438-4209-1-git-send-email-felipensp@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1df9297c
    • David Ahern's avatar
      perf tools: Fix old GCC build error in 'get_srcline' · a949fffb
      David Ahern authored
      trace-event-parse.c:parse_proc_kallsyms()
      
          Old GCC (4.4.2) does not see through the code flow of get_srcline() and
      gets confused about the status of 'file' and 'line':
      
          CC       /tmp/build/perf/util/srcline.o
        cc1: warnings being treated as errors
        util/srcline.c: In function ¿get_srcline¿:
        util/srcline.c:226: error: ¿file¿ may be used uninitialized in this function
        util/srcline.c:227: error: ¿line¿ may be used uninitialized in this function
        make[1]: *** [/tmp/build/perf/util/srcline.o] Error 1
        make: *** [install] Error 2
        make: Leaving directory `/home/acme/git/linux/tools/perf'
        [acme@fedora12 linux]$
      
      Help out GCC by initializing 'file' and 'line'.
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Link: http://lkml.kernel.org/n/tip-h8k7h49z3cndqgjdftkmm9f8@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      a949fffb
    • David Ahern's avatar
      perf trace: Add summary option to dump syscall statistics · bf2575c1
      David Ahern authored
      When enabled dumps a summary of all syscalls by task with the usual
      statistics -- min, max, average and relative stddev. For example,
      
      make - 26341 :       3344   [ 17.4% ]      0.000 ms
      
                      read :   52    0.000     4.802     0.644   30.08
                     write :   20    0.004     0.036     0.010   21.72
                      open :   24    0.003     0.046     0.014   23.68
                     close :   64    0.002     0.055     0.008   22.53
                      stat : 2714    0.002     0.222     0.004    4.47
                     fstat :   18    0.001     0.041     0.006   46.26
                      mmap :   30    0.003     0.009     0.006    5.71
                  mprotect :    8    0.006     0.039     0.016   32.16
                    munmap :   12    0.007     0.077     0.020   38.25
                       brk :   48    0.002     0.014     0.004   10.18
              rt_sigaction :   18    0.002     0.002     0.002    2.11
            rt_sigprocmask :   60    0.002     0.128     0.010   32.88
                    access :    2    0.006     0.006     0.006    0.00
                      pipe :   12    0.004     0.048     0.013   35.98
                     vfork :   34    0.448     0.980     0.692    3.04
                    execve :   20    0.000     0.387     0.046   56.66
                     wait4 :   34    0.017  9923.287   593.221   68.45
                     fcntl :    8    0.001     0.041     0.013   48.79
                  getdents :   48    0.002     0.079     0.013   19.62
                    getcwd :    2    0.005     0.005     0.005    0.00
                     chdir :    2    0.070     0.070     0.070    0.00
                 getrlimit :    2    0.045     0.045     0.045    0.00
                arch_prctl :    2    0.002     0.002     0.002    0.00
                 setrlimit :    2    0.002     0.002     0.002    0.00
                    openat :   94    0.003     0.005     0.003    2.11
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung.kim@lge.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1381289214-24885-3-git-send-email-dsahern@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bf2575c1
    • David Ahern's avatar
      perf util: Add findnew method to intlist · 813335b8
      David Ahern authored
      Similar to other findnew based methods if the requested object is not
      found, add it to the list.
      
      v2: followed format of other findnew methods per acme's request
      Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung.kim@lge.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1381289214-24885-2-git-send-email-dsahern@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      813335b8
    • Ramkumar Ramachandra's avatar
      perf trace: Improve the error messages · 87f91868
      Ramkumar Ramachandra authored
      Currently, execution of 'perf trace' reports the following cryptic
      message to the user:
      
      $ perf trace
      Couldn't read the raw_syscalls tracepoints information!
      
      Typically this happens because the user does not have permissions to
      read the debugfs filesystem. Also handle the case when the kernel was
      not compiled with debugfs support or when it isn't mounted.
      
      Now, the tool prints detailed error messages:
      
      $ perf trace
      Error:	Unable to find debugfs
      Hint:	Was your kernel was compiled with debugfs support?
      Hint:	Is the debugfs filesystem mounted?
      Hint:	Try 'sudo mount -t debugfs nodev /sys/kernel/debug'
      
      $ perf trace
      Error:	No permissions to read /sys/kernel/debug//tracing/events/raw_syscalls
      Hint:	Try 'sudo mount -o remount,mode=755 /sys/kernel/debug/'
      Signed-off-by: default avatarRamkumar Ramachandra <artagnon@gmail.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Link: http://lkml.kernel.org/r/1380863851-14460-1-git-send-email-artagnon@gmail.com
      [ Added ready to use commands to fix the issues as extra hints, use the
        current debugfs mount point when reporting permission error, use
        strerror_r instead of the deprecated sys_errlist, as reported by David Ahern ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      87f91868
  2. 11 Oct, 2013 28 commits
  3. 09 Oct, 2013 4 commits