mirror of
https://github.com/torvalds/linux.git
synced 2026-09-28 12:02:03 +02:00
perf cs-etm: Decode ETE exception packets
ETE shares the same packet format as ETMv4, but exception decoding handled ETMv4 packets only. As a result, ETE exception packets were not classified. Recognize the ETE magic for exception number decoding. Reviewed-by: James Clark <james.clark@linaro.org> Signed-off-by: Leo Yan <leo.yan@arm.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
a9e99b860f
commit
5cf3ea0f26
|
|
@ -2202,7 +2202,7 @@ static bool cs_etm__is_syscall(struct cs_etm_queue *etmq,
|
|||
* HVC cases; need to check if it's SVC instruction based on
|
||||
* packet address.
|
||||
*/
|
||||
if (magic == __perf_cs_etmv4_magic) {
|
||||
if (magic == __perf_cs_etmv4_magic || magic == __perf_cs_ete_magic) {
|
||||
if (packet->exception_number == CS_ETMV4_EXC_CALL &&
|
||||
cs_etm__is_svc_instr(etmq, tidq, prev_packet,
|
||||
prev_packet->end_addr))
|
||||
|
|
@ -2225,7 +2225,7 @@ static bool cs_etm__is_async_exception(struct cs_etm_traceid_queue *tidq,
|
|||
packet->exception_number == CS_ETMV3_EXC_FIQ)
|
||||
return true;
|
||||
|
||||
if (magic == __perf_cs_etmv4_magic)
|
||||
if (magic == __perf_cs_etmv4_magic || magic == __perf_cs_ete_magic)
|
||||
if (packet->exception_number == CS_ETMV4_EXC_RESET ||
|
||||
packet->exception_number == CS_ETMV4_EXC_DEBUG_HALT ||
|
||||
packet->exception_number == CS_ETMV4_EXC_SYSTEM_ERROR ||
|
||||
|
|
@ -2255,7 +2255,7 @@ static bool cs_etm__is_sync_exception(struct cs_etm_queue *etmq,
|
|||
packet->exception_number == CS_ETMV3_EXC_GENERIC)
|
||||
return true;
|
||||
|
||||
if (magic == __perf_cs_etmv4_magic) {
|
||||
if (magic == __perf_cs_etmv4_magic || magic == __perf_cs_ete_magic) {
|
||||
if (packet->exception_number == CS_ETMV4_EXC_TRAP ||
|
||||
packet->exception_number == CS_ETMV4_EXC_ALIGNMENT ||
|
||||
packet->exception_number == CS_ETMV4_EXC_INST_FAULT ||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user