1. 25 Feb, 2016 5 commits
    • Taeung Song's avatar
      perf script: Exception handling when the print fmt is empty · 8579aca3
      Taeung Song authored
      After collecting samples for events 'syscalls:', perf-script with python
      script doesn't occasionally work generating a segmentation fault.
      
      The reason is that the print fmt is empty and a value of
      event->print_fmt.args is NULL, so dereferencing the null pointer results
      in a segmentation fault i.e.:
      
          # perf record -e syscalls:*
          # perf script -g python
          # perf script -s perf-script.py
      
          in trace_begin
          syscalls__sys_enter_brk  3 79841.832099154  3777 test.sh  syscall_nr=12, brk=0
      
          ... (omitted) ...
      
          Segmentation fault (core dumped)
      
      For example, a format of sys_enter_getuid() hasn't
      print fmt as below.
      
          # cat /sys/kernel/debug/tracing/events/syscalls/sys_enter_getuid/format
          name: sys_enter_getuid
          ID: 188
          format:
                  field:unsigned short common_type;         offset:0; size:2; signed:0;
                  field:unsigned char common_flags;         offset:2; size:1; signed:0;
                  field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
                  field:int common_pid;                     offset:4; size:4; signed:1;
                  field:int syscall_nr;                     offset:8; size:4; signed:1;
      
          print fmt: ""
      
      So add exception handling to avoid this problem.
      Signed-off-by: default avatarTaeung Song <treeze.taeung@gmail.com>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/r/1456413179-12331-1-git-send-email-treeze.taeung@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8579aca3
    • Arnaldo Carvalho de Melo's avatar
      perf tools: Fix parsing of pmu events with empty list of modifiers · bb109acc
      Arnaldo Carvalho de Melo authored
      In 1d55e8ef ("perf tools: Introduce opt_event_config nonterminal") I
      removed the unconditional "'/' '/'" for pmu events such as
      "intel_pt//" but forgot to use opt_event_config where it expected some
      event_config, oops. Fix it.
      
      Noticed when trying to use:
      
        # perf record -e intel_pt// -a sleep 1
        event syntax error: 'intel_pt//'
                                     \___ parser error
        Run 'perf list' for a list of valid events
      
         Usage: perf record [<options>] [<command>]
            or: perf record [<options>] -- <command> [<options>]
      
            -e, --event <event>   event selector. use 'perf list' to list available events
        #
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Fixes: 1d55e8ef ("perf tools: Introduce opt_event_config nonterminal")
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bb109acc
    • Stephane Eranian's avatar
      perf jvmti: improve error message in Makefile · 7e9551bc
      Stephane Eranian authored
      This patch improves the error message given by jvmti Makefile when the
      alternatives command cannot be found. It now suggests the user locates
      the root of their Java installation and pass it with JDIR=
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1456378056-18812-1-git-send-email-eranian@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7e9551bc
    • Arnaldo Carvalho de Melo's avatar
      perf tools: Use asprintf() for simple string formatting/allocation · 5104ffb2
      Arnaldo Carvalho de Melo authored
      No need to use strbuf there, its just a simple alloc+formatting, which
      asprintf does just fine.
      
      Cc: Adrian Hunter <adrian.hunter@intel.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-6q6cxfhk8c8ypg3tfpo0i2iy@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5104ffb2
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-20160224' of... · 06466212
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-20160224' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Pull perf/core improvements from Arnaldo Carvalho de Melo:
      
      User visible changes:
      
        - Hierarchy histogram mode for 'perf top' and 'perf report', showing multiple
          levels, one per --sort entry: (Namhyung Kim)
      
          On a mostly idle system:
      
          # perf top --hierarchy -s comm,dso
      
          Then expand some levels and use 'P' to take a snapshot:
      
          # cat perf.hist.0
          -  92.32%         perf
                58.20%         perf
                22.29%         libc-2.22.so
                 5.97%         [kernel]
                 4.18%         libelf-0.165.so
                 1.69%         [unknown]
          -   4.71%         qemu-system-x86
                 3.10%         [kernel]
                 1.60%         qemu-system-x86_64 (deleted)
          +   2.97%         swapper
          #
      
        - Check availability of memory events in 'perf mem': (Jiri Olsa)
      
          On a Intel Broadwell machine:
      
          # perf mem record -e list
          ldlat-loads : available
          ldlat-stores: available
          #
      
        - Decode data_src values (e.g. perf.data files generated by 'perf mem record')
          in 'perf script': (Jiri Olsa)
      
          # perf script
            perf 693 [1] 4.088652: 1 cpu/mem-loads,ldlat=30/P: ffff88007d0b0f40 68100142 L1 hit|SNP None|TLB L1 or L2 hit|LCK No <SNIP>
                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        - Print bpf-output events in 'perf script': (Wang Nan).
      
          # perf record -e bpf-output/no-inherit,name=evt/ -e ./test_bpf_output_3.c/map:channel.event=evt/ usleep 1000
          # perf script
             usleep  4882 21384.532523:   evt:  ffffffff810e97d1 sys_nanosleep ([kernel.kallsyms])
              BPF output: 0000: 52 61 69 73 65 20 61 20  Raise a
                          0008: 42 50 46 20 65 76 65 6e  BPF even
                          0010: 74 21 00 00              t!..
              BPF string: "Raise a BPF event!"
          #
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      06466212
  2. 24 Feb, 2016 32 commits
  3. 23 Feb, 2016 3 commits