All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Jason Baron <jbaron@akamai.com>
Cc: Fengguang Wu <fengguang.wu@intel.com>,
	linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	Marc Zyngier <marc.zyngier@arm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Steven Rostedt <rostedt@goodmis.org>,
	Josh Triplett <josh@joshtriplett.org>
Subject: Re: [jump_label_test] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:761 jump_label_test+0x63/0xab
Date: Fri, 10 Nov 2017 14:36:46 -0800	[thread overview]
Message-ID: <20171110223646.GQ3624@linux.vnet.ibm.com> (raw)
In-Reply-To: <b53076b0-316c-6595-87dd-ada88d165616@akamai.com>

On Fri, Nov 10, 2017 at 04:32:45PM -0500, Jason Baron wrote:
> 
> On 11/09/2017 03:56 PM, Paul E. McKenney wrote:
> > On Thu, Nov 09, 2017 at 03:13:24PM -0500, Jason Baron wrote:
> >> On 11/08/2017 02:01 AM, Fengguang Wu wrote:
> >>> On Tue, Nov 07, 2017 at 05:17:38PM -0500, Jason Baron wrote:
> >>>>
> >>>>
> >>>> On 11/07/2017 04:27 AM, Fengguang Wu wrote:
> >>>>> Hello,
> >>>>>
> >>>>> FYI this happens in v4.14-rc8 -- it's not necessarily a new bug.
> >>>>>
> >>>>
> >>>> Hi,
> >>>>
> >>>> So this looks like the branches aren't getting updated because the
> >>>> WARN_ON()s are all from the second half of the test loop (where we
> >>>> actually change the branch direction).
> >>>>
> >>>> I ran a kernel with a very similar .config on qemu-kvm/i386 as well, and
> >>>> was not able to trigger the WARN_ON(). Do you know if it happens on
> >>>> every boot or if there is some boot timing involved?
> >>>>
> >>>> You could try the patch below, to start to narrow down if this is a
> >>>> problem with jump table setup or with the update process.
> >>>
> >>> The problem disappears after this patch.
> >>>
> >>
> >> Ok, I can reproduce the issue if I enable CONFIG_RCU_PERF_TEST and add
> >> something like the following to the command-line: "rcuperf.shutdown=1
> >> rcuperf.holdoff=2".
> > 
> > Just to be clear, this combination of parameters says to start the test
> > -after- shutting down the system, which should not be expected to do
> > anything useful.
> > 
> >> The issue is that the core jump label code uses kernel_text_address() to
> >> ensure that it does not update branches in '__init' text after it has
> >> been freed. The check uses 'system_state' variable from
> >> core_kernel_text() to make the determination:
> >>
> >>         if (system_state < SYSTEM_RUNNING &&
> >>
> >>             init_kernel_text(addr))
> >>
> >>                 return 1;
> >>
> >>         return 0;
> >>
> >> So the general idea is that system_state is set to SYSTEM_RUNNING after
> >> the __init text sections are freed, and thus we avoid updating jump
> >> label branches.
> >>
> >> However, in the case that rcuperf is enabled, it will call
> >> kernel_power_off() which in turn sets system_state to SYSTEM_POWER_OFF
> >> (which is > SYSTEM_RUNNING), potentially before the the initcalls have
> >> even been run. In this case, the jump label selftests called from __init
> >> via a late_initcall() can not update the branch direction, and thus we
> >> get the above warnings (due to the fact that the branches don't get
> >> udpated).
> >>
> >> So this is really not a new issue and really is only triggered in a
> >> debug setup, so I don't think this is 4.14 material in any way...
> >>
> >> One way to clean this up is to add a call into the jump label code
> >> similar to what ftrace does in ftrace_free_init_mem(). This gets called
> >> after the initcalls have run but before they are freed. Something like
> >> below.
> > 
> > Alternatively, rcuperf (and rcutorture and locktorture) could refused
> > to power off the system until the system state reaches SYSTEM_RUNNING.
> 
> Indeed, I think this may make more sense since there may be other code
> that depends on SYSTEM_POWER_OFF state coming after SYSTEM_RUNNING. So
> if you are ok with this, I can prepare that change instead.

Please feel free to send a patch.  Ah, one alternative would be
to make kernel_power_off() do the check.  Or maybe better yet,
kernel_shutdown_prepare().

							Thanx, Paul

> Thanks,
> 
> -Jason
> 
> 
> > That said, I am quite happy to have it fixed elsewhere.  ;-)
> > 
> > 							Thanx, Paul
> > 
> >> Thanks,
> >>
> >> -Jason
> >>
> >> diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
> >> index 3b7675b..0202c58 100644
> >> --- a/include/linux/jump_label.h
> >> +++ b/include/linux/jump_label.h
> >> @@ -158,6 +158,7 @@ extern void arch_jump_label_transform(struct
> >> jump_entry *entry,
> >>  extern void arch_jump_label_transform_static(struct jump_entry *entry,
> >>                                              enum jump_label_type type);
> >>  extern int jump_label_text_reserved(void *start, void *end);
> >> +extern void jump_label_invalidate_init(struct module *mod);
> >>  extern void static_key_slow_inc(struct static_key *key);
> >>  extern void static_key_slow_dec(struct static_key *key);
> >>  extern void jump_label_apply_nops(struct module *mod);
> >> @@ -235,6 +236,8 @@ static inline int jump_label_apply_nops(struct
> >> module *mod)
> >>         return 0;
> >>  }
> >>
> >> +static inline void jump_label_invalidate_init(struct module *mod) {}
> >> +
> >>  static inline void static_key_enable(struct static_key *key)
> >>  {
> >>         STATIC_KEY_CHECK_USE();
> >> diff --git a/include/linux/kernel.h b/include/linux/kernel.h
> >> index 4b484ab..23e3cba 100644
> >> --- a/include/linux/kernel.h
> >> +++ b/include/linux/kernel.h
> >> @@ -471,6 +471,7 @@ extern unsigned long long memparse(const char *ptr,
> >> char **retptr);
> >>  extern bool parse_option_str(const char *str, const char *option);
> >>  extern char *next_arg(char *args, char **param, char **val);
> >>
> >> +extern int init_kernel_text(unsigned long addr);
> >>  extern int core_kernel_text(unsigned long addr);
> >>  extern int core_kernel_data(unsigned long addr);
> >>  extern int __kernel_text_address(unsigned long addr);
> >> diff --git a/init/main.c b/init/main.c
> >> index 0ee9c686..f4e5ab5 100644
> >> --- a/init/main.c
> >> +++ b/init/main.c
> >> @@ -994,6 +994,7 @@ static int __ref kernel_init(void *unused)
> >>         /* need to finish all async __init code before freeing the memory */
> >>         async_synchronize_full();
> >>         ftrace_free_init_mem();
> >> +       jump_label_invalidate_init(NULL);
> >>         free_initmem();
> >>         mark_readonly();
> >>         system_state = SYSTEM_RUNNING;
> >> diff --git a/kernel/extable.c b/kernel/extable.c
> >> index 9aa1cc4..1d69178 100644
> >> --- a/kernel/extable.c
> >> +++ b/kernel/extable.c
> >> @@ -62,7 +62,7 @@ const struct exception_table_entry
> >> *search_exception_tables(unsigned long addr)
> >>         return e;
> >>  }
> >>
> >> -static inline int init_kernel_text(unsigned long addr)
> >> +int init_kernel_text(unsigned long addr)
> >>  {
> >>         if (addr >= (unsigned long)_sinittext &&
> >>             addr < (unsigned long)_einittext)
> >> diff --git a/kernel/jump_label.c b/kernel/jump_label.c
> >> index 0bf2e8f5..3f804f4 100644
> >> --- a/kernel/jump_label.c
> >> +++ b/kernel/jump_label.c
> >> @@ -359,16 +359,44 @@ static void __jump_label_update(struct static_key
> >> *key,
> >>                                 struct jump_entry *stop)
> >>  {
> >>         for (; (entry < stop) && (jump_entry_key(entry) == key); entry++) {
> >> -               /*
> >> -                * entry->code set to 0 invalidates module init text
> >> sections
> >> -                * kernel_text_address() verifies we are not in core kernel
> >> -                * init code, see jump_label_invalidate_module_init().
> >> -                */
> >> -               if (entry->code && kernel_text_address(entry->code))
> >> +               /* entry->code set to 0 invalidates __init text sections */
> >> +               if (entry->code)
> >>                         arch_jump_label_transform(entry,
> >> jump_label_type(entry));
> >>         }
> >>  }
> >>
> >> +void jump_label_invalidate_init(struct module *mod)
> >> +{
> >> +       struct jump_entry *iter_start = mod->jump_entries;
> >> +       struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
> >> +       struct jump_entry *iter;
> >> +
> >> +       if (mod) {
> >> +               iter_start = mod->jump_entries;
> >> +               iter_stop = iter_start + mod->num_jump_entries;
> >> +       } else {
> >> +               jump_label_lock();
> >> +               iter_start = __start___jump_table;
> >> +               iter_stop = __stop___jump_table;
> >> +       }
> >> +
> >> +       for (iter = iter_start; iter < iter_stop; iter++) {
> >> +               if (mod) {
> >> +                       if (!within_module_init(iter->code, mod) &&
> >> +                           !within_module_init(iter->target, mod))
> >> +                               continue;
> >> +               } else {
> >> +                       if (!init_kernel_text(iter->code) &&
> >> +                           !init_kernel_text(iter->target))
> >> +                               continue;
> >> +               }
> >> +               iter->code = 0;
> >> +       }
> >> +
> >> +       if (!mod)
> >> +               jump_label_unlock();
> >> +}
> >> +
> >>  void __init jump_label_init(void)
> >>  {
> >>         struct jump_entry *iter_start = __start___jump_table;
> >> @@ -627,18 +655,6 @@ static void jump_label_del_module(struct module *mod)
> >>         }
> >>  }
> >>
> >> -static void jump_label_invalidate_module_init(struct module *mod)
> >> -{
> >> -       struct jump_entry *iter_start = mod->jump_entries;
> >> -       struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
> >> -       struct jump_entry *iter;
> >> -
> >> -       for (iter = iter_start; iter < iter_stop; iter++) {
> >> -               if (within_module_init(iter->code, mod))
> >> -                       iter->code = 0;
> >> -       }
> >> -}
> >> -
> >>  static int
> >>  jump_label_module_notify(struct notifier_block *self, unsigned long val,
> >>                          void *data)
> >> @@ -661,7 +677,7 @@ jump_label_module_notify(struct notifier_block
> >> *self, unsigned long val,
> >>                 jump_label_del_module(mod);
> >>                 break;
> >>         case MODULE_STATE_LIVE:
> >> -               jump_label_invalidate_module_init(mod);
> >> +               jump_label_invalidate_init(mod);
> >>                 break;
> >>         }
> >>
> >>
> >>
> >>
> >>> The dmesg is now:
> >>>
> >>> [    7.342618] IRQ10 -> 0:10
> >>> [    7.343025] IRQ11 -> 0:11
> >>> [    7.343450] IRQ12 -> 0:12
> >>> [    7.343770] IRQ13 -> 0:13
> >>> [    7.344079] IRQ14 -> 0:14
> >>> [    7.344379] IRQ15 -> 0:15
> >>> [    7.344690] .................................... done.
> >>> [    7.345271] Using IPI Shortcut mode
> >>> [    7.345682] sched_clock: Marking stable (7344687295, 0)->(7595176493,
> >>> -250489198)
> >>> [    7.346516] __jump_label_update: key: 0xcd3a0dec, code: 0xcca65b30,
> >>> target: 0xcca65b40
> >>> [    7.347600] __jump_label_update: key: 0xcd3a0dec, code: 0xcca65999,
> >>> target: 0xcca659b8
> >>> [    7.349195] __jump_label_update: key: 0xcd3a0dec, code: 0xcca65c50,
> >>> target: 0xcca65c9a
> >>> [    7.350075] __jump_label_update: key: 0xcd3a0dec, code: 0xcca65bf0,
> >>> target: 0xcca65bf8
> >>> [    7.350963] __jump_label_update: key: 0xcd3a0dec, code: 0xcca65b90,
> >>> target: 0xcca65b98
> >>> [    7.351848] __jump_label_update: key: 0xcd3a0dec, code: 0xcca65b68,
> >>> target: 0xcca65b63
> >>> [    7.353000] jump_label: disable sk_true: cd2adc60
> >>> [    7.353668] __jump_label_update: key: 0xcd2adc60, code: 0xcd31ae3c,
> >>> target: 0xcd31ae9d
> >>> [    7.354852] __jump_label_update: key: 0xcd2adc60, code: 0xcd31add7,
> >>> target: 0xcd31adde
> >>> [    7.356021] __jump_label_update: key: 0xcd2adc60, code: 0xcd31ae35,
> >>> target: 0xcd31ae3c
> >>> [    7.357023] __jump_label_update: key: 0xcd2adc60, code: 0xcd31add2,
> >>> target: 0xcd31ae8f
> >>> [    7.357970] jump_label: enable sk_false: cda8ef5c
> >>> [    7.358682] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ae46,
> >>> target: 0xcd31ae4d
> >>> [    7.359858] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ade5,
> >>> target: 0xcd31ae96
> >>> [    7.361049] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ae41,
> >>> target: 0xcd31aea1
> >>> [    7.362235] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31adde,
> >>> target: 0xcd31ade5
> >>> [    7.363408] jump_label: enable sk_true: cd2adc60
> >>> [    7.364100] __jump_label_update: key: 0xcd2adc60, code: 0xcd31ae3c,
> >>> target: 0xcd31ae9d
> >>> [    7.365282] __jump_label_update: key: 0xcd2adc60, code: 0xcd31add7,
> >>> target: 0xcd31adde
> >>> [    7.366465] __jump_label_update: key: 0xcd2adc60, code: 0xcd31ae35,
> >>> target: 0xcd31ae3c
> >>> [    7.367639] __jump_label_update: key: 0xcd2adc60, code: 0xcd31add2,
> >>> target: 0xcd31ae8f
> >>> [    7.368818] jump_label: disable sk_false: cda8ef5c
> >>> [    7.369538] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ae46,
> >>> target: 0xcd31ae4d
> >>> [    7.370716] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ade5,
> >>> target: 0xcd31ae96
> >>> [    7.371900] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ae41,
> >>> target: 0xcd31aea1
> >>> [    7.373087] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31adde,
> >>> target: 0xcd31ade5
> >>> [    7.374275] jump_label: disable sk_true: cd2adc60
> >>> [    7.374991] __jump_label_update: key: 0xcd2adc60, code: 0xcd31ae3c,
> >>> target: 0xcd31ae9d
> >>> [    7.376175] __jump_label_update: key: 0xcd2adc60, code: 0xcd31add7,
> >>> target: 0xcd31adde
> >>> [    7.377368] __jump_label_update: key: 0xcd2adc60, code: 0xcd31ae35,
> >>> target: 0xcd31ae3c
> >>> [    7.378565] __jump_label_update: key: 0xcd2adc60, code: 0xcd31add2,
> >>> target: 0xcd31ae8f
> >>> [    7.379750] jump_label: enable sk_false: cda8ef5c
> >>> [    7.380459] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ae46,
> >>> target: 0xcd31ae4d
> >>> [    7.381654] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ade5,
> >>> target: 0xcd31ae96
> >>> [    7.382855] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ae41,
> >>> target: 0xcd31aea1
> >>> [    7.384046] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31adde,
> >>> target: 0xcd31ade5
> >>> [    7.385243] jump_label: enable sk_true: cd2adc60
> >>> [    7.385944] __jump_label_update: key: 0xcd2adc60, code: 0xcd31ae3c,
> >>> target: 0xcd31ae9d
> >>> [    7.387109] __jump_label_update: key: 0xcd2adc60, code: 0xcd31add7,
> >>> target: 0xcd31adde
> >>> [    7.388276] __jump_label_update: key: 0xcd2adc60, code: 0xcd31ae35,
> >>> target: 0xcd31ae3c
> >>> [    7.389449] __jump_label_update: key: 0xcd2adc60, code: 0xcd31add2,
> >>> target: 0xcd31ae8f
> >>> [    7.390621] jump_label: disable sk_false: cda8ef5c
> >>> [    7.391337] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ae46,
> >>> target: 0xcd31ae4d
> >>> [    7.392509] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ade5,
> >>> target: 0xcd31ae96
> >>> [    7.393973] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31ae41,
> >>> target: 0xcd31aea1
> >>> [    7.395025] __jump_label_update: key: 0xcda8ef5c, code: 0xcd31adde,
> >>> target: 0xcd31ade5
> >>> [    7.398024] debug: unmapping init [mem 0xcd305000-0xcd38ffff]
> >>> [    7.398757] Write protecting the kernel text: 5796k
> >>> [    7.399449] Write protecting the kernel read-only data: 2736k
> >>>
> >>> Thanks,
> >>> Fengguang
> >>>
> >>>> Thanks,
> >>>>
> >>>> -Jason
> >>>>
> >>>>
> >>>> diff --git a/kernel/jump_label.c b/kernel/jump_label.c
> >>>> index 0bf2e8f5..433cc94 100644
> >>>> --- a/kernel/jump_label.c
> >>>> +++ b/kernel/jump_label.c
> >>>> @@ -364,8 +364,13 @@ static void __jump_label_update(struct static_key
> >>>> *key,
> >>>>                 * kernel_text_address() verifies we are not in core
> >>>> kernel
> >>>>                 * init code, see jump_label_invalidate_module_init().
> >>>>                 */
> >>>> -               if (entry->code && kernel_text_address(entry->code))
> >>>> +               if (entry->code && kernel_text_address(entry->code)) {
> >>>> +                       printk("%s: key: 0x%lx, code: 0x%lx, target:
> >>>> 0x%lx\n",
> >>>> +                              __func__, (unsigned
> >>>> long)jump_entry_key(entry),
> >>>> +                              (unsigned long)entry->code,
> >>>> +                              (unsigned long)entry->target);
> >>>>                        arch_jump_label_transform(entry,
> >>>> jump_label_type(entry));
> >>>> +               }
> >>>>        }
> >>>> }
> >>>>
> >>>> @@ -752,7 +757,9 @@ static __init int jump_label_test(void)
> >>>>                WARN_ON(static_branch_likely(&sk_false));
> >>>>                WARN_ON(static_branch_unlikely(&sk_false));
> >>>>
> >>>> +               printk("jump_label: disable sk_true: %p\n", &sk_true);
> >>>>                static_branch_disable(&sk_true);
> >>>> +               printk("jump_label: enable sk_false: %p\n", &sk_false);
> >>>>                static_branch_enable(&sk_false);
> >>>>
> >>>>                WARN_ON(static_key_enabled(&sk_true.key) == true);
> >>>> @@ -763,7 +770,9 @@ static __init int jump_label_test(void)
> >>>>                WARN_ON(!static_branch_likely(&sk_false));
> >>>>                WARN_ON(!static_branch_unlikely(&sk_false));
> >>>>
> >>>> +               printk("jump_label: enable sk_true: %p\n", &sk_true);
> >>>>                static_branch_enable(&sk_true);
> >>>> +               printk("jump_label: disable sk_false: %p\n", &sk_false);
> >>>>                static_branch_disable(&sk_false);
> >>>>        }
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> [   15.214834] IRQ15 -> 0:15
> >>>>> [   15.214834] .................................... done.
> >>>>> [   15.214834] Using IPI Shortcut mode
> >>>>> [   15.214834] sched_clock: Marking stable (15210834346,
> >>>>> 0)->(15797181340, -586346994)
> >>>>> [   17.667168] ------------[ cut here ]------------
> >>>>> [   17.668895] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:761
> >>>>> jump_label_test+0x63/0xab
> >>>>> [   17.672346] Modules linked in:
> >>>>> [   17.673475] CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.0-rc8 #29
> >>>>> [   17.675724] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
> >>>>> BIOS 1.10.2-1 04/01/2014
> >>>>> [   17.678755] task: c0020d00 task.stack: c0022000
> >>>>> [   17.680423] EIP: jump_label_test+0x63/0xab
> >>>>> [   17.681912] EFLAGS: 00210202 CPU: 0
> >>>>> [   17.683206] EAX: 00000001 EBX: 00000002 ECX: 00000004 EDX: 00000000
> >>>>> [   17.685501] ESI: c9918db6 EDI: 00000000 EBP: 00000000 ESP: c0023f40
> >>>>> [   17.687787]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> >>>>> [   17.689748] CR0: 80050033 CR2: 00000000 CR3: 09991000 CR4: 000006b0
> >>>>> [   17.692019] Call Trace:
> >>>>> [   17.692938]  ? do_one_initcall+0x2c/0x13a
> >>>>> [   17.694398]  ? parse_args+0x1af/0x300
> >>>>> [   17.695740]  ? kernel_init_freeable+0xce/0x161
> >>>>> [   17.697370]  ? kernel_init_freeable+0xee/0x161
> >>>>> [   17.698986]  ? rest_init+0xb0/0xb0
> >>>>> [   17.700236]  ? kernel_init+0x5/0xe0
> >>>>> [   17.701513]  ? ret_from_fork+0x19/0x30
> >>>>> [   17.702876] Code: c9 e8 3c 59 7b ff b8 5c cf 08 ca e8 a2 58 7b ff
> >>>>> a1 60 bc 8a c9 85 c0 74 02 0f ff a1 5c cf 08 ca 85 c0 75 02 0f ff 3e
> >>>>> 8d 74 26 00 <0f> ff e9 35 00 00 00 e9 34 00 00 00 3e 8d 74 26 00 0f
> >>>>> ff b8 60
> >>>>> [   17.709721] ---[ end trace f18711bfa2b1114e ]---
> >>>>> [   17.711418] ------------[ cut here ]------------
> >>>>> [   17.711418] ------------[ cut here ]------------
> >>>>> [   17.713092] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:762
> >>>>> jump_label_test+0x9f/0xab
> >>>>> [   17.716534] Modules linked in:
> >>>>> [   17.717665] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      
> >>>>> 4.14.0-rc8 #29
> >>>>> [   17.720349] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
> >>>>> BIOS 1.10.2-1 04/01/2014
> >>>>> [   17.723362] task: c0020d00 task.stack: c0022000
> >>>>> [   17.725004] EIP: jump_label_test+0x9f/0xab
> >>>>> [   17.726516] EFLAGS: 00210202 CPU: 0
> >>>>> [   17.727785] EAX: 00000001 EBX: 00000002 ECX: 00000004 EDX: 00000000
> >>>>> [   17.730058] ESI: c9918db6 EDI: 00000000 EBP: 00000000 ESP: c0023f40
> >>>>> [   17.732341]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> >>>>> [   17.734300] CR0: 80050033 CR2: 00000000 CR3: 09991000 CR4: 000006b0
> >>>>> [   17.736560] Call Trace:
> >>>>> [   17.737476]  ? do_one_initcall+0x2c/0x13a
> >>>>> [   17.738943]  ? parse_args+0x1af/0x300
> >>>>> [   17.740326]  ? kernel_init_freeable+0xce/0x161
> >>>>> [   17.741943]  ? kernel_init_freeable+0xee/0x161
> >>>>> [   17.743571]  ? rest_init+0xb0/0xb0
> >>>>> [   17.744820]  ? kernel_init+0x5/0xe0
> >>>>> [   17.746095]  ? ret_from_fork+0x19/0x30
> >>>>> [   17.747474] Code: 0f ff b8 60 bc 8a c9 e8 6a 58 7b ff b8 5c cf 08
> >>>>> ca e8 f0 58 7b ff 4b 74 1a bb 01 00 00 00 e9 6f ff ff ff 0f ff eb 86
> >>>>> 0f ff eb 95 <0f> ff eb c7 0f ff eb c8 31 c0 5b c3 b8 68 bc 8a c9 e9
> >>>>> 25 d4 77
> >>>>> [   17.754356] ---[ end trace f18711bfa2b1114f ]---
> >>>>> [   17.755649] ------------[ cut here ]------------
> >>>>> [   17.755649] ------------[ cut here ]------------
> >>>>> [   17.756863] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:763
> >>>>> jump_label_test+0xa3/0xab
> >>>>> [   17.759289] Modules linked in:
> >>>>> [   17.760082] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      
> >>>>> 4.14.0-rc8 #29
> >>>>> [   17.761983] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
> >>>>> BIOS 1.10.2-1 04/01/2014
> >>>>> [   17.764723] task: c0020d00 task.stack: c0022000
> >>>>> [   17.766378] EIP: jump_label_test+0xa3/0xab
> >>>>> [   17.767470] EFLAGS: 00210202 CPU: 0
> >>>>> [   17.769223] EAX: 00000001 EBX: 00000002 ECX: 00000004 EDX: 00000000
> >>>>> [   17.771188] ESI: c9918db6 EDI: 00000000 EBP: 00000000 ESP: c0023f40
> >>>>> [   17.773495]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> >>>>> [   17.774916] CR0: 80050033 CR2: 00000000 CR3: 09991000 CR4: 000006b0
> >>>>> [   17.776576] Call Trace:
> >>>>> [   17.777249]  ? do_one_initcall+0x2c/0x13a
> >>>>> [   17.778318]  ? parse_args+0x1af/0x300
> >>>>> [   17.779292]  ? kernel_init_freeable+0xce/0x161
> >>>>> [   17.780443]  ? kernel_init_freeable+0xee/0x161
> >>>>> [   17.781558]  ? rest_init+0xb0/0xb0
> >>>>> [   17.782463]  ? kernel_init+0x5/0xe0
> >>>>> [   17.783394]  ? ret_from_fork+0x19/0x30
> >>>>> [   17.784376] Code: bc 8a c9 e8 6a 58 7b ff b8 5c cf 08 ca e8 f0 58
> >>>>> 7b ff 4b 74 1a bb 01 00 00 00 e9 6f ff ff ff 0f ff eb 86 0f ff eb 95
> >>>>> 0f ff eb c7 <0f> ff eb c8 31 c0 5b c3 b8 68 bc 8a c9 e9 25 d4 77 ff
> >>>>> 80 3d a0
> >>>>> [   17.789290] ---[ end trace f18711bfa2b11150 ]---
> >>>>> [   17.790487] ------------[ cut here ]------------
> >>>>> [   17.790487] ------------[ cut here ]------------
> >>>>> [   17.792555] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:764
> >>>>> jump_label_test+0x74/0xab
> >>>>> [   17.796930] Modules linked in:
> >>>>> [   17.798391] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      
> >>>>> 4.14.0-rc8 #29
> >>>>> [   17.801754] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
> >>>>> BIOS 1.10.2-1 04/01/2014
> >>>>> [   17.805496] task: c0020d00 task.stack: c0022000
> >>>>> [   17.806702] EIP: jump_label_test+0x74/0xab
> >>>>> [   17.807786] EFLAGS: 00210202 CPU: 0
> >>>>> [   17.808726] EAX: 00000001 EBX: 00000002 ECX: 00000004 EDX: 00000000
> >>>>> [   17.810368] ESI: c9918db6 EDI: 00000000 EBP: 00000000 ESP: c0023f40
> >>>>> [   17.811994]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> >>>>> [   17.813424] CR0: 80050033 CR2: 00000000 CR3: 09991000 CR4: 000006b0
> >>>>> [   17.815063] Call Trace:
> >>>>> [   17.815748]  ? do_one_initcall+0x2c/0x13a
> >>>>> [   17.816822]  ? parse_args+0x1af/0x300
> >>>>> [   17.817812]  ? kernel_init_freeable+0xce/0x161
> >>>>> [   17.818986]  ? kernel_init_freeable+0xee/0x161
> >>>>> [   17.820172]  ? rest_init+0xb0/0xb0
> >>>>> [   17.821081]  ? kernel_init+0x5/0xe0
> >>>>> [   17.822033]  ? ret_from_fork+0x19/0x30
> >>>>> [   17.823051] Code: 60 bc 8a c9 85 c0 74 02 0f ff a1 5c cf 08 ca 85
> >>>>> c0 75 02 0f ff 3e 8d 74 26 00 0f ff e9 35 00 00 00 e9 34 00 00 00 3e
> >>>>> 8d 74 26 00 <0f> ff b8 60 bc 8a c9 e8 6a 58 7b ff b8 5c cf 08 ca e8
> >>>>> f0 58 7b
> >>>>> [   17.828103] ---[ end trace f18711bfa2b11151 ]---
> >>>>> [   17.829379] ------------[ cut here ]------------
> >>>>> [   17.829379] ------------[ cut here ]------------
> >>>>> [   17.830622] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:761
> >>>>> jump_label_test+0x63/0xab
> >>>>> [   17.833131] Modules linked in:
> >>>>> [   17.833973] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      
> >>>>> 4.14.0-rc8 #29
> >>>>> [   17.835923] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
> >>>>> BIOS 1.10.2-1 04/01/2014
> >>>>> [   17.838126] task: c0020d00 task.stack: c0022000
> >>>>> [   17.839355] EIP: jump_label_test+0x63/0xab
> >>>>> [   17.840447] EFLAGS: 00210202 CPU: 0
> >>>>> [   17.841384] EAX: 00000001 EBX: 00000001 ECX: 00000004 EDX: 00000000
> >>>>> [   17.843034] ESI: c9918db6 EDI: 00000000 EBP: 00000000 ESP: c0023f40
> >>>>> [   17.844698]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> >>>>> [   17.846127] CR0: 80050033 CR2: 00000000 CR3: 09991000 CR4: 000006b0
> >>>>> [   17.847794] Call Trace:
> >>>>> [   17.848472]  ? do_one_initcall+0x2c/0x13a
> >>>>> [   17.849547]  ? parse_args+0x1af/0x300
> >>>>> [   17.850590]  ? kernel_init_freeable+0xce/0x161
> >>>>> [   17.851783]  ? kernel_init_freeable+0xee/0x161
> >>>>> [   17.852977]  ? rest_init+0xb0/0xb0
> >>>>> [   17.854277]  ? kernel_init+0x5/0xe0
> >>>>> [   17.855571]  ? ret_from_fork+0x19/0x30
> >>>>> [   17.856955] Code: c9 e8 3c 59 7b ff b8 5c cf 08 ca e8 a2 58 7b ff
> >>>>> a1 60 bc 8a c9 85 c0 74 02 0f ff a1 5c cf 08 ca 85 c0 75 02 0f ff 3e
> >>>>> 8d 74 26 00 <0f> ff e9 35 00 00 00 e9 34 00 00 00 3e 8d 74 26 00 0f
> >>>>> ff b8 60
> >>>>> [   17.863904] ---[ end trace f18711bfa2b11152 ]---
> >>>>> [   17.865629] ------------[ cut here ]------------
> >>>>> [   17.865629] ------------[ cut here ]------------
> >>>>> [   17.867438] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:762
> >>>>> jump_label_test+0x9f/0xab
> >>>>> [   17.871148] Modules linked in:
> >>>>> [   17.872450] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      
> >>>>> 4.14.0-rc8 #29
> >>>>> [   17.875124] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
> >>>>> BIOS 1.10.2-1 04/01/2014
> >>>>> [   17.878364] task: c0020d00 task.stack: c0022000
> >>>>> [   17.880027] EIP: jump_label_test+0x9f/0xab
> >>>>> [   17.881544] EFLAGS: 00210202 CPU: 0
> >>>>> [   17.882901] EAX: 00000001 EBX: 00000001 ECX: 00000004 EDX: 00000000
> >>>>> [   17.885473] ESI: c9918db6 EDI: 00000000 EBP: 00000000 ESP: c0023f40
> >>>>> [   17.887934]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> >>>>> [   17.890009] CR0: 80050033 CR2: 00000000 CR3: 09991000 CR4: 000006b0
> >>>>> [   17.892339] Call Trace:
> >>>>> [   17.893316]  ? do_one_initcall+0x2c/0x13a
> >>>>> [   17.894822]  ? parse_args+0x1af/0x300
> >>>>> [   17.896911]  ? kernel_init_freeable+0xce/0x161
> >>>>> [   17.899626]  ? kernel_init_freeable+0xee/0x161
> >>>>> [   17.902732]  ? rest_init+0xb0/0xb0
> >>>>> [   17.904894]  ? kernel_init+0x5/0xe0
> >>>>> [   17.907031]  ? ret_from_fork+0x19/0x30
> >>>>> [   17.909383] Code: 0f ff b8 60 bc 8a c9 e8 6a 58 7b ff b8 5c cf 08
> >>>>> ca e8 f0 58 7b ff 4b 74 1a bb 01 00 00 00 e9 6f ff ff ff 0f ff eb 86
> >>>>> 0f ff eb 95 <0f> ff eb c7 0f ff eb c8 31 c0 5b c3 b8 68 bc 8a c9 e9
> >>>>> 25 d4 77
> >>>>> [   17.928301] ---[ end trace f18711bfa2b11153 ]---
> >>>>> [   17.931515] ------------[ cut here ]------------
> >>>>> [   17.931515] ------------[ cut here ]------------
> >>>>> [   17.943868] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:763
> >>>>> jump_label_test+0xa3/0xab
> >>>>> [   17.950147] Modules linked in:
> >>>>> [   17.952135] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      
> >>>>> 4.14.0-rc8 #29
> >>>>> [   17.956297] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
> >>>>> BIOS 1.10.2-1 04/01/2014
> >>>>> [   17.964556] task: c0020d00 task.stack: c0022000
> >>>>> [   17.985804] EIP: jump_label_test+0xa3/0xab
> >>>>> [   17.988269] EFLAGS: 00210202 CPU: 0
> >>>>> [   17.990407] EAX: 00000001 EBX: 00000001 ECX: 00000004 EDX: 00000000
> >>>>> [   17.996820] ESI: c9918db6 EDI: 00000000 EBP: 00000000 ESP: c0023f40
> >>>>> [   18.000174]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> >>>>> [   18.003505] CR0: 80050033 CR2: 00000000 CR3: 09991000 CR4: 000006b0
> >>>>> [   18.007251] Call Trace:
> >>>>> [   18.008897]  ? do_one_initcall+0x2c/0x13a
> >>>>> [   18.016611]  ? parse_args+0x1af/0x300
> >>>>> [   18.018854]  ? kernel_init_freeable+0xce/0x161
> >>>>> [   18.021573]  ? kernel_init_freeable+0xee/0x161
> >>>>> [   18.024418]  ? rest_init+0xb0/0xb0
> >>>>> [   18.026326]  ? kernel_init+0x5/0xe0
> >>>>> [   18.028418]  ? ret_from_fork+0x19/0x30
> >>>>> [   18.031569] Code: bc 8a c9 e8 6a 58 7b ff b8 5c cf 08 ca e8 f0 58
> >>>>> 7b ff 4b 74 1a bb 01 00 00 00 e9 6f ff ff ff 0f ff eb 86 0f ff eb 95
> >>>>> 0f ff eb c7 <0f> ff eb c8 31 c0 5b c3 b8 68 bc 8a c9 e9 25 d4 77 ff
> >>>>> 80 3d a0
> >>>>> [   18.050687] ---[ end trace f18711bfa2b11154 ]---
> >>>>> [   18.060661] ------------[ cut here ]------------
> >>>>> [   18.060661] ------------[ cut here ]------------
> >>>>> [   18.064196] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:764
> >>>>> jump_label_test+0x74/0xab
> >>>>> [   18.076475] Modules linked in:
> >>>>> [   18.083657] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      
> >>>>> 4.14.0-rc8 #29
> >>>>> [   18.101662] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
> >>>>> BIOS 1.10.2-1 04/01/2014
> >>>>> [   18.109794] task: c0020d00 task.stack: c0022000
> >>>>> [   18.112995] EIP: jump_label_test+0x74/0xab
> >>>>> [   18.115714] EFLAGS: 00210202 CPU: 0
> >>>>> [   18.118265] EAX: 00000001 EBX: 00000001 ECX: 00000004 EDX: 00000000
> >>>>> [   18.125065] ESI: c9918db6 EDI: 00000000 EBP: 00000000 ESP: c0023f40
> >>>>> [   18.128653]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
> >>>>> [   18.130955] CR0: 80050033 CR2: 00000000 CR3: 09991000 CR4: 000006b0
> >>>>> [   18.136512] Call Trace:
> >>>>> [   18.137684]  ? do_one_initcall+0x2c/0x13a
> >>>>> [   18.141253]  ? parse_args+0x1af/0x300
> >>>>> [   18.143612]  ? kernel_init_freeable+0xce/0x161
> >>>>> [   18.146407]  ? kernel_init_freeable+0xee/0x161
> >>>>> [   18.149921]  ? rest_init+0xb0/0xb0
> >>>>> [   18.151599]  ? kernel_init+0x5/0xe0
> >>>>> [   18.153257]  ? ret_from_fork+0x19/0x30
> >>>>> [   18.155487] Code: 60 bc 8a c9 85 c0 74 02 0f ff a1 5c cf 08 ca 85
> >>>>> c0 75 02 0f ff 3e 8d 74 26 00 0f ff e9 35 00 00 00 e9 34 00 00 00 3e
> >>>>> 8d 74 26 00 <0f> ff b8 60 bc 8a c9 e8 6a 58 7b ff b8 5c cf 08 ca e8
> >>>>> f0 58 7b
> >>>>> [   18.167223] ---[ end trace f18711bfa2b11155 ]---
> >>>>>
> >>>>> Attached the full dmesg and kconfig.
> >>>>>
> >>>>> Thanks,
> >>>>> Fengguang
> >>>>>
> >>>>
> >>
> > 
> 

      reply	other threads:[~2017-11-10 22:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-07  9:27 [jump_label_test] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:761 jump_label_test+0x63/0xab Fengguang Wu
2017-11-07 22:17 ` Jason Baron
2017-11-08  7:01   ` Fengguang Wu
2017-11-08 15:54     ` Jason Baron
2017-11-09 20:13     ` Jason Baron
2017-11-09 20:56       ` Paul E. McKenney
2017-11-10 21:32         ` Jason Baron
2017-11-10 22:36           ` Paul E. McKenney [this message]

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=20171110223646.GQ3624@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=fengguang.wu@intel.com \
    --cc=jbaron@akamai.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=mingo@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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.