[PATCH] arm64: restore get_current() optimisation

Andreas Färber afaerber at suse.de
Thu Mar 2 04:43:09 PST 2017


Am 02.03.2017 um 13:40 schrieb Mark Rutland:
> 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().

I was pointing out the missing R. :)

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

Sorry, this thread was at top of LAKML and it had one Acked-by but no
reply saying someone merged it.

Cheers,
Andreas

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