• Namhyung Kim's avatar
    perf intel-pt: Do not try to queue auxtrace data on pipe · aeb802f8
    Namhyung Kim authored
    When it processes AUXTRACE_INFO, it calls to auxtrace_queue_data() to
    collect AUXTRACE data first.  That won't work with pipe since it needs
    lseek() to read the scattered aux data.
    
      $ perf record -o- -e intel_pt// true | perf report -i- --itrace=i100
      # To display the perf.data header info, please use --header/--header-only options.
      #
      0x4118 [0xa0]: failed to process type: 70
      Error:
      failed to process sample
    
    For the pipe mode, it can handle the aux data as it gets.  But there's
    no guarantee it can get the aux data in time.  So the following warning
    will be shown at the beginning:
    
      WARNING: Intel PT with pipe mode is not recommended.
               The output cannot relied upon.  In particular,
               time stamps and the order of events may be incorrect.
    
    Fixes: dbd13432 ("perf intel-pt: Add support for decoding AUX area samples")
    Reviewed-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Reviewed-by: default avatarJames Clark <james.clark@arm.com>
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: https://lore.kernel.org/r/20230131023350.1903992-3-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    aeb802f8
auxtrace.c 64.5 KB