• Ilkka Koskinen's avatar
    perf cs-etm: Fix the assert() to handle captured and unprocessed cpu trace · e934a35e
    Ilkka Koskinen authored
    If one builds perf with DEBUG=1, captures data on multiple CPUs and
    finally runs 'perf report -C <cpu>' for only one of the cpus, assert()
    aborts the program. This happens because there are empty queues with
    format set.
    
    This patch changes the condition to abort only if a queue is not empty
    and if the format is unset.
    
      $ make -C tools/perf DEBUG=1 CORESIGHT=1 CSLIBS=/usr/lib CSINCLUDES=/usr/include install
      $ perf record -o kcore --kcore -e cs_etm/timestamp/k -s -C 0-1 dd if=/dev/zero of=/dev/null bs=1M count=1
      $ perf report --input kcore/data --vmlinux=/home/ikoskine/projects/linux/vmlinux -C 1
      Aborted (core dumped)
    
    Fixes: 57880a79 ("perf: cs-etm: Allocate queues for all CPUs")
    Reviewed-by: default avatarJames Clark <james.clark@linaro.org>
    Signed-off-by: default avatarIlkka Koskinen <ilkka@os.amperecomputing.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@linaro.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: John Garry <john.g.garry@oracle.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linux.dev>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20240924233930.5193-1-ilkka@os.amperecomputing.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    e934a35e
cs-etm.c 99.5 KB