From: liuj97@gmail.com (Jiang Liu)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 6/7] arm64, jump label: optimize jump label implementation
Date: Thu, 17 Oct 2013 22:40:32 +0800 [thread overview]
Message-ID: <525FF6E0.7070000@gmail.com> (raw)
In-Reply-To: <20131017093944.GB18765@mudshark.cambridge.arm.com>
On 10/17/2013 05:39 PM, Will Deacon wrote:
> On Wed, Oct 16, 2013 at 06:11:45PM +0100, Jiang Liu wrote:
>> On 10/16/2013 07:46 PM, Will Deacon wrote:
>>>
>>>> + } else {
>>>> + insn = aarch64_insn_gen_nop();
>>>
>>> You could make the code more concise by limiting your patching ability to
>>> branch immediates. Then a nop is simply a branch to the next instruction (I
>>> doubt any modern CPUs will choke on this, whereas the architecture requires
>>> a NOP to take time).
>> I guess a NOP should be more effecient than a "B #4" on real CPUs:)
>
> Well, I was actually questioning that. A NOP *has* to take time (the
> architecture prevents implementations from discaring it) whereas a static,
> unconditional branch will likely be discarded early on by CPUs with even
> simple branch prediction logic.
I naively thought "NOP" is cheaper than a "B" :(
Will use a "B #1" to replace "NOP".
Thanks!
Gerry
>
> Will
>
WARNING: multiple messages have this Message-ID (diff)
From: Jiang Liu <liuj97@gmail.com>
To: Will Deacon <will.deacon@arm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Catalin Marinas <Catalin.Marinas@arm.com>,
Sandeepa Prabhu <sandeepa.prabhu@linaro.org>,
Jiang Liu <jiang.liu@huawei.com>,
Marc Zyngier <Marc.Zyngier@arm.com>,
Arnd Bergmann <arnd@arndb.de>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 6/7] arm64, jump label: optimize jump label implementation
Date: Thu, 17 Oct 2013 22:40:32 +0800 [thread overview]
Message-ID: <525FF6E0.7070000@gmail.com> (raw)
In-Reply-To: <20131017093944.GB18765@mudshark.cambridge.arm.com>
On 10/17/2013 05:39 PM, Will Deacon wrote:
> On Wed, Oct 16, 2013 at 06:11:45PM +0100, Jiang Liu wrote:
>> On 10/16/2013 07:46 PM, Will Deacon wrote:
>>>
>>>> + } else {
>>>> + insn = aarch64_insn_gen_nop();
>>>
>>> You could make the code more concise by limiting your patching ability to
>>> branch immediates. Then a nop is simply a branch to the next instruction (I
>>> doubt any modern CPUs will choke on this, whereas the architecture requires
>>> a NOP to take time).
>> I guess a NOP should be more effecient than a "B #4" on real CPUs:)
>
> Well, I was actually questioning that. A NOP *has* to take time (the
> architecture prevents implementations from discaring it) whereas a static,
> unconditional branch will likely be discarded early on by CPUs with even
> simple branch prediction logic.
I naively thought "NOP" is cheaper than a "B" :(
Will use a "B #1" to replace "NOP".
Thanks!
Gerry
>
> Will
>
next prev parent reply other threads:[~2013-10-17 14:40 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-16 3:18 [PATCH v3 0/7] Optimize jump label implementation for ARM64 Jiang Liu
2013-10-16 3:18 ` Jiang Liu
2013-10-16 3:18 ` [PATCH v3 1/7] arm64: introduce basic aarch64 instruction decoding helpers Jiang Liu
2013-10-16 3:18 ` Jiang Liu
2013-10-16 10:51 ` Will Deacon
2013-10-16 10:51 ` Will Deacon
2013-10-16 15:36 ` Jiang Liu
2013-10-16 15:36 ` Jiang Liu
2013-10-16 17:14 ` Jiang Liu
2013-10-16 17:14 ` Jiang Liu
2013-10-17 9:43 ` Will Deacon
2013-10-17 9:43 ` Will Deacon
2013-10-16 3:18 ` [PATCH v3 2/7] arm64: introduce interfaces to hotpatch kernel and module code Jiang Liu
2013-10-16 3:18 ` Jiang Liu
2013-10-16 11:11 ` Will Deacon
2013-10-16 11:11 ` Will Deacon
2013-10-16 16:15 ` Jiang Liu
2013-10-16 16:15 ` Jiang Liu
2013-10-16 3:18 ` [PATCH v3 3/7] arm64: move encode_insn_immediate() from module.c to insn.c Jiang Liu
2013-10-16 3:18 ` Jiang Liu
2013-10-16 11:22 ` Will Deacon
2013-10-16 11:22 ` Will Deacon
2013-10-16 16:33 ` Jiang Liu
2013-10-16 16:33 ` Jiang Liu
2013-10-16 3:18 ` [PATCH v3 4/7] arm64: introduce aarch64_insn_gen_{nop|branch_imm}() helper functions Jiang Liu
2013-10-16 3:18 ` Jiang Liu
2013-10-16 3:18 ` [PATCH v3 5/7] arm64, jump label: detect %c support for ARM64 Jiang Liu
2013-10-16 3:18 ` Jiang Liu
2013-10-16 3:18 ` [PATCH v3 6/7] arm64, jump label: optimize jump label implementation Jiang Liu
2013-10-16 3:18 ` Jiang Liu
2013-10-16 11:46 ` Will Deacon
2013-10-16 11:46 ` Will Deacon
2013-10-16 17:11 ` Jiang Liu
2013-10-16 17:11 ` Jiang Liu
2013-10-17 9:39 ` Will Deacon
2013-10-17 9:39 ` Will Deacon
2013-10-17 14:40 ` Jiang Liu [this message]
2013-10-17 14:40 ` Jiang Liu
2013-10-17 15:27 ` Steven Rostedt
2013-10-17 15:27 ` Steven Rostedt
2013-10-18 3:31 ` Jiang Liu (Gerry)
2013-10-18 3:31 ` Jiang Liu (Gerry)
2013-10-18 10:02 ` Will Deacon
2013-10-18 10:02 ` Will Deacon
2013-10-16 3:18 ` [PATCH v3 7/7] jump_label: use defined macros instead of hard-coding for better readability Jiang Liu
2013-10-16 3:18 ` Jiang Liu
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=525FF6E0.7070000@gmail.com \
--to=liuj97@gmail.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.