perf cs-etm: Fix corrupt inject files when only last branch option is enabled
'perf inject' with Coresight data generates files that cannot be opened when only the last branch option is specified: perf inject -i perf.data --itrace=l -o inject.data perf script -i inject.data 0x33faa8 [0x8]: failed to process type: 9 [Bad address] This is because cs_etm__synth_instruction_sample() is called even when the sample type for instructions hasn't been setup. Last branch records are attached to instruction samples so it doesn't make sense to generate them when --itrace=i isn't specified anyway. This change disables all calls of cs_etm__synth_instruction_sample() unless --itrace=i is specified, resulting in a file with no samples if only --itrace=l is provided, rather than a bad file. Reviewed-by: Leo Yan <leo.yan@linaro.org> Signed-off-by: James Clark <james.clark@arm.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.garry@huawei.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mathieu Poirier <mathieu.poirier@linaro.org> Cc: Mike Leach <mike.leach@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Will Deacon <will@kernel.org> Cc: coresight@lists.linaro.org Cc: linux-arm-kernel@lists.infradead.org Link: https://lore.kernel.org/r/20220210200620.1227232-2-james.clark@arm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
0b31ea6613
commit
9de0736973
|
@ -1553,6 +1553,7 @@ static int cs_etm__flush(struct cs_etm_queue *etmq,
|
|||
goto swap_packet;
|
||||
|
||||
if (etmq->etm->synth_opts.last_branch &&
|
||||
etmq->etm->synth_opts.instructions &&
|
||||
tidq->prev_packet->sample_type == CS_ETM_RANGE) {
|
||||
u64 addr;
|
||||
|
||||
|
@ -1610,6 +1611,7 @@ static int cs_etm__end_block(struct cs_etm_queue *etmq,
|
|||
* the trace.
|
||||
*/
|
||||
if (etmq->etm->synth_opts.last_branch &&
|
||||
etmq->etm->synth_opts.instructions &&
|
||||
tidq->prev_packet->sample_type == CS_ETM_RANGE) {
|
||||
u64 addr;
|
||||
|
||||
|
|
Loading…
Reference in New Issue