[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