1. 22 May, 2012 7 commits
    • Frederic Weisbecker's avatar
      perf script: Rename struct event to struct event_format in perl engine · 8784eb74
      Frederic Weisbecker authored
      While migrating to the libtraceevent, the perl scripting engine
      missed this structure rename.
      
      This fixes:
      
           util/scripting-engines/trace-event-perl.c: In function "find_cache_event":
           util/scripting-engines/trace-event-perl.c:244: error: assignment from incompatible pointer type
           util/scripting-engines/trace-event-perl.c:248: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:248: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:250: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c: In function "perl_process_tracepoint":
           util/scripting-engines/trace-event-perl.c:286: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:286: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:307: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c: In function "perl_generate_script":
           util/scripting-engines/trace-event-perl.c:498: error: passing argument 1 of "trace_find_next_event" from incompatible pointer type
           util/scripting-engines/../trace-event.h:56: note: expected "struct event_format *" but argument is of type "struct event *"
           util/scripting-engines/trace-event-perl.c:498: error: assignment from incompatible pointer type
           util/scripting-engines/trace-event-perl.c:499: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:499: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:513: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:532: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:556: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:569: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:570: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:579: error: dereferencing pointer to incomplete type
           util/scripting-engines/trace-event-perl.c:580: error: dereferencing pointer to incomplete type
      Reported-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@redhat.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Namhyung Kim <namhyung.kim@lge.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Link: http://lkml.kernel.org/r/1337697049-30251-2-git-send-email-fweisbec@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8784eb74
    • Frederic Weisbecker's avatar
      perf script: Explicitly handle known default print arg type · e326e752
      Frederic Weisbecker authored
      Handle the print argument types brought by the new libparsevent in perl
      scripting engine.
      
      PRINT_BSTRING and PRINT_DYNAMIC_ARRAY are treated just like strings
      and thus don't require specific processing.
      
      But PRINT_FUNC need specific plugins which are not yet handled, lets
      warn if we meet this case.
      
      This fixes:
      
           util/scripting-engines/trace-event-perl.c: In function define_event_symbol:
           util/scripting-engines/trace-event-perl.c:188: error: enumeration value PRINT_BSTRING not handled in switch
           util/scripting-engines/trace-event-perl.c:188: error: enumeration value PRINT_DYNAMIC_ARRAY not handled in switch
           util/scripting-engines/trace-event-perl.c:188: error: enumeration value PRINT_FUNC not handled in switch
      Reported-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@redhat.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Namhyung Kim <namhyung.kim@lge.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Tom Zanussi <tzanussi@gmail.com>
      Link: http://lkml.kernel.org/r/1337697049-30251-1-git-send-email-fweisbec@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e326e752
    • Jiri Olsa's avatar
      perf tools: Add hardcoded name term for pmu events · 6b5fc39b
      Jiri Olsa authored
      Adding a new hardcoded term 'name' allowing to specify a name for the
      pmu event. The term is defined along with standard pmu terms. If no
      'name' term is given, the event name follows following template:
      
          "raw 0x<perf_event_attr::config>"
      
      running:
          perf stat -e cpu/config=1,name=krava1/u ls
      
      will produce following output:
          ...
          Performance counter stats for 'ls':
                       0 krava1
          ...
      
      running:
          perf stat -e cpu/config=1/u ls
      
      will produce following output:
          ...
          Performance counter stats for 'ls':
                       0 raw 0x1
          ...
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337584373-2741-6-git-send-email-jolsa@redhat.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      6b5fc39b
    • Jiri Olsa's avatar
      perf tools: Separate 'mem:' event scanner bits · 08d2f762
      Jiri Olsa authored
      Separating 'mem:' scanner processing, so we can parse out modifier
      specifically and dont clash with other rules.
      
      This is just precaution for the future, so we dont need to worry about
      the rules clashing where we need to parse out any sub-rule of global
      rules.
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337584373-2741-5-git-send-email-jolsa@redhat.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      08d2f762
    • Jiri Olsa's avatar
      perf tools: Use allocated list for each parsed event · b847cbdc
      Jiri Olsa authored
      Switch from using static temporary event list into dynamically allocated
      one. This way we dont need to pass temp list to the parse_events_parse
      which makes the interface more clear.
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337584373-2741-4-git-send-email-jolsa@redhat.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b847cbdc
    • Jiri Olsa's avatar
      perf tools: Add support for displaying event parser debug info · 82ba1f2f
      Jiri Olsa authored
      Adding PARSER_DEBUG Makefile variable to enable building event scanner/
      parser with debug enabled. This results in verbose output right out of
      the scanner/parser.
      
      It's useful for debuging the event parser. Keeping this only for event
      parser so far.
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337584373-2741-3-git-send-email-jolsa@redhat.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      82ba1f2f
    • Jiri Olsa's avatar
      perf test: Move parse event automated tests to separated object · f50246e2
      Jiri Olsa authored
      Moving event parsing specific tests into separated file:
      
        util/parse-events-test.c
      
      Also changing the code a bit to ease running separate tests.
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337584373-2741-2-git-send-email-jolsa@redhat.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f50246e2
  2. 21 May, 2012 3 commits
  3. 19 May, 2012 3 commits
  4. 18 May, 2012 3 commits
  5. 17 May, 2012 5 commits
    • Jiri Olsa's avatar
      perf hists: Fix callchain ip printf format · a0187060
      Jiri Olsa authored
      The callchain address is stored as u64. Current code uses following
      format string to display callchain address:
      
        "%p\n", (void *)(long)chain->ip
      
      This way we lose upper 32 bits if we report 64 bit addresses in 32 bit
      environment. Fixing this to always display whole 64 bits.
      
      Note, running following to test perf endianity handling:
      test 1)
        - origin system:
          # perf record -a -- sleep 10 (any perf record will do)
          # perf report > report.origin
          # perf archive perf.data
      
        - copy the perf.data, report.origin and perf.data.tar.bz2
          to a target system and run:
          # tar xjvf perf.data.tar.bz2 -C ~/.debug
          # perf report > report.target
          # diff -u report.origin report.target
      
        - the diff should produce no output
          (besides some white space stuff and possibly different
           date/TZ output)
      
      test 2)
        - origin system:
          # perf record -ag -fo /tmp/perf.data -- sleep 1
        - mount origin system root to the target system on /mnt/origin
        - target system:
          # perf script --symfs /mnt/origin -I -i /mnt/origin/tmp/perf.data \
           --kallsyms /mnt/origin/proc/kallsyms
        - complete perf.data header is displayed
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.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@elte.hu>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337151548-2396-8-git-send-email-jolsa@redhat.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      a0187060
    • Namhyung Kim's avatar
      perf target: Add uses_mmap field · d1cb9fce
      Namhyung Kim authored
      If perf doesn't mmap on event (like perf stat), it should not create
      per-task-per-cpu events. So just use a dummy cpu map to create a
      per-task event for this case.
      Signed-off-by: default avatarNamhyung Kim <namhyung.kim@lge.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337161549-9870-3-git-send-email-namhyung.kim@lge.com
      [ committer note: renamed .need_mmap to .uses_mmap ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      d1cb9fce
    • Steven Rostedt's avatar
      ftrace: Remove selecting FRAME_POINTER with FUNCTION_TRACER · b732d439
      Steven Rostedt authored
      The function tracer will enable the -pg option with gcc, which requires
      that frame pointers. When FRAME_POINTER is defined in the kernel config
      it adds the gcc option -fno-omit-frame-pointer which causes some problems
      on some architectures. For those architectures, the FRAME_POINTER select
      was not set.
      
      When FUNCTION_TRACER was selected on these architectures that can not have
      -fno-omit-frame-pointer, the -pg option is still set. But when
      FRAME_POINTER is not selected, the kernel config would add the gcc option
      -fomit-frame-pointer. Adding this option is incompatible with -pg
      even on archs that do not need frame pointers with -pg.
      
      The answer to this was to just not add either -fno-omit-frame-pointer
      or -fomit-frame-pointer on these archs that want function tracing
      but do not set FRAME_POINTER.
      
      As it turns out, for archs that require frame pointers for function
      tracing, the same can be used. If gcc requires frame pointers with
      -pg, it will simply add it. The best thing to do is not select FRAME_POINTER
      when function tracing is selected, and let gcc add it if needed.
      
      Only add the -fno-omit-frame-pointer when something else selects
      FRAME_POINTER, but do not add -fomit-frame-pointer if function tracing
      is selected.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      b732d439
    • Steven Rostedt's avatar
      ftrace/x86: Have x86 ftrace use the ftrace_modify_all_code() · e4f5d544
      Steven Rostedt authored
      To remove duplicate code, have the ftrace arch_ftrace_update_code()
      use the generic ftrace_modify_all_code(). This requires that the
      default ftrace_replace_code() becomes a weak function so that an
      arch may override it.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      e4f5d544
    • Steven Rostedt's avatar
      ftrace: Make ftrace_modify_all_code() global for archs to use · 8ed3e2cf
      Steven Rostedt authored
      Rename __ftrace_modify_code() to ftrace_modify_all_code() and make
      it global for all archs to use. This will remove the duplication
      of code, as archs that can modify code without stop_machine()
      can use it directly outside of the stop_machine() call.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      8ed3e2cf
  6. 16 May, 2012 14 commits
  7. 14 May, 2012 2 commits
  8. 12 May, 2012 3 commits