From: Steven Rostedt <rostedt@goodmis.org>
To: "H. Peter Anvin" <hpa@linux.intel.com>
Cc: linux-kernel@vger.kernel.org, Jason Baron <jbaron@redhat.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
tglx@linutronix.de, mingo@elte.hu, Tejun Heo <tj@kernel.org>
Subject: Re: [PATCH 2/3] x86, cpu: Clean up and unify the NOP selection infrastructure
Date: Mon, 18 Apr 2011 19:31:15 -0400 [thread overview]
Message-ID: <1303169476.7181.71.camel@gandalf.stny.rr.com> (raw)
In-Reply-To: <1303166160-10315-3-git-send-email-hpa@linux.intel.com>
On Mon, 2011-04-18 at 15:35 -0700, H. Peter Anvin wrote:
> #endif /* _ASM_X86_NOPS_H */
> diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
> index 4a23467..2ca3f65 100644
> --- a/arch/x86/kernel/alternative.c
> +++ b/arch/x86/kernel/alternative.c
> @@ -68,16 +68,20 @@ __setup("noreplace-paravirt", setup_noreplace_paravirt);
> printk(KERN_DEBUG fmt, args)
>
> #if defined(GENERIC_NOP1) && !defined(CONFIG_X86_64)
> -/* Use inline assembly to define this because the nops are defined
> - as inline assembly strings in the include files and we cannot
> - get them easily into strings. */
> -asm("\t" __stringify(__INITRODATA_OR_MODULE) "\nintelnops: "
> - GENERIC_NOP1 GENERIC_NOP2 GENERIC_NOP3 GENERIC_NOP4 GENERIC_NOP5 GENERIC_NOP6
> - GENERIC_NOP7 GENERIC_NOP8
> - "\t.previous");
> -extern const unsigned char intelnops[];
Can we please add a comment to this. The original (above) was confusing
enough, but at least it used asm() so it wasn't that bad to figure out.
Or at least the asm() usage would trigger in one's mind to think "Damn!
They chose to use 'asm', it must be some kind of nasty trick. Let's take
a better look at WTF they are doing!".
Now the use a normal character array actual makes this even more subtle.
What about adding:
/*
* Each GENERIC_NOPX is of X bytes, and defined as an array of bytes
* that correspond to that nop. Getting from one nop to the next, we
* add to the array the offset that is equal to the sum of all sizes of
* nops preceding the one we are after.
*
* Note: The GENERIC_NOP5_ATOMIC is at the end, as it breaks the
* nice symmetry of sizes of the previous nops.
*/
-- Steve
> +static const unsigned char __initconst_or_module intelnops[] =
> +{
> + GENERIC_NOP1,
> + GENERIC_NOP2,
> + GENERIC_NOP3,
> + GENERIC_NOP4,
> + GENERIC_NOP5,
> + GENERIC_NOP6,
> + GENERIC_NOP7,
> + GENERIC_NOP8,
> + GENERIC_NOP5_ATOMIC
> +};
> static const unsigned char *const __initconst_or_module
> -intel_nops[ASM_NOP_MAX+1] = {
> +intel_nops[ASM_NOP_MAX+2] = {
> NULL,
> intelnops,
> intelnops + 1,
> @@ -87,17 +91,25 @@ intel_nops[ASM_NOP_MAX+1] = {
> intelnops + 1 + 2 + 3 + 4 + 5,
> intelnops + 1 + 2 + 3 + 4 + 5 + 6,
> intelnops + 1 + 2 + 3 + 4 + 5 + 6 + 7,
> + intelnops + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8,
> };
> #endif
next prev parent reply other threads:[~2011-04-18 23:31 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-18 22:35 [RFC PATCHSET] " H. Peter Anvin
2011-04-18 22:35 ` [PATCH 1/3] x86, percpu: Use ASM_NOP4 instead of hardcoding P6_NOP4 H. Peter Anvin
2011-04-19 1:01 ` [tip:x86/cpu] " tip-bot for H. Peter Anvin
2011-04-18 22:35 ` [PATCH 2/3] x86, cpu: Clean up and unify the NOP selection infrastructure H. Peter Anvin
2011-04-18 23:31 ` Steven Rostedt [this message]
2011-04-18 23:39 ` H. Peter Anvin
2011-04-18 23:58 ` Steven Rostedt
2011-04-19 1:01 ` [tip:x86/cpu] " tip-bot for H. Peter Anvin
2011-04-18 22:36 ` [PATCH 3/3] x86, cpu: Change NOP selection for certain Intel CPUs H. Peter Anvin
2011-04-18 23:34 ` Steven Rostedt
2011-04-19 1:02 ` [tip:x86/cpu] " tip-bot for H. Peter Anvin
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=1303169476.7181.71.camel@gandalf.stny.rr.com \
--to=rostedt@goodmis.org \
--cc=fweisbec@gmail.com \
--cc=hpa@linux.intel.com \
--cc=jbaron@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
--cc=tj@kernel.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
all inboxes | Powered by JetHome®