1. 21 7月, 2015 1 次提交
    • A
      perf trace: Support 'strace' syscall event groups · 005438a8
      Arnaldo Carvalho de Melo 提交于
      I.e.:
      
        $ cat ~/share/perf-core/strace/groups/file
        access
        chmod
        creat
        execve
        faccessat
        getcwd
        lstat
        mkdir
        open
        openat
        quotactl
        readlink
        rename
        rmdir
        stat
        statfs
        symlink
        unlink
        $
      
      Then, on a quiet desktop, try running this and then moving your mouse to
      see the deluge of mouse related activity:
      
        # perf probe 'vfs_getname=getname_flags:72 pathname=filename:string'
        Added new event:
          probe:vfs_getname    (on getname_flags:72 with pathname=filename:string)
      
        You can now use it in all perf tools, such as:
      
      	perf record -e probe:vfs_getname -aR sleep 1
        #
        # trace --ev probe:vfs_getname --filter-pids 2232 -e file
         0.042 (0.042 ms): mousetweaks/2235 open(filename: 0x14e3910, mode: 438                                   ) ...
         0.042 (        ): probe:vfs_getname:(ffffffff812230bc) pathname="/home/acme/.icons/Adwaita/cursors/xterm")
         0.100 (0.100 ms): mousetweaks/2235  ... [continued]: open()) = -1 ENOENT No such file or directory
         0.142 (0.018 ms): mousetweaks/2235 open(filename: 0x14c3c10, mode: 438                                   ) ...
         0.142 (        ): probe:vfs_getname:(ffffffff812230bc) pathname="/home/acme/.icons/Adwaita/index.theme")
         0.192 (0.069 ms): mousetweaks/2235  ... [continued]: open()) = -1 ENOENT No such file or directory
         0.230 (0.017 ms): mousetweaks/2235 open(filename: 0x14c3c10, mode: 438                                   ) ...
         0.230 (        ): probe:vfs_getname:(ffffffff812230bc) pathname="/usr/share/icons/Adwaita/cursors/xterm")
         0.253 (0.041 ms): mousetweaks/2235  ... [continued]: open()) = 14
         0.459 (0.008 ms): mousetweaks/2235 open(filename: 0x14e3910, mode: 438                                   ) ...
         0.459 (        ): probe:vfs_getname:(ffffffff812230bc) pathname="/home/acme/.icons/Adwaita/cursors/left_side")
         0.468 (0.017 ms): mousetweaks/2235  ... [continued]: open()) = -1 ENOENT No such file or directory
      
      Need to combine that raw_syscalls:sys_enter(open) + probe:vfs_getname +
      raw_syscalls:sys_exit(open) sequence...
      
      Now, if you're bored, please write some more syscall groups, like the ones
      in 'strace' and send it our way :-)
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Milian Wolff <mail@milianw.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-a42xklu59lcbxp7bbnic74a8@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      005438a8
  2. 02 7月, 2015 1 次提交
  3. 27 5月, 2015 2 次提交
  4. 09 5月, 2015 1 次提交
  5. 06 5月, 2015 1 次提交
  6. 30 3月, 2015 1 次提交
  7. 22 3月, 2015 5 次提交
  8. 21 3月, 2015 1 次提交
    • Y
      perf build: Add config/feature-checks/*.output to the .gitignore file · 1c30f546
      Yunlong Song 提交于
      They are all auto-generated files during the perf building.
      
      Before this patch:
      
       $ git status
       Untracked files:
         (use "git add <file>..." to include in what will be committed)
      
      	config/feature-checks/test-all.make.output
      	config/feature-checks/test-backtrace.make.output
      	config/feature-checks/test-bionic.make.output
      	config/feature-checks/test-dwarf.make.output
      	config/feature-checks/test-fortify-source.make.output
      	config/feature-checks/test-glibc.make.output
      	config/feature-checks/test-gtk2-infobar.make.output
      	config/feature-checks/test-gtk2.make.output
      	config/feature-checks/test-libaudit.make.output
      	config/feature-checks/test-libbabeltrace.make.output
      	config/feature-checks/test-libbfd.make.output
      	config/feature-checks/test-libdw-dwarf-unwind.make.output
      	config/feature-checks/test-libelf-getphdrnum.make.output
      	config/feature-checks/test-libelf-mmap.make.output
      	config/feature-checks/test-libelf.make.output
      	config/feature-checks/test-libnuma.make.output
      	config/feature-checks/test-libperl.make.output
      	config/feature-checks/test-libpython-version.make.output
      	config/feature-checks/test-libpython.make.output
      	config/feature-checks/test-libslang.make.output
      	config/feature-checks/test-libunwind.make.output
      	config/feature-checks/test-pthread-attr-setaffinity-np.make.output
      	config/feature-checks/test-stackprotector-all.make.output
      	config/feature-checks/test-sync-compare-and-swap.make.output
      	config/feature-checks/test-timerfd.make.output
      	config/feature-checks/test-zlib.make.output
      
      After this patch:
      
       $ git status
       nothing to commit, working directory clean
      Signed-off-by: NYunlong Song <yunlong.song@huawei.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/r/1426821638-11227-3-git-send-email-yunlong.song@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1c30f546
  9. 20 3月, 2015 1 次提交
  10. 19 3月, 2015 10 次提交
  11. 18 3月, 2015 1 次提交
  12. 12 3月, 2015 2 次提交
    • A
      perf tools: Output feature detection's gcc output to a file · 443a7054
      Arnaldo Carvalho de Melo 提交于
      So that we can debug feature detection problems.
      
      It will appear on $(OUTPUT)feature-checks/.make-libbabeltrace.output,
      using the libbabeltrace feature test.
      
      Whole process:
      
        [acme@ssdandy linux]$ make -C tools/perf install-bin
        make: Entering directory `/home/acme/git/linux/tools/perf'
          BUILD:   Doing 'make -j8' parallel build
        config/Makefile:425: No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR
        config/Makefile:709: No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev
      
        Auto-detecting system features:
        ...                         dwarf: [ on  ]
        ...                         glibc: [ on  ]
        ...                          gtk2: [ on  ]
        ...                      libaudit: [ on  ]
        ...                        libbfd: [ on  ]
        ...                        libelf: [ on  ]
        ...                       libnuma: [ on  ]
        ...                       libperl: [ on  ]
        ...                     libpython: [ on  ]
        ...                      libslang: [ on  ]
        ...                     libunwind: [ OFF ]
        ...            libdw-dwarf-unwind: [ on  ]
        ...                 libbabeltrace: [ OFF ]
        <SNIP>
        [acme@ssdandy linux]$ find tools/perf -name ".make-*.output" | grep lib | tail -5
        tools/perf/config/feature-checks/.make-libdw-dwarf-unwind.output
        tools/perf/config/feature-checks/.make-libbabeltrace.output
        tools/perf/config/feature-checks/.make-zlib.output
        tools/perf/config/feature-checks/.make-liberty.output
        tools/perf/config/feature-checks/.make-liberty-z.output
        [acme@ssdandy linux]$
        [acme@ssdandy linux]$ cat tools/perf/config/feature-checks/.make-libbabeltrace.output
        make[1]: Entering directory `/home/acme/git/linux/tools/perf/config/feature-checks'
        gcc -MD  -Wall -Werror -o test-libbabeltrace.bin test-libbabeltrace.c -Wl,-z,noexecstack  -lbabeltrace-ctf # -lbabeltrace provided by
        test-libbabeltrace.c:2:42: fatal error: babeltrace/ctf-writer/writer.h: No such file or directory
          #include <babeltrace/ctf-writer/writer.h>
                                                ^
        compilation terminated.
        make[1]: *** [test-libbabeltrace.bin] Error 1
        make[1]: Leaving directory `/home/acme/git/linux/tools/perf/config/feature-checks'
        [acme@ssdandy linux]$
      
      So the libbabeltrace feature will not be builtin, but if we do what is required for it
      to be built, namely point where we have it installed:
      
        [acme@ssdandy linux]$ time make -C tools/perf LIBBABELTRACE_DIR=/opt/libbabeltrace install-bin
        make: Entering directory `/home/acme/git/linux/tools/perf'
          BUILD:   Doing 'make -j8' parallel build
        config/Makefile:425: No libunwind found. Please install libunwind-dev[el] >= 1.1 and/or set LIBUNWIND_DIR
      
        Auto-detecting system features:
        ...                         dwarf: [ on  ]
        ...                         glibc: [ on  ]
        ...                          gtk2: [ on  ]
        ...                      libaudit: [ on  ]
        ...                        libbfd: [ on  ]
        ...                        libelf: [ on  ]
        ...                       libnuma: [ on  ]
        ...                       libperl: [ on  ]
        ...                     libpython: [ on  ]
        ...                      libslang: [ on  ]
        ...                     libunwind: [ OFF ]
        ...            libdw-dwarf-unwind: [ on  ]
        ...                 libbabeltrace: [ on  ]
        ...                          zlib: [ on  ]
        ...     DWARF post unwind library: libdw
        <SNIP>
        [acme@ssdandy linux]$ find tools/perf -name ".make-libbabel*.output" | grep lib | tail -5
        tools/perf/config/feature-checks/.make-libbabeltrace.output
        [acme@ssdandy linux]$ cat tools/perf/config/feature-checks/.make-libbabeltrace.output
        make[1]: Entering directory `/home/acme/git/linux/tools/perf/config/feature-checks'
        gcc -MD -I/opt/libbabeltrace/include -Wall -Werror -o test-libbabeltrace.bin test-libbabeltrace.c -Wl,-z,noexecstack -L/opt/libbabeltrace/lib -lbabeltrace-ctf # -lbabeltrace provided by
        make[1]: Leaving directory `/home/acme/git/linux/tools/perf/config/feature-checks'
        [acme@ssdandy linux]$
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jeremie Galarneau <jgalar@efficios.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-h53xwueqwdeeiqcv9f50nqqb@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      443a7054
    • J
      perf build: Fix libbabeltrace detection · 19a9df35
      Jiri Olsa 提交于
      Following patch added -Werror for feature builds:
      
        b49f1a4b perf tools: Improve feature test debuggability
      
      and exposed a problem in the libbabeltrace feature build, because it was
      including wrong header and gcc couldn't find the used symbol definition.
      
      Adding proper header and keeping the old one as it is needed also
      (libbabeltrace quirk).
      Reported-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jeremie Galarneau <jgalar@efficios.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/r/20150310120035.GA4333@krava.redhat.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      19a9df35
  13. 02 3月, 2015 8 次提交
  14. 26 2月, 2015 2 次提交
    • D
      perf tools: Make sparc64 arch point to sparc · 4861f87c
      David Ahern 提交于
      The recent build changes cause perf to not compile for sparc64 since the
      arch/sparc64/Build file does not exist:
      
      /home/dahern/kernels/linux.git/tools/build/Makefile.build:40: arch/sparc64/Build: No such file or directory
      
      Fix by converting the sparc64 RAW_ARCH to sparc ARCH -- similar to what
      is done for x86_64.
      Signed-off-by: NDavid Ahern <david.ahern@oracle.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: http://lkml.kernel.org/r/1424306222-96843-1-git-send-email-david.ahern@oracle.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      4861f87c
    • J
      perf data: Add perf data to CTF conversion support · edbe9817
      Jiri Olsa 提交于
      Adding 'perf data convert' to convert perf data file into different
      format. This patch adds support for CTF format conversion.
      
      To convert perf.data into CTF run:
        $ perf data convert --to-ctf=./ctf-data/
        [ perf data convert: Converted 'perf.data' into CTF data './ctf-data/' ]
        [ perf data convert: Converted and wrote 11.268 MB (100230 samples) ]
      
      The command will create CTF metadata out of perf.data file (or one
      specified via -i option) and then convert all sample events into single
      CTF stream.
      
      Each sample_type bit is translated into separated CTF event field apart
      from following exceptions:
      
        PERF_SAMPLE_RAW          - added in next patch
        PERF_SAMPLE_READ         - TODO
        PERF_SAMPLE_CALLCHAIN    - TODO
        PERF_SAMPLE_BRANCH_STACK - TODO
        PERF_SAMPLE_REGS_USER    - TODO
        PERF_SAMPLE_STACK_USER   - TODO
      
        $ perf --debug=data-convert=2 data convert ...
      
      The converted CTF data could be analyzed by CTF tools, like babletrace
      or tracecompass [1].
      
        $ babeltrace ./ctf-data/
        [03:19:13.962125533] (+?.?????????) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 1 }
        [03:19:13.962130001] (+0.000004468) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 1 }
        [03:19:13.962131936] (+0.000001935) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 8 }
        [03:19:13.962133732] (+0.000001796) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 114 }
        [03:19:13.962135557] (+0.000001825) cycles: { }, { ip = 0xFFFFFFFF8105443A, tid = 20714, pid = 20714, period = 2087 }
        [03:19:13.962137627] (+0.000002070) cycles: { }, { ip = 0xFFFFFFFF81361938, tid = 20714, pid = 20714, period = 37582 }
        [03:19:13.962161091] (+0.000023464) cycles: { }, { ip = 0xFFFFFFFF8124218F, tid = 20714, pid = 20714, period = 600246 }
        [03:19:13.962517569] (+0.000356478) cycles: { }, { ip = 0xFFFFFFFF811A75DB, tid = 20714, pid = 20714, period = 1325731 }
        [03:19:13.969518008] (+0.007000439) cycles: { }, { ip = 0x34080917B2, tid = 20714, pid = 20714, period = 1144298 }
      
      The following members to the ctf-environment were decided to be added to
      distinguish and specify perf CTF data:
      
        - domain
      
          It says "kernel" because it contains a kernel trace (not to be
          confused with a user space like lttng-ust does)
      
        - tracer_name
      
          It says perf. This can be used to distinguish between lttng and perf
          CTF based trace.
      
        - version
      
          The kernel version from stream. In addition to release, this is what
          it looks like on a Debian kernel:
      
            release = "3.14-1-amd64";
            version = "3.14.0";
      
      [1] http://projects.eclipse.org/projects/tools.tracecompassSigned-off-by: NJiri Olsa <jolsa@kernel.org>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Reviewed-by: NDavid Ahern <dsahern@gmail.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jeremie Galarneau <jgalar@efficios.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/r/1424470628-5969-4-git-send-email-jolsa@kernel.orgSigned-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      edbe9817
  15. 25 2月, 2015 3 次提交