Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 153479a

Browse files
jenswi-linarojforissier
authored andcommittedJun 28, 2019
core: dump ftrace data with ldelf
Uses ldelf to dump ftrace data from a TA. Reviewed-by: Sumit Garg <sumit.garg@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey960) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
1 parent c86f218 commit 153479a

File tree

9 files changed

+117
-239
lines changed

9 files changed

+117
-239
lines changed
 

‎core/arch/arm/include/kernel/ftrace.h

-55
This file was deleted.

‎core/arch/arm/include/kernel/user_ta.h

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ SLIST_HEAD(load_seg_head, load_seg);
2525
* @entry_func: Entry address in TA
2626
* @dump_entry_func: Entry address in TA for dumping address mappings
2727
* and stack trace
28+
* @ftrace_entry_func: Entry address in ldelf for dumping ftrace data
2829
* @ldelf_stack_ptr: Stack pointer used for dumping address mappings and
2930
* stack trace
3031
* @is_32bit: True if 32-bit TA, false if 64-bit TA
@@ -44,6 +45,9 @@ SLIST_HEAD(load_seg_head, load_seg);
4445
struct user_ta_ctx {
4546
uaddr_t entry_func;
4647
uaddr_t dump_entry_func;
48+
#ifdef CFG_TA_FTRACE_SUPPORT
49+
uaddr_t ftrace_entry_func;
50+
#endif
4751
uaddr_t ldelf_stack_ptr;
4852
bool is_32bit;
4953
bool is_initializing;

‎core/arch/arm/kernel/abort.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
#include <arm.h>
77
#include <kernel/abort.h>
8-
#include <kernel/ftrace.h>
98
#include <kernel/linker.h>
109
#include <kernel/misc.h>
1110
#include <kernel/panic.h>
@@ -298,7 +297,8 @@ void abort_print_current_ta(void)
298297

299298
s->ctx->ops->dump_state(s->ctx);
300299

301-
ta_fbuf_dump(s);
300+
if (s->ctx->ops->dump_ftrace)
301+
s->ctx->ops->dump_ftrace(s->ctx);
302302
}
303303

304304
static void save_abort_info_in_tsd(struct abort_info *ai)

‎core/arch/arm/kernel/ftrace.c

-162
This file was deleted.

‎core/arch/arm/kernel/sub.mk

-2
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ endif
5656

5757
srcs-$(CFG_VIRTUALIZATION) += virtualization.c
5858

59-
srcs-$(CFG_TA_FTRACE_SUPPORT) += ftrace.c
60-
6159
srcs-y += link_dummies.c
6260

6361
asm-defines-y += asm-defines.c

‎core/arch/arm/kernel/unwind_arm64.c

-6
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
*/
3131

3232
#include <arm.h>
33-
#include <kernel/ftrace.h>
3433
#include <kernel/thread.h>
3534
#include <kernel/unwind.h>
3635
#include <kernel/tee_misc.h>
@@ -67,9 +66,6 @@ bool unwind_stack_arm64(struct unwind_state_arm64 *frame, bool kernel_stack,
6766
if (!copy_in_reg(&frame->pc, fp + 8, kernel_stack))
6867
return false;
6968

70-
if (!kernel_stack)
71-
ftrace_ta_map_lr(&frame->pc);
72-
7369
frame->pc -= 4;
7470

7571
return true;
@@ -82,8 +78,6 @@ void print_stack_arm64(int level, struct unwind_state_arm64 *state,
8278
{
8379
trace_printf_helper_raw(level, true, "Call stack:");
8480

85-
if (!kernel_stack)
86-
ftrace_ta_map_lr(&state->pc);
8781
do {
8882
trace_printf_helper_raw(level, true, " 0x%016" PRIx64,
8983
state->pc);
There was a problem loading the remainder of the diff.

0 commit comments

Comments
 (0)
Failed to load comments.