• A
    perf script: Fix --per-event-dump for auxtrace synth evsels · fa48c892
    Arnaldo Carvalho de Melo 提交于
    When processing PERF_RECORD_AUXTRACE_INFO several perf_evsel entries
    will be synthesized and inserted into session->evlist, eventually ending
    in perf_script.tool.sample(), which ends up calling builtin-script.c's
    process_event(), that expects evsel->priv to be a perf_evsel_script
    object with a valid FILE pointer in fp.
    
    So we need to intercept the processing of PERF_RECORD_AUXTRACE_INFO and
    then setup evsel->priv for these newly created perf_evsel instances, do
    it to fix the segfault in process_event() trying to use a NULL for that
    FILE pointer.
    Reported-by: NAlexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: yuzhoujian <yuzhoujian@didichuxing.com>
    Fixes: a14390fd ("perf script: Allow creating per-event dump files")
    Link: http://lkml.kernel.org/n/tip-bthnur8r8de01gxvn2qayx6e@git.kernel.org
    [ Merge fix by Ravi Bangoria before pushing upstream to preserv bisectability ]
    Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    fa48c892
builtin-script.c 85.4 KB