All of lore.kernel.org
 help / color / mirror / Atom feed
From: nikolay.borisov@arm.com (Nikolay Borisov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RESEND 1/7] ARM: Make thread_save_fp macro aware of THUMB2 mode
Date: Fri, 23 May 2014 12:53:43 +0100	[thread overview]
Message-ID: <000001cf767d$a5dd3140$f19793c0$@borisov@arm.com> (raw)
In-Reply-To: <20140523095356.GH20155@pengutronix.de>



> -----Original Message-----
> From: linux-arm-kernel [mailto:linux-arm-kernel-
> bounces at lists.infradead.org] On Behalf Of Uwe Kleine-K?nig
> Sent: 23 May 2014 10:54
> To: Nikolay Borisov
> Cc: rric at kernel.org; a.p.zijlstra at chello.nl; jld at mozilla.com;
> sboyd at codeaurora.org; Will Deacon; dave.long at linaro.org; Dave P Martin;
> linux-arm-kernel at lists.infradead.org
> Subject: Re: [PATCH RESEND 1/7] ARM: Make thread_save_fp macro aware of
> THUMB2 mode
> 
> Hello,
> 
> On Fri, May 23, 2014 at 10:26:30AM +0100, Nikolay Borisov wrote:
> > The thread_save_fp macro has been defined so that it always reads the
> fp member
> > of the cpu_context_save struct. However, in the case of THUMB2 the fp
> is saved
> > not in the fp (r11) member but rather in r7.
> >
> > This patch changes the way the macro is defined such that FP is read
> from the
> > correct place depending on whether we are a THUMB2 kernel or not.
> This enables
> > the backtrace in sitaution such as "echo t > /proc/sysrq-trigger" or
> the
> > function in which a process sleeping when "ps -Al" is invoked.
> >
> > Signed-off-by: Nikolay Borisov <Nikolay.Borisov@arm.com>
> > Reviewed-by: Anurag Aggarwal <anurag19aggarwal@gmail.com>
> > ---
> >  arch/arm/include/asm/thread_info.h | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/arch/arm/include/asm/thread_info.h
> b/arch/arm/include/asm/thread_info.h
> > index f989d7c..e4e4208 100644
> > --- a/arch/arm/include/asm/thread_info.h
> > +++ b/arch/arm/include/asm/thread_info.h
> > @@ -114,8 +114,14 @@ static inline struct thread_info
> *current_thread_info(void)
> >  	((unsigned long)(task_thread_info(tsk)->cpu_context.pc))
> >  #define thread_saved_sp(tsk)	\
> >  	((unsigned long)(task_thread_info(tsk)->cpu_context.sp))
> > +
> > +#ifndef CONFIG_THUMB2_KERNEL
> >  #define thread_saved_fp(tsk)	\
> >  	((unsigned long)(task_thread_info(tsk)->cpu_context.fp))
> > +#else
> > +#define thread_saved_fp(tsk)	\
> > +	((unsigned long)(task_thread_info(tsk)->cpu_context.r7))
> > +#endif
> A comment would be nice here describing that it's gcc who forces this
> on
> us. Did you test if the same happens with clang?
> 

Just checked with one of the LLVM compiler engineers and he said that 
LLVM also conforms to this behaviour e.g. R7 is used as a frame pointer 
in THUMB2 mode. In addition to that, mainline doesn't compile with LLVM 
(yet). 

> Uwe
> 

Regards, 
Nikolay 

> --
> Pengutronix e.K.                           | Uwe Kleine-K?nig
> |
> Industrial Linux Solutions                 | http://www.pengutronix.de/
> |
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2014-05-23 11:53 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000001cf767d$a5dd3140$f19793c0$@borisov@arm.com' \
    --to=nikolay.borisov@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.