[PATCH] arm64: restore get_current() optimisation

Andreas Färber afaerber at suse.de
Thu Mar 2 03:54:24 PST 2017

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


> 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?


SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)

More information about the linux-arm-kernel mailing list