linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RESEND 0/7] Fix backtrace support in THUMB2 mode
@ 2014-05-23  9:26 Nikolay Borisov
  2014-05-23  9:26 ` [PATCH RESEND 1/7] ARM: Make thread_save_fp macro aware of " Nikolay Borisov
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Nikolay Borisov @ 2014-05-23  9:26 UTC (permalink / raw)
  To: linux-arm-kernel

Currently all the code which deals with backtrace support assumes that R11 
is the frame-pointer. While this is the case for ARM mode and is explicitly 
documented in the AAPCS, this is not the case for THUMB2 mode. 

There is no official document requiring that R11 has to be the frame pointer 
and GCC uses R7 as FP and given that R7's usage is so intertwined within GCC's
mechanics it is unlikely to change, so fixing backtrace in THUMB2 mode seems
in order.

This patch series rectifies the problem by first fixing the 
thread_save_fp macro to reference the correct register. Furthermore, there
a lot of repetetive sequences of code such as :

stackframe.fp = pt_regs->ARM_fp
stackframe.lr = pt_regs->ARM_lr

so introducing a function arm_get_current_stack_frame which both 
hides this repetition and also utilizes teh frame_pointer(regs) macro
to reference the correct register depending on the mode. 

Finally, change all the call sites so that they utilize the new routine.


Nikolay Borisov (7):
  ARM: Make thread_save_fp macro aware of THUMB2 mode
  ARM: Introduce arm_get_current_stack_frame()
  ARM: perf: Make perf use arm_get_current_stackframe
  ARM: time: Make use of arm_get_current_stackframe
  ARM: unwind: Use arm_get_current_stackframe
  ARM: traps: Make use of the frame_pointer macro
  ARM: oprofile: Use of arm_get_current_stackframe

 arch/arm/include/asm/ptrace.h      | 3 +++
 arch/arm/include/asm/stacktrace.h  | 5 +++++
 arch/arm/include/asm/thread_info.h | 6 ++++++
 arch/arm/kernel/perf_event.c       | 5 +----
 arch/arm/kernel/stacktrace.c       | 9 +++++++++
 arch/arm/kernel/time.c             | 5 +----
 arch/arm/kernel/traps.c            | 6 ++++--
 arch/arm/kernel/unwind.c           | 8 +++-----
 arch/arm/oprofile/common.c         | 5 +----
 9 files changed, 33 insertions(+), 19 deletions(-)

-- 
1.8.1.5

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-06-17 15:12 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-23  9:26 [PATCH RESEND 0/7] Fix backtrace support in THUMB2 mode Nikolay Borisov
2014-05-23  9:26 ` [PATCH RESEND 1/7] ARM: Make thread_save_fp macro aware of " Nikolay Borisov
2014-05-23  9:53   ` Uwe Kleine-König
2014-05-23 11:53     ` Nikolay Borisov
2014-05-23  9:26 ` [PATCH RESEND 2/7] ARM: Introduce arm_get_current_stack_frame() Nikolay Borisov
2014-05-23 12:11   ` Robert Richter
2014-05-23  9:26 ` [PATCH RESEND 3/7] ARM: perf: Make perf use arm_get_current_stackframe Nikolay Borisov
2014-05-23  9:26 ` [PATCH RESEND 4/7] ARM: time: Make use of arm_get_current_stackframe Nikolay Borisov
2014-05-23  9:26 ` [PATCH RESEND 5/7] ARM: unwind: Use arm_get_current_stackframe Nikolay Borisov
2014-05-23  9:26 ` [PATCH RESEND 6/7] ARM: traps: Make use of the frame_pointer macro Nikolay Borisov
2014-05-23  9:26 ` [PATCH RESEND 7/7] ARM: oprofile: Use of arm_get_current_stackframe Nikolay Borisov
2014-05-23 16:55 ` [PATCH RESEND 0/7] Fix backtrace support in THUMB2 mode Will Deacon
2014-06-17 14:49 ` Russell King - ARM Linux
2014-06-17 15:12   ` Nikolay Borisov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).