• Arnaldo Carvalho de Melo's avatar
    perf tools: Fix synthesizing tracepoint names from the perf.data headers · cb9dd49e
    Arnaldo Carvalho de Melo authored
    We need to use the per event info snapshoted at record time to
    synthesize the events name, so do it just after reading the perf.data
    headers, when we already processed the /sys events data, otherwise we'll
    end up using the local /sys that only by sheer luck will have the same
    tracepoint ID -> real event association.
    
    Example:
    
      # uname -a
      Linux felicio.ghostprotocols.net 3.4.0-rc5+ #1 SMP Sat May 19 15:27:11 BRT 2012 x86_64 x86_64 x86_64 GNU/Linux
      # perf record -e sched:sched_switch usleep 1
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.015 MB perf.data (~648 samples) ]
      # cat /t/events/sched/sched_switch/id
      279
      # perf evlist -v
      sched:sched_switch: sample_freq=1, type: 2, config: 279, size: 80, sample_type: 1159, read_format: 7, disabled: 1, inherit: 1, mmap: 1, comm: 1, enable_on_exec: 1, sample_id_all: 1, exclude_guest: 1
      #
    
    So on the above machine the sched:sched_switch has tracepoint id 279, but on
    the machine were we'll analyse it it has a different id:
    
      $ cat /t/events/sched/sched_switch/id
      56
      $ perf evlist -i /tmp/perf.data
      kmem:mm_balancedirty_writeout
      $ cat /t/events/kmem/mm_balancedirty_writeout/id
      279
    
    With this fix:
    
      $ perf evlist -i /tmp/perf.data
      sched:sched_switch
    Reported-by: default avatarDmitry Antipov <dmitry.antipov@linaro.org>
    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 <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/n/tip-auwks8fpuhmrdpiefs55o5oz@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    cb9dd49e
header.c 53.9 KB