lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140730141732.GP16537@localhost>
Date:	Wed, 30 Jul 2014 22:17:32 +0800
From:	Fengguang Wu <fengguang.wu@...el.com>
To:	Andy Lutomirski <luto@...capital.net>,
	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
Cc:	Jet Chen <jet.chen@...el.com>, Su Tao <tao.su@...el.com>,
	Yuanhan Liu <yuanhan.liu@...el.com>, LKP <lkp@...org>,
	linux-kernel@...r.kernel.org
Subject: Re: [x86,kaslr] [    0.000000] WARNING: CPU: 0 PID: 0 at
 arch/x86/kernel/cpu/common.c:1422 warn_pre_alternatives()

On Wed, Jul 30, 2014 at 10:07:56PM +0800, Fengguang Wu wrote:
> Hi Andy,
> 
> Here is another WARNING message for the same commit.
> 
> commit d07c7f1ed61789e175fa975134855be32263be2c
> Author:     Andy Lutomirski <luto@...capital.net>
> AuthorDate: Tue Jul 15 18:34:20 2014 -0700
> Commit:     Andy Lutomirski <luto@...capital.net>
> CommitDate: Wed Jul 16 10:01:27 2014 -0700
> 
>     x86,kaslr: Use MSR_KVM_GET_RNG_SEED for KASLR if available
>     
>     It's considerably better than any of the alternatives on KVM.
>     
>     Rather than reinventing all of the cpu feature query code, this fixes
>     native_cpuid to work in PIC objects.
>     
>     I haven't combined it with boot/cpuflags.c's cpuid implementation:
>     including asm/processor.h from boot/cpuflags.c results in a flood of
>     unrelated errors, and fixing it might be messy.
>     
>     Signed-off-by: Andy Lutomirski <luto@...capital.net>
> 
> +-------------------------------------------------------------------------+------------+------------+
> |                                                                         | c6f07a6360 | d07c7f1ed6 |
> +-------------------------------------------------------------------------+------------+------------+
> | boot_successes                                                          | 1000       | 636        |
> | boot_failures                                                           | 0          | 84         |
> | WARNING:CPU:PID:at_arch/x86/kernel/cpu/common.c:warn_pre_alternatives() | 0          | 84         |
> | BUG:unable_to_handle_kernel_NULL_pointer_dereference                    | 0          | 84         |
> | Oops                                                                    | 0          | 84         |
> | RIP:__free_pages_bootmem                                                | 0          | 84         |
> | Kernel_panic-not_syncing:Fatal_exception                                | 0          | 84         |
> | backtrace:free_all_bootmem                                              | 0          | 84         |
> | backtrace:mem_init                                                      | 0          | 84         |
> +-------------------------------------------------------------------------+------------+------------+
> 
> [    0.000000] PID hash table entries: 2048 (order: 2, 16384 bytes)
> [    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x0
> [    0.000000] ------------[ cut here ]------------
> [    0.000000] WARNING: CPU: 0 PID: 0 at arch/x86/kernel/cpu/common.c:1422 warn_pre_alternatives+0x1e/0x20()
> [    0.000000] You're using static_cpu_has before alternatives have run!
> [    0.000000] Modules linked in:
> [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.16.0-rc5-00004-gd07c7f1 #4
> [    0.000000] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
> [    0.000000]  0000000000000000 ffffffff81803c18 ffffffff813a7bd2 ffffffff81803c60
> [    0.000000]  ffffffff81803c50 ffffffff810a5485 ffffffff810102f9 ffffffff81803e08
> [    0.000000]  0000000000000002 000000000000077c 0000000000000000 ffffffff81803cb0
> [    0.000000] Call Trace:
> [    0.000000]  [<ffffffff813a7bd2>] dump_stack+0x4d/0x66
> [    0.000000]  [<ffffffff810a5485>] warn_slowpath_common+0x7f/0x98
> [    0.000000]  [<ffffffff810102f9>] ? warn_pre_alternatives+0x1e/0x20
> [    0.000000]  [<ffffffff810a54ea>] warn_slowpath_fmt+0x4c/0x4e
> [    0.000000]  [<ffffffff813b14e3>] ? restore_args+0x30/0x30
> [    0.000000]  [<ffffffff810102f9>] warn_pre_alternatives+0x1e/0x20
> [    0.000000]  [<ffffffff810378b5>] __do_page_fault+0x1bd/0x7ca
> [    0.000000]  [<ffffffff810f5782>] ? console_unlock+0x377/0x3c1
> [    0.000000]  [<ffffffff810e912e>] ? trace_hardirqs_off+0xd/0xf
> [    0.000000]  [<ffffffff813afcc5>] ? _raw_spin_unlock_irqrestore+0x40/0x5e
> [    0.000000]  [<ffffffff81b93d22>] ? __next_mem_range_rev+0x205/0x232
> [    0.000000]  [<ffffffff810e90e0>] ? trace_hardirqs_off_caller+0xe7/0x128
> [    0.000000]  [<ffffffff81226d8a>] ? trace_hardirqs_off_thunk+0x3a/0x3c
> [    0.000000]  [<ffffffff81037ee4>] do_page_fault+0x22/0x27
> [    0.000000]  [<ffffffff813b2378>] page_fault+0x28/0x30
> [    0.000000]  [<ffffffff81b74f76>] ? __free_pages_bootmem+0x2d/0xf9
> [    0.000000]  [<ffffffff81b78d61>] __free_memory_core+0xa7/0xbe
> [    0.000000]  [<ffffffff81b78fe9>] free_all_bootmem+0x51/0xd2
> [    0.000000]  [<ffffffff81b67188>] mem_init+0x5c/0x8d
> [    0.000000]  [<ffffffff81b53cca>] start_kernel+0x1f7/0x53d
> [    0.000000]  [<ffffffff81b53814>] ? set_init_arg+0x55/0x55
> [    0.000000]  [<ffffffff81b53120>] ? early_idt_handlers+0x120/0x120
> [    0.000000]  [<ffffffff81b53471>] x86_64_start_reservations+0x2a/0x2c
> [    0.000000]  [<ffffffff81b535b3>] x86_64_start_kernel+0x140/0x14d
> [    0.000000] ---[ end trace e4962b91bd705c64 ]---
> [    0.000000] BUG: unable to handle kernel NULL pointer dereference at 000000000000077c


Interestingly, the other bisect result for the above WARNING message
is

commit ddfb3b363440172d62ce62fbffdf046670d3ce2b
Author:     Paul E. McKenney <paulmck@...ux.vnet.ibm.com>
AuthorDate: Fri Jul 11 11:30:24 2014 -0700
Commit:     Paul E. McKenney <paulmck@...ux.vnet.ibm.com>
CommitDate: Mon Jul 14 04:48:30 2014 -0700

    rcu: Create rcuo kthreads only for onlined CPUs
    
    RCU currently uses for_each_possible_cpu() to spawn rcuo kthreads,
    which can result in more rcuo kthreads than one would expect, for
    example, derRichard reported 64 CPUs worth of rcuo kthreads on an
    8-CPU image.  This commit therefore creates rcuo kthreads only for
    those CPUs that actually come online.
    
    This was reported by derRichard on the OFTC IRC network.
    
    Reported-by: Richard Weinberger <richard@....at>
    Signed-off-by: Paul E. McKenney <paulmck@...ux.vnet.ibm.com>
    Reviewed-by: Josh Triplett <josh@...htriplett.org>

===================================================
PARENT COMMIT NOT CLEAN. LOOK OUT FOR WRONG BISECT!
===================================================
Attached dmesg for the parent commit, too, to help confirm whether it is a noise error.

+-------------------------------------------------------------------------+------------+------------+---------------+
|                                                                         | 08e8ea1b45 | ddfb3b3634 | next-20140716 |
+-------------------------------------------------------------------------+------------+------------+---------------+
| boot_successes                                                          | 0          | 0          | 0             |
| boot_failures                                                           | 80         | 20         | 11            |
| BUG:unable_to_handle_kernel_NULL_pointer_dereference                    | 80         | 20         | 11            |
| Oops                                                                    | 80         | 20         | 11            |
| RIP:__bitmap_or                                                         | 80         | 20         | 11            |
| Kernel_panic-not_syncing:Fatal_exception                                | 80         | 20         | 11            |
| backtrace:kernel_init_freeable                                          | 80         |            |               |
| WARNING:CPU:PID:at_arch/x86/kernel/cpu/common.c:warn_pre_alternatives() | 0          | 20         | 11            |
| backtrace:async_page_fault                                              | 0          | 20         | 11            |
| backtrace:rcu_init_one                                                  | 0          | 20         | 11            |
| backtrace:rcu_init                                                      | 0          | 20         | 11            |
+-------------------------------------------------------------------------+------------+------------+---------------+

[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: CPU: 0 PID: 0 at arch/x86/kernel/cpu/common.c:1422 warn_pre_alternatives+0x2e/0x40()
[    0.000000] You're using static_cpu_has before alternatives have run!
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.16.0-rc1-00050-gddfb3b3 #1
[    0.000000] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
[    0.000000]  0000000000000009 ffffffff82603bc8 ffffffff81cca80d ffffffff82603c10
[    0.000000]  ffffffff82603c00 ffffffff810e6627 0000000000000000 0000000000000000
[    0.000000]  0000000000000000 ffffffff826186c0 00000000000000a8 ffffffff82603c60
[    0.000000] Call Trace:
[    0.000000]  [<ffffffff81cca80d>] dump_stack+0xd2/0x18e
[    0.000000]  [<ffffffff810e6627>] warn_slowpath_common+0xc7/0x100
[    0.000000]  [<ffffffff810e6747>] warn_slowpath_fmt+0x57/0x70
[    0.000000]  [<ffffffff8100e23d>] ? print_context_stack+0x16d/0x210
[    0.000000]  [<ffffffff8102f69e>] warn_pre_alternatives+0x2e/0x40
[    0.000000]  [<ffffffff810839b6>] __do_page_fault+0x2a6/0x1110
[    0.000000]  [<ffffffff8116c112>] ? sched_clock_cpu+0x62/0x2b0
[    0.000000]  [<ffffffff81084ed6>] trace_do_page_fault+0x556/0x770
[    0.000000]  [<ffffffff8107c84b>] do_async_page_fault+0x3b/0x1d0
[    0.000000]  [<ffffffff81ce0d78>] async_page_fault+0x28/0x30
[    0.000000]  [<ffffffff81860e78>] ? __bitmap_or+0x38/0x50
[    0.000000]  [<ffffffff830bd666>] rcu_init_one+0x773/0xa5c
[    0.000000]  [<ffffffff830bdf59>] rcu_init+0x60a/0x6e9
[    0.000000]  [<ffffffff8308d891>] start_kernel+0x46f/0x9f9
[    0.000000]  [<ffffffff8308ce3f>] ? set_init_arg+0xec/0xec
[    0.000000]  [<ffffffff8308c120>] ? early_idt_handlers+0x120/0x120
[    0.000000]  [<ffffffff8308c775>] x86_64_start_reservations+0x64/0x6d
[    0.000000]  [<ffffffff8308c943>] x86_64_start_kernel+0x1c5/0x1db
[    0.000000] ---[ end trace 6f39130c1118624e ]---
[    0.000000] ------------[ cut here ]------------

git bisect start d4f4d1d45cd1b9aa60e61c2eab25a5d9a79a26f3 1795cd9b3a91d4b5473c97f491d63892442212ab --
git bisect good 8ab2f8e06b863345c4366c7b94935d105fd4ca01  # 04:50     20+      0  Merge remote-tracking branch 'bluetooth/master'
git bisect good a37140130e816ab7965645bb7f5d2d62e6ed34ca  # 05:06     20+      0  Merge remote-tracking branch 'ftrace/for-next'
git bisect  bad 302d91d7dd1ad5981fe014b65caac5ac3c84aed8  # 05:13      0-      3  Merge remote-tracking branch 'cgroup/for-next'
git bisect  bad de129c7519ac0a86b31124ba79ad05102b30681d  # 05:51      0-      1  Merge remote-tracking branch 'leds/for-next'
git bisect  bad 67d8d9fec86b5f36a2dbecfdbe8adf59f4ce5906  # 06:34      0-      3  Merge remote-tracking branch 'xen-tip/linux-next'
git bisect  bad f9274c7576848a9f0385a4206c6b78bbf40da54e  # 06:52      0-     20  Merge remote-tracking branch 'kvm/linux-next'
git bisect  bad bdc23fbab64e104ba656b931d9ed6ba9b4bc25f9  # 07:07      0-     20  Merge remote-tracking branch 'rcu/rcu/next'
git bisect good b41d1b924d0bd41a225a17f39297b9de0dca93d9  # 07:16     20+      0  rcu: Fix a sparse warning in rcu_report_unblock_qs_rnp()
git bisect good e5ca9705168d0167ce68361045422acd12941be0  # 08:08     20+     20  rcu: Remove remaining read-modify-write ACCESS_ONCE() calls
git bisect good f2c8bbd3e06206b7af836d62ece5fc73c393a3f6  # 08:29     20+     20  rcu: Return false instead of 0 in rcu_nocb_adopt_orphan_cbs()
git bisect good 104c6d8fa94553b1b51f5d8094e619e4aa120b08  # 08:35     20+     20  rcutorture: Use bash shell for all the test scripts
git bisect good 08e8ea1b45c2f62aadc6dff73ade2942a28030bb  # 08:41     20+     20  rcu: Rationalize kthread spawning
git bisect  bad ddfb3b363440172d62ce62fbffdf046670d3ce2b  # 08:47      0-     20  rcu: Create rcuo kthreads only for onlined CPUs
# first bad commit: [ddfb3b363440172d62ce62fbffdf046670d3ce2b] rcu: Create rcuo kthreads only for onlined CPUs
git bisect good 08e8ea1b45c2f62aadc6dff73ade2942a28030bb  # 08:48     60+     80  rcu: Rationalize kthread spawning
git bisect  bad d4f4d1d45cd1b9aa60e61c2eab25a5d9a79a26f3  # 08:48      0-     11  Add linux-next specific files for 20140716
git bisect good b6603fe574af289dbe9eb9fb4c540bca04f5a053  # 08:57     60+      0  Merge tag 'for-linus-20140716' of git://git.infradead.org/linux-mtd
git bisect  bad d4f4d1d45cd1b9aa60e61c2eab25a5d9a79a26f3  # 08:57      0-     11  Add linux-next specific files for 20140716


This script may reproduce the error.

----------------------------------------------------------------------------
#!/bin/bash

kernel=$1

kvm=(
	qemu-system-x86_64
	-cpu kvm64
	-enable-kvm
	-kernel $kernel
	-m 320
	-smp 2
	-net nic,vlan=1,model=e1000
	-net user,vlan=1
	-boot order=nc
	-no-reboot
	-watchdog i6300esb
	-rtc base=localtime
	-serial stdio
	-display none
	-monitor null 
)

append=(
	hung_task_panic=1
	earlyprintk=ttyS0,115200
	debug
	apic=debug
	sysrq_always_enabled
	rcupdate.rcu_cpu_stall_timeout=100
	panic=10
	softlockup_panic=1
	nmi_watchdog=panic
	prompt_ramdisk=0
	console=ttyS0,115200
	console=tty0
	vga=normal
	root=/dev/ram0
	rw
	drbd.minor_count=8
)

"${kvm[@]}" --append "${append[*]}"
----------------------------------------------------------------------------

Thanks,
Fengguang

View attachment "dmesg-quantal-ivb41-15:20140717084615:x86_64-randconfig-iv1-07170145::" of type "text/plain" (17865 bytes)

View attachment "dmesg-quantal-ivb41-100:20140717084820:x86_64-randconfig-iv1-07170145::" of type "text/plain" (29151 bytes)

Download attachment "x86_64-randconfig-iv1-07170145-d4f4d1d45cd1b9aa60e61c2eab25a5d9a79a26f3-WARNING:---at----warn_pre_alternatives+-x-74432.log" of type "application/octet-stream" (51445 bytes)

View attachment "config-3.16.0-rc1-00050-gddfb3b3" of type "text/plain" (63483 bytes)

_______________________________________________
LKP mailing list
LKP@...ux.intel.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ