• Adrian Hunter's avatar
    perf evlist: Fix id index for heterogeneous systems · fc705fec
    Adrian Hunter authored
    perf_evlist__set_sid_idx() updates perf_sample_id with the evlist map
    index, CPU number and TID. It is passed indexes to the evsel's cpu and
    thread maps, but references the evlist's maps instead. That results in
    using incorrect CPU numbers on heterogeneous systems. Fix it by using
    evsel maps.
    
    The id index (PERF_RECORD_ID_INDEX) is used by AUX area tracing when in
    sampling mode. Having an incorrect CPU number causes the trace data to
    be attributed to the wrong CPU, and can result in decoder errors because
    the trace data is then associated with the wrong process.
    
    Committer notes:
    
    Keep the class prefix convention in the function name, switching from
    perf_evlist__set_sid_idx() to perf_evsel__set_sid_idx().
    
    Fixes: 3c659eed ("perf tools: Add id index")
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lore.kernel.org/lkml/20210121125446.11287-1-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    fc705fec
evlist.c 14.8 KB