perf cs-etm: Use traceID aware memory callback API
When working with CPU-wide traces different traceID may be found in the same stream. As such we need to use the decoder callback that provides the traceID in order to know the thread context being decoded. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Tested-by: Leo Yan <leo.yan@linaro.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Suzuki Poulouse <suzuki.poulose@arm.com> Cc: coresight@lists.linaro.org Cc: linux-arm-kernel@lists.infradead.org Link: http://lkml.kernel.org/r/20190524173508.29044-14-mathieu.poirier@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
0abb868bbc
commit
af21577c05
@@ -41,15 +41,14 @@ static u32
|
||||
cs_etm_decoder__mem_access(const void *context,
|
||||
const ocsd_vaddr_t address,
|
||||
const ocsd_mem_space_acc_t mem_space __maybe_unused,
|
||||
const u8 trace_chan_id,
|
||||
const u32 req_size,
|
||||
u8 *buffer)
|
||||
{
|
||||
struct cs_etm_decoder *decoder = (struct cs_etm_decoder *) context;
|
||||
|
||||
return decoder->mem_access(decoder->data,
|
||||
address,
|
||||
req_size,
|
||||
buffer);
|
||||
return decoder->mem_access(decoder->data, trace_chan_id,
|
||||
address, req_size, buffer);
|
||||
}
|
||||
|
||||
int cs_etm_decoder__add_mem_access_cb(struct cs_etm_decoder *decoder,
|
||||
@@ -58,9 +57,10 @@ int cs_etm_decoder__add_mem_access_cb(struct cs_etm_decoder *decoder,
|
||||
{
|
||||
decoder->mem_access = cb_func;
|
||||
|
||||
if (ocsd_dt_add_callback_mem_acc(decoder->dcd_tree, start, end,
|
||||
OCSD_MEM_SPACE_ANY,
|
||||
cs_etm_decoder__mem_access, decoder))
|
||||
if (ocsd_dt_add_callback_trcid_mem_acc(decoder->dcd_tree, start, end,
|
||||
OCSD_MEM_SPACE_ANY,
|
||||
cs_etm_decoder__mem_access,
|
||||
decoder))
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user