1. 29 11月, 2016 2 次提交
    • A
      perf test: Remove "test" and similar strings from test descriptions · 030910c0
      Arnaldo Carvalho de Melo 提交于
      Having "test" in almost all test descriptions is redundant, simplify it
      removing and rewriting tests with such descriptions.
      
      End result:
      
        # perf test
         1: vmlinux symtab matches kallsyms            : Ok
         2: Detect openat syscall event                : Ok
         3: Detect openat syscall event on all cpus    : Ok
         4: Read samples using the mmap interface      : Ok
         5: Parse event definition strings             : Ok
         6: PERF_RECORD_* events & perf_sample fields  : Ok
         7: Parse perf pmu format                      : Ok
         8: DSO data read                              : Ok
         9: DSO data cache                             : Ok
        10: DSO data reopen                            : Ok
        11: Roundtrip evsel->name                      : Ok
        12: Parse sched tracepoints fields             : Ok
        13: syscalls:sys_enter_openat event fields     : Ok
        14: Setup struct perf_event_attr               : Ok
        15: Match and link multiple hists              : Ok
        16: 'import perf' in python                    : Ok
        17: Breakpoint overflow signal handler         : Ok
        18: Breakpoint overflow sampling               : Ok
        19: Number of exit events of a simple workload : Ok
        20: Software clock events period values        : Ok
        21: Object code reading                        : Ok
        22: Sample parsing                             : Ok
        23: Use a dummy software event to keep tracking: Ok
        24: Parse with no sample_id_all bit set        : Ok
        25: Filter hist entries                        : Ok
        26: Lookup mmap thread                         : Ok
        27: Share thread mg                            : Ok
        28: Sort output of hist entries                : Ok
        29: Cumulate child hist entries                : Ok
        30: Track with sched_switch                    : Ok
        31: Filter fds with revents mask in a fdarray  : Ok
        32: Add fd to a fdarray, making it autogrow    : Ok
        33: kmod_path__parse                           : Ok
        34: Thread map                                 : Ok
        35: LLVM search and compile                    :
        35.1: Basic BPF llvm compile                    : Ok
        35.2: kbuild searching                          : Ok
        35.3: Compile source for BPF prologue generation: Ok
        35.4: Compile source for BPF relocation         : Ok
        36: Session topology                           : Ok
        37: BPF filter                                 :
        37.1: Basic BPF filtering                      : Ok
        37.2: BPF prologue generation                  : Ok
        37.3: BPF relocation checker                   : Ok
        38: Synthesize thread map                      : Ok
        39: Synthesize cpu map                         : Ok
        40: Synthesize stat config                     : Ok
        41: Synthesize stat                            : Ok
        42: Synthesize stat round                      : Ok
        43: Synthesize attr update                     : Ok
        44: Event times                                : Ok
        45: Read backward ring buffer                  : Ok
        46: Print cpu map                              : Ok
        47: Probe SDT events                           : Ok
        48: is_printable_array                         : Ok
        49: Print bitmap                               : Ok
        50: perf hooks                                 : Ok
        51: x86 rdpmc                                  : Ok
        52: Convert perf time to TSC                   : Ok
        53: DWARF unwind                               : Ok
        54: x86 instruction decoder - new instructions : Ok
        55: Intel cqm nmi context read                 : Skip
        #
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-rx2lbfcrrio2yx1fxcljqy0e@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      030910c0
    • W
      perf tools: Introduce perf hooks · a074865e
      Wang Nan 提交于
      Perf hooks allow hooking user code at perf events. They can be used for
      manipulation of BPF maps, taking snapshot and reporting results. In this
      patch two perf hook points are introduced: record_start and record_end.
      
      To avoid buggy user actions, a SIGSEGV signal handler is introduced into
      'perf record'. It turns off perf hook if it causes a segfault and report
      an error to help debugging.
      
      A test case for perf hook is introduced.
      
      Test result:
        $ ./buildperf/perf test -v hook
        50: Test perf hooks                                          :
        --- start ---
        test child forked, pid 10311
        SIGSEGV is observed as expected, try to recover.
        Fatal error (SEGFAULT) in perf hook 'test'
        test child finished with 0
        ---- end ----
        Test perf hooks: Ok
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Cc: Alexei Starovoitov <ast@fb.com>
      Cc: He Kuang <hekuang@huawei.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Joe Stringer <joe@ovn.org>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/20161126070354.141764-5-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      a074865e
  2. 03 8月, 2016 1 次提交
  3. 19 7月, 2016 1 次提交
  4. 14 7月, 2016 1 次提交
  5. 13 7月, 2016 1 次提交
    • A
      tools: Introduce str_error_r() · c8b5f2c9
      Arnaldo Carvalho de Melo 提交于
      The tools so far have been using the strerror_r() GNU variant, that
      returns a string, be it the buffer passed or something else.
      
      But that, besides being tricky in cases where we expect that the
      function using strerror_r() returns the error formatted in a provided
      buffer (we have to check if it returned something else and copy that
      instead), breaks the build on systems not using glibc, like Alpine
      Linux, where musl libc is used.
      
      So, introduce yet another wrapper, str_error_r(), that has the GNU
      interface, but uses the portable XSI variant of strerror_r(), so that
      users rest asured that the provided buffer is used and it is what is
      returned.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-d4t42fnf48ytlk8rjxs822tf@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      c8b5f2c9
  6. 01 7月, 2016 2 次提交
  7. 10 5月, 2016 1 次提交
  8. 30 3月, 2016 1 次提交
    • J
      perf tests: Add test to check for event times · b31d660d
      Jiri Olsa 提交于
      This test creates software event 'cpu-clock' attaches it in several ways
      and checks that enabled and running times match.
      
      Committer notes:
      
      Testing it:
      
        [acme@jouet linux]$ perf test -v times
        44: Test events times                                        :
        --- start ---
        test child forked, pid 27170
        attaching to spawned child, enable on exec
          OK    : ena 307328, run 307328
        attaching to current thread as enabled
          OK    : ena 7826, run 7826
        attaching to current thread as disabled
          OK    : ena 738, run 738
        attaching to CPU 0 as enabled
          SKIP  : not enough rights
        attaching to CPU 0 as enabled
          SKIP  : not enough rights
        test child finished with -2
        ---- end ----
        Test events times: Skip
        [acme@jouet linux]$
      
        [root@jouet ~]# perf test times
        44: Test events times                                        : Ok
        [root@jouet ~]# perf test -v times
        44: Test events times                                        :
        --- start ---
        test child forked, pid 27306
        attaching to spawned child, enable on exec
          OK    : ena 479290, run 479290
        attaching to current thread as enabled
          OK    : ena 11356, run 11356
        attaching to current thread as disabled
          OK    : ena 987, run 987
        attaching to CPU 0 as enabled
          OK    : ena 3717, run 3717
        attaching to CPU 0 as enabled
          OK    : ena 2323, run 2323
        test child finished with 0
        ---- end ----
        Test events times: Ok
        [root@jouet ~]#
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1458823940-24583-7-git-send-email-jolsa@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b31d660d
  9. 18 12月, 2015 7 次提交
  10. 14 12月, 2015 1 次提交
    • A
      perf test: Dump the stack when test segfaults when in verbose mode · b6847d2c
      Arnaldo Carvalho de Melo 提交于
      E.g.:
      
        # perf test 26
        26: Test mmap thread lookup                                  : FAILED!
        # perf test -v 26
        26: Test mmap thread lookup                                  :
        --- start ---
        test child forked, pid 9269
        tid = 9269, map = 0x7ff99ff0c000
        tid = 9270, map = 0x7ff99ff0b000
        tid = 9271, map = 0x7ff99ff0a000
        tid = 9272, map = 0x7ff99ff09000
        perf: Segmentation fault
        Obtained 13 stack frames.
        perf(sighandler_dump_stack+0x41) [0x4e3541]
        /lib64/libc.so.6(+0x34960) [0x7ff99d5f6960]
        perf(thread__put+0x5b) [0x4c6f6b]
        perf(machine__process_event+0x14e) [0x4bd37e]
        perf(perf_event__synthesize_threads+0x3aa) [0x48678a]
        perf(test__mmap_thread_lookup+0x20a) [0x474e0a]
        perf() [0x460d56]
        perf(cmd_test+0x589) [0x461319]
        perf() [0x47c641]
        perf(main+0x617) [0x422317]
        /lib64/libc.so.6(__libc_start_main+0xf0) [0x7ff99d5e1fe0]
        perf() [0x422429]
        [(nil)]
        test child interrupted
        ---- end ----
        Test mmap thread lookup: FAILED!
        #
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-sypazzsl4ptctrmlyi2zcmaj@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b6847d2c
  11. 20 11月, 2015 4 次提交
    • W
      perf test: Mute test cases error messages if verbose == 0 · 5bcf2fe0
      Wang Nan 提交于
      Sometimes error messages in breaks the pretty output of 'perf test'.
      For example:
      
        # mv /lib/modules/4.3.0-rc4+/build/vmlinux{,.bak}
        # perf test LLVM BPF
        35: Test LLVM searching and compiling                        :
        35.1: Basic BPF llvm compiling test                          : Ok
        35.2: Test kbuild searching                                  : Ok
        35.3: Compile source for BPF prologue generation test        : Ok
        37: Test BPF filter                                          :
        37.1: Test basic BPF filtering                               : Ok
        37.2: Test BPF prologue generation                           :Failed to find the path for kernel: No such file or directory FAILED!
      
      This patch mute test cases thoroughly by redirect their stdout and
      stderr to /dev/null when verbose == 0. After applying this patch:
      
        # ./perf test LLVM BPF
        35: Test LLVM searching and compiling                        :
        35.1: Basic BPF llvm compiling test                          : Ok
        35.2: Test kbuild searching                                  : Ok
        35.3: Compile source for BPF prologue generation test        : Ok
        37: Test BPF filter                                          :
        37.1: Test basic BPF filtering                               : Ok
        37.2: Test BPF prologue generation                           : FAILED!
      
        # ./perf test -v LLVM BPF
        35: Test LLVM searching and compiling                        :
        35.1: Basic BPF llvm compiling test                          :
        --- start ---
        test child forked, pid 13183
        Kernel build dir is set to /lib/modules/4.3.0-rc4+/build
        set env: KBUILD_DIR=/lib/modules/4.3.0-rc4+/build
        ...
        bpf: config 'func=null_lseek file->f_mode offset orig' is ok
        Looking at the vmlinux_path (7 entries long)
        Failed to find the path for kernel: No such file or directory
        bpf_probe: failed to convert perf probe eventsFailed to add events selected by BPF
        test child finished with -1
        ---- end ----
        Test BPF filter subtest 1: FAILED!
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1447749170-175898-6-git-send-email-wangnan0@huawei.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      5bcf2fe0
    • W
      perf test: Print result for each BPF subtest · 77a0cf68
      Wang Nan 提交于
      This patch prints each sub-tests results for BPF testcases.
      
      Before:
      
        # ./perf test BPF
        37: Test BPF filter                                          : Ok
      
      After:
      
        # ./perf test BPF
        37: Test BPF filter                                          :
        37.1: Test basic BPF filtering                               : Ok
        37.2: Test BPF prologue generation                           : Ok
      
      When a failure happens:
      
        # cat ~/.perfconfig
        [llvm]
            clang-path = "/bin/false"
        # ./perf test BPF
        37: Test BPF filter                                          :
        37.1: Test basic BPF filtering                               : Skip
        37.2: Test BPF prologue generation                           : Skip
      Suggested-and-Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1447749170-175898-5-git-send-email-wangnan0@huawei.com
      [ Fixed up not to use .func in an anonymous union ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      77a0cf68
    • W
      perf test: Print result for each LLVM subtest · e8c6d500
      Wang Nan 提交于
      Currently 'perf test llvm' and 'perf test BPF' have multiple sub-tests,
      but the result is provided in only one line:
      
        # perf test LLVM
        35: Test LLVM searching and compiling                        : Ok
      
      This patch introduces sub-tests support, allowing 'perf test' to report
      result for each sub-tests:
      
        # perf test LLVM
        35: Test LLVM searching and compiling                        :
        35.1: Basic BPF llvm compiling test                          : Ok
        35.2: Test kbuild searching                                  : Ok
        35.3: Compile source for BPF prologue generation test        : Ok
      
      When a failure happens:
      
        # cat ~/.perfconfig
        [llvm]
             clang-path = "/bin/false"
        # perf test LLVM
        35: Test LLVM searching and compiling                        :
        35.1: Basic BPF llvm compiling test                          : FAILED!
        35.2: Test kbuild searching                                  : Skip
        35.3: Compile source for BPF prologue generation test        : Skip
      
      And:
      
        # rm ~/.perfconfig
        # ./perf test LLVM
        35: Test LLVM searching and compiling                        :
        35.1: Basic BPF llvm compiling test                          : Skip
        35.2: Test kbuild searching                                  : Skip
        35.3: Compile source for BPF prologue generation test        : Skip
      
      Skip by user:
      
        # ./perf test -s 1,`seq -s , 3 42`
         1: vmlinux symtab matches kallsyms                          : Skip (user override)
         2: detect openat syscall event                              : Ok
        ...
        35: Test LLVM searching and compiling                        : Skip (user override)
        ...
      Suggested-and-Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/r/1447749170-175898-4-git-send-email-wangnan0@huawei.com
      [ Changed so that func is not on an anonymous union ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      e8c6d500
    • A
      perf tests: Pass the subtest index to each test routine · 721a1f53
      Arnaldo Carvalho de Melo 提交于
      Some tests have sub-tests we want to run, so allow passing this.
      
      Wang tried to avoid having to touch all tests, but then, having the
      test.func in an anonymous union makes the build fail on older compilers,
      like the one in RHEL6, where:
      
        test a = {
      	.func = foo,
        };
      
      fails.
      
      To fix it leave the func pointer in the main structure and pass the subtest
      index to all tests, end result function is the same, but we have just one
      function pointer, not two, with and without the subtest index as an argument.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-5genj0ficwdmelpoqlds0u4y@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      721a1f53
  12. 07 11月, 2015 2 次提交
  13. 06 10月, 2015 2 次提交
  14. 14 9月, 2015 2 次提交
  15. 04 9月, 2015 1 次提交
    • A
      perf tools: Add a test for decoding of new x86 instructions · 98e4619f
      Adrian Hunter 提交于
      Add a new test titled:
      
      	Test x86 instruction decoder - new instructions
      
      The purpose of this test is to check the instruction decoder after new
      instructions have been added.  Initially, MPX instructions are tested
      which are already supported, but the definitions in x86-opcode-map.txt
      will be tweaked in a subsequent patch, after which this test can be run
      to verify those changes.
      
      The data for the test comes from assembly language instructions in
      insn-x86-dat-src.c which is converted into bytes by the scripts
      gen-insn-x86-dat.sh and gen-insn-x86-dat.awk, and included into the test
      program insn-x86.c as insn-x86-dat-32.c and insn-x86-dat-64.c.
      
      The conversion is not done as part of the perf tools build because the
      test data must be under (git) change control in order for the test to be
      repeatably-correct.  Also it may require a recent version of binutils.
      
      Commiter notes:
      
      Using it:
      
        # perf test decoder
        39: Test x86 instruction decoder - new instructions          : Ok
        # perf test -v decoder
        39: Test x86 instruction decoder - new instructions          :
        --- start ---
        test child forked, pid 21970
        Decoded ok: 0f 31                	rdtsc
        Decoded ok: f3 0f 1b 00          	bndmk  (%eax),%bnd0
        Decoded ok: f3 0f 1b 05 78 56 34 12 	bndmk  0x12345678,%bnd0
        Decoded ok: f3 0f 1b 18          	bndmk  (%eax),%bnd3
        <SNIP>
        Decoded ok: f2 e9 00 00 00 00    	bnd jmpq 402 <main+0x402>
        Decoded ok: f2 e9 00 00 00 00    	bnd jmpq 408 <main+0x408>
        Decoded ok: 67 f2 ff 21          	bnd jmpq *(%ecx)
        Decoded ok: f2 0f 85 00 00 00 00 	bnd jne 413 <main+0x413>
        test child finished with 0
        ---- end ----
        Test x86 instruction decoder - new instructions: Ok
        #
      Signed-off-by: NAdrian Hunter <adrian.hunter@intel.com>
      Acked-by: NMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Qiaowei Ren <qiaowei.ren@intel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1441196131-20632-3-git-send-email-adrian.hunter@intel.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      98e4619f
  16. 07 8月, 2015 1 次提交
    • W
      perf tests: Add LLVM test for eBPF on-the-fly compiling · 9bc898c7
      Wang Nan 提交于
      Previous patches introduce llvm__compile_bpf() to compile source file to
      eBPF object. This patch adds testcase to test it. It also tests libbpf
      by opening generated object after applying next patch which introduces
      HAVE_LIBBPF_SUPPORT option.
      
      Since llvm__compile_bpf() prints long messages which users who don't
      explicitly test llvm doesn't care, this patch set verbose to -1 to
      suppress all debug, warning and error message, and hint user use 'perf
      test -v' to see the full output.
      
      For the same reason, if clang is not found in PATH and there's no [llvm]
      section in .perfconfig, skip this test.
      Signed-off-by: NWang Nan <wangnan0@huawei.com>
      Acked-by: NAlexei Starovoitov <ast@plumgrid.com>
      Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
      Cc: Daniel Borkmann <daniel@iogearbox.net>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: He Kuang <hekuang@huawei.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kaixu Xia <xiakaixu@huawei.com>
      Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Zefan Li <lizefan@huawei.com>
      Cc: pi3orama@163.com
      Link: http://lkml.kernel.org/n/1436445342-1402-17-git-send-email-wangnan0@huawei.com
      [ Add tools/lib/bpf/ to tools/perf/MANIFEST, so that the tarball targets build ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9bc898c7
  17. 26 6月, 2015 1 次提交
  18. 29 5月, 2015 2 次提交
  19. 12 5月, 2015 1 次提交
  20. 22 3月, 2015 1 次提交
    • J
      perf tools: Add kmod_path__parse function · 3c8a67f5
      Jiri Olsa 提交于
      Provides united way of parsing kernel module path
      into several components.
      
      The new kmod_path__parse function and few defines:
      
        int __kmod_path__parse(struct kmod_path *m, const char *path,
                               bool alloc_name, bool alloc_ext);
      
        #define kmod_path__parse(__m, __p)      __kmod_path__parse(__m, __p, false, false)
        #define kmod_path__parse_name(__m, __p) __kmod_path__parse(__m, __p, true , false)
        #define kmod_path__parse_ext(__m, __p)  __kmod_path__parse(__m, __p, false, true)
      
      parse kernel module @path and updates @m argument like:
      
        @comp - true if @path contains supported compression suffix,
                false otherwise
        @kmod - true if @path contains '.ko' suffix in right position,
                false otherwise
        @name - if (@alloc_name && @kmod) is true, it contains strdup-ed base name
                of the kernel module without suffixes, otherwise strudup-ed
                base name of @path
        @ext  - if (@alloc_ext && @comp) is true, it contains strdup-ed string
                the compression suffix
      
      It returns 0 if there's no strdup error, -ENOMEM otherwise.
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@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/n/tip-9t6eqg8j610r94l743hkntiv@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3c8a67f5
  21. 20 3月, 2015 1 次提交
  22. 19 11月, 2014 1 次提交
  23. 15 10月, 2014 1 次提交
    • A
      perf tools: Remove hists from evsel · a635fc51
      Arnaldo Carvalho de Melo 提交于
      Now tools that deals want to have an hists per evsel need to call
      hists__init() before creating any evsels, which can be as early as when
      parsing the command line, so do it before calling parse_options().
      
      The current tools using hists/hist_entries are report, top and annotate,
      change them to request per evsel hists.
      
      This is in preparation for making evsels usable by 3rd party tools, that
      not necessarily live in perf's source code repository.
      Acked-by: NBorislav Petkov <bp@suse.de>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jean Pihet <jean.pihet@linaro.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      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-usjx2la743f10ippj7p1b20x@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      a635fc51
  24. 26 9月, 2014 2 次提交
    • A
      tools lib api: Adopt fdarray class from perf's evlist · 1b85337d
      Arnaldo Carvalho de Melo 提交于
      The extensible file description array that grew in the perf_evlist class
      can be useful for other tools, as it is not something that only evlists
      need, so move it to tools/lib/api/fd to ease sharing it.
      
      v2: Don't use {} like in:
      
       libapi_dirs:
      	$(QUIET_MKDIR)mkdir -p $(OUTPUT){fs,fd}/
      
      in Makefiles, as it will not work in some systems, as in ubuntu13.10.
      
      v3: Add fd/*.[ch] to LIBAPIKFS_SOURCES (Fix from Jiri Olsa)
      
      v4: Leave the fcntl(fd, O_NONBLOCK) in the evlist layer, remains to
          be checked if it is really needed there, but has no place in the
          fdarray class (Fix from Jiri Olsa)
      
      v5: Remove evlist details from fdarray grow/filter tests. Improve it a
          bit doing more tests about expected internal state.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jean Pihet <jean.pihet@linaro.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-kleuni3hckbc3s0lu6yb9x40@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1b85337d
    • A
      perf tests: Add pollfd growing test · 9ae28035
      Arnaldo Carvalho de Melo 提交于
        [acme@ssdandy linux]$ perf test "Add fd"
        34: Add fd to pollfd array, making it autogrow             : Ok
        [acme@ssdandy linux]$ perf test -v "Add fd"
        34: Add fd to pollfd array, making it autogrow             :
        --- start ---
        test child forked, pid 19817
      
        before growing array:   2 [ 1, 2 ]
        after 3rd add_pollfd:   3 [ 1, 2, 35 ]
        after 4th add_pollfd:   4 [ 1, 2, 35, 88 ]
        test child finished with 0
        ---- end ----
        Add fd to pollfd array, making it autogrow: Ok
        [acme@ssdandy linux]$
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jean Pihet <jean.pihet@linaro.org>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-smflpyta146bzog7z0effjss@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      9ae28035