Messages in this thread | | | Subject | Re: [jump_label_test] WARNING: CPU: 0 PID: 1 at kernel/jump_label.c:761 jump_label_test+0x63/0xab | From | Jason Baron <> | Date | Fri, 10 Nov 2017 16:32:45 -0500 |
| |
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.
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 >>>>> >>>> >> >
| |