From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] ARM: add jump label support
Date: Tue, 24 Jan 2012 16:05:16 +0000 [thread overview]
Message-ID: <20120124160516.GC12326@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20120124154353.GA4304@debian>
On Tue, Jan 24, 2012 at 09:13:53PM +0530, Rabin Vincent wrote:
> On Tue, Nov 22, 2011 at 07:42:13PM +0000, Russell King - ARM Linux wrote:
> > On Mon, Nov 21, 2011 at 08:43:49PM +0530, Rabin Vincent wrote:
> > > +static inline unsigned long
> > > +arm_gen_nop(void)
> > > +{
> > > +#ifdef CONFIG_THUMB2_KERNEL
> > > + return 0xf3af8000; /* nop.w */
> > > +#elif defined(CONFIG_CPU_32v6K)
> > > + return 0xe320f000; /* nop */
> > > +#else
> > > + return 0xe1a00000; /* mov r0, r0 */
> >
> > There really is no point making the distinction between the new nop
> > and the old nop instructions. The difference between them is that the
> > new nop is a true 'no operation' whereas the old nop causes exactly
> > what the instruction says to happen - which in effect is a no-op.
> >
> > Obviously, doing a true no-operation may require in less power, but
> > if you're using this code, you're debugging, so power usage isn't
> > really a concern. So lets keep the code simple and just use the old
> > nop here. It won't go away.
>
> Is "if you're using this code, you're debugging" really correct here?
> Because the the purpose of jump labels is to reduce the overhead of
> tracepoints when they aren't activated, i.e. when you're not actively
> debugging.
Let me repeat: the difference is power. Nothing more nothing less.
'nop' was invented to allow some vendors to 'optimize' nop from
a power management point of view. Nothing more, nothing less.
'nop' will be executed as a true 'no operation' where as 'mov r0, r0'
will tell the CPU to load the value of r0 and store it back into the
register - which involves doing an operation.
There's no difference between "nop" vs "mov r0, r0" in terms of
performance. It's purely a power thing.
If you have tracepoints enabled, then you're taking a performance
hit anyway by having all those sites inserted. So, the only time
you'd sanely enable them is if you're doing development work.
You wouldn't enable them for production, unless you had some
desire to waste CPU cycles needlessly in your end users products
(maybe you're trying to go for the worlds slowest device?)
next prev parent reply other threads:[~2012-01-24 16:05 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-21 15:13 [PATCH 1/4] ARM: ftrace: use canonical Thumb-2 wide instruction format Rabin Vincent
2011-11-21 15:13 ` [PATCH 2/4] ARM: extract out insn generation code from ftrace Rabin Vincent
2011-11-22 12:02 ` Dave Martin
2011-11-22 13:32 ` Rabin Vincent
2011-11-22 13:56 ` Dave Martin
2011-11-22 18:25 ` Rabin Vincent
2011-11-23 11:50 ` Dave Martin
2011-11-24 16:10 ` Rabin Vincent
2011-11-21 15:13 ` [PATCH 3/4] ARM: extract out code patch function from kprobes Rabin Vincent
2011-11-22 8:48 ` Tixy
2011-11-22 18:03 ` Rabin Vincent
2011-11-21 15:13 ` [PATCH 4/4] ARM: add jump label support Rabin Vincent
2011-11-22 19:42 ` Russell King - ARM Linux
2011-11-22 23:02 ` Stephen Boyd
2011-11-22 23:39 ` Jason Baron
2011-11-22 23:50 ` Jason Baron
2011-11-23 14:55 ` Rabin Vincent
2011-11-23 17:53 ` Russell King - ARM Linux
2011-11-28 17:04 ` Rabin Vincent
2012-01-24 15:43 ` Rabin Vincent
2012-01-24 16:05 ` Russell King - ARM Linux [this message]
2012-01-24 16:57 ` Rabin Vincent
2011-11-22 12:02 ` [PATCH 1/4] ARM: ftrace: use canonical Thumb-2 wide instruction format Dave Martin
2011-11-22 18:00 ` Rabin Vincent
2011-11-23 14:42 ` Dave Martin
2011-11-24 7:22 ` Bi Junxiao
2011-11-25 10:10 ` Dave Martin
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=20120124160516.GC12326@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).