From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm64: restore get_current() optimisation
Date: Wed, 4 Jan 2017 15:23:06 +0000 [thread overview]
Message-ID: <20170104152305.GL18193@arm.com> (raw)
In-Reply-To: <1483468021-8237-1-git-send-email-mark.rutland@arm.com>
On Tue, Jan 03, 2017 at 06:27:01PM +0000, Mark Rutland wrote:
> Hi Catalin,
>
> My THREAD_INFO_IN_TASK series had an unintended performance regression in
> get_current() / current_thread_info(). Could you please take the below as a
> fix for the next rc?
>
> Thanks,
> Mark.
>
> ---->8----
> 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@arm.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Reported-by: Davidlohr Bueso <dbueso@suse.de>
> ---
> arch/arm64/include/asm/current.h | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
Acked-by: Will Deacon <will.deacon@arm.com>
Thanks for putting this back like it was!
Will
next prev parent reply other threads:[~2017-01-04 15:23 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-03 18:27 [PATCH] arm64: restore get_current() optimisation Mark Rutland
2017-01-04 15:23 ` Will Deacon [this message]
2017-03-02 11:35 ` Jon Hunter
2017-03-02 12:35 ` Mark Rutland
2017-03-02 15:30 ` Jon Hunter
2017-03-02 16:12 ` Robin Murphy
2017-03-02 17:11 ` Mark Rutland
2017-03-02 16:46 ` Mark Rutland
2017-03-03 15:32 ` Jon Hunter
2017-03-03 19:48 ` Mark Rutland
2017-03-02 11:54 ` Andreas Färber
2017-03-02 12:40 ` Mark Rutland
2017-03-02 12:43 ` Andreas Färber
2017-03-02 13:37 ` Mark Rutland
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=20170104152305.GL18193@arm.com \
--to=will.deacon@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.