• Robert Richter's avatar
    perf tools: Add pmu mappings to header information · 50a9667c
    Robert Richter authored
    With dynamic pmu allocation there are also dynamically assigned pmu ids.
    These ids are used in event->attr.type to describe the pmu to be used
    for that event. The information is available in sysfs, e.g:
    
     /sys/bus/event_source/devices/breakpoint/type: 5
     /sys/bus/event_source/devices/cpu/type: 4
     /sys/bus/event_source/devices/ibs_fetch/type: 6
     /sys/bus/event_source/devices/ibs_op/type: 7
     /sys/bus/event_source/devices/software/type: 1
     /sys/bus/event_source/devices/tracepoint/type: 2
    
    These mappings are needed to know which samples belong to which pmu.  If
    a pmu is added dynamically like for ibs_fetch or ibs_op the type value
    may vary.
    
    Now, when decoding samples from perf.data this information in sysfs
    might be no longer available or may have changed. We need to store it in
    perf.data. Using the header for this. Now the header information created
    with perf report contains an additional section looking like this:
    
     # pmu mappings: ibs_op = 7, ibs_fetch = 6, cpu = 4, breakpoint = 5, tracepoint = 2, software = 1
    Signed-off-by: default avatarRobert Richter <robert.richter@amd.com>
    Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1345144224-27280-9-git-send-email-robert.richter@amd.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    50a9667c
pmu.c 14.1 KB