Re: [PATCH 0/5 v2] [GIT PULL] x86/jump label: Paranoid checks and 2or 5 byte nops

From: Steven Rostedt
Date: Thu Feb 02 2012 - 09:31:17 EST

On Thu, 2012-02-02 at 06:10 -0800, H. Peter Anvin wrote:
> On 02/02/2012 05:51 AM, Ingo Molnar wrote:
> > [ 0.000000] Unexpected op at enqueue_task_fair+0xab/0x1fb [ffffffff81078a8d] (0f 1f 44 00 00) arch/x86/kernel/jump_label.c:74
> So this is presumably the expected NOP... what was it expecting instead?

It's expecting the "ideal_nop" that was determined at run time.

This code died on "enabling" the nop. I think the code now enables some
nops by default on boot up, which doesn't expect to see the

I need to look at the code to see why it is enabling the nop this early.
I think there were patches out there to enable jump labels on boot up,
but I didn't think they were included yet.

But I have a good idea of what is happening.

Which explains why my box didn't trigger this bug. The one box that can
boot tip/master has the ideal_nop the same as the default_nop.

I'm still working on getting my other box to boot. I'm still hunting
down the patch in "out-of-tree" that prevents it from booting. This was
a pain, because the mainline commit that the "out-of-tree" was based on
contained another bug that prevented this box to boot. I just finished a
ktest reverse bisect on the mainline branch to find that bug:

commit 124482935fb7fb9303c8a8ab930149c6a93d9910
Author: Andi Kleen <andi@xxxxxxxxxxxxxx>
Date: Fri Jun 18 23:09:00 2010 +0200

x86: Fix vsyscall on gcc 4.5 with -Os

Now I'm running a ktest bisect on the out-of-tree branch to find the
commit that prevents this box from booting. (there's a PRE_BUILD and
POST_BUILD option that lets me apply this patch at ever bisect :-)

-- Steve

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at