[PATCH] arm64: restore get_current() optimisation

Mark Rutland mark.rutland at arm.com
Thu Mar 2 04:40:08 PST 2017


On Thu, Mar 02, 2017 at 12:54:24PM +0100, Andreas Färber wrote:
> Hi Mark,
> 
> Am 03.01.2017 um 19:27 schrieb Mark Rutland:
> > Commit c02433dd6de32f04 ("arm64: split thread_info from task stack")
> > inverted the relationship between get_current() and
> > current_thread_info(), with sp_el0 now holding the current task_struct
> > rather than the current thead_info. The new implementation of
> 
> "thread_info"?

struct thread_info, as returned by current_thread_info().

> > get_current() prevents the compiler from being able to optimize repeated
> > calls to either, resulting in a noticeable penalty in some
> > microbenchmarks.
> > 
> > This patch restores the previous optimisation by implementing
> > get_current() in the same way as our old current_thread_info(), using a
> > non-volatile asm statement.
> > 
> > Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> > Cc: Will Deacon <will.deacon at arm.com>
> > Cc: Catalin Marinas <catalin.marinas at arm.com>
> > Reported-by: Davidlohr Bueso <dbueso at suse.de>
> 
> Should this get a Fixes: c02433dd6de32f04 ("arm64: split thread_info
> from task stack") header?

Both c02433dd6de32f04 and this patch are already in mainline.

Thanks,
Mark.



More information about the linux-arm-kernel mailing list