OSDN Git Service

perf cs-etm: Support unknown_thread in cs_etm_auxtrace
authorLeo Yan <leo.yan@linaro.org>
Thu, 10 May 2018 04:01:59 +0000 (12:01 +0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 11 May 2018 13:45:23 +0000 (10:45 -0300)
commit46d53620044f7b574c0f3216f8b4f2ce3559ce31
tree2d46f5e59edf875cfb85ea103f5cc09e393bc057
parent04d2600ab669b2d44dd7920cc8a1b95c8144084c
perf cs-etm: Support unknown_thread in cs_etm_auxtrace

CoreSight doesn't allocate thread structure for unknown_thread in ETM
auxtrace, so unknown_thread is NULL pointer.  If the perf data doesn't
contain valid tid and then cs_etm__mem_access() uses unknown_thread
instead as thread handler, this results in a segmentation fault when
thread__find_addr_map() accesses the thread handler.

This commit creates a new thread data which is used by unknown_thread, so
CoreSight tracing can roll back to use unknown_thread if perf data
doesn't include valid thread info.  This commit also releases thread
data for initialization failure case and for normal auxtrace free flow.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
Acked-by: Mathieu Poirier <mathieu.poirier@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: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/1525924920-4381-1-git-send-email-leo.yan@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/cs-etm.c