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]
Date:	Tue, 11 Aug 2009 11:12:02 -0700
From:	"Yu, Fenghua" <fenghua.yu@...el.com>
To:	'Tejun Heo' <tj@...nel.org>
CC:	"Luck, Tony" <tony.luck@...el.com>,
	'lkml' <linux-kernel@...r.kernel.org>,
	"'linux-arch@...r.kernel.org'" <linux-arch@...r.kernel.org>,
	"'linux-ia64@...r.kernel.org'" <linux-ia64@...r.kernel.org>
Subject: RE: [RFC PATCH] ia64: convert to dynamic percpu allocator

>Yu, Fenghua wrote:
>
>> After cloning from
>> git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git, kernel
>> built with CONFIG_DISCONTIGMEM=y boots ok.
>>
>> After pulling from review-ia64, kernel built with
>> CONFIG_DISCONTIGMEM=y can not boot on ia64. After loading kernel and
>> initrd, system hangs and doesn't show anything on serial port.
>
>Heh, I didn't really expect it to work that easily either.  The code
>builds but is completely untested (I can't test them).  Can you try to
>track it down?  Serial console should be up and running at that point,
>no?
>
>Thanks.

IA64 kernel boots hit this in mm/percpu.c
BUG_ON(ai->unit_size < size_sum);
ai->unit_size is PERCPU_PAGE_SIZE which is 64K on IA64. size_sum is relatively smaller than 64K.

Will you define PERCPU_DYNAMIC_RESERVE and PERCPU_MODULE_RESERVE as PAGE_SIZE or the bigger one between the current definition and PAGE_SIZE?

Even with the above PAGE_SIZE changes, the kernel still reports warning from 952: WARN_ON(chunk->immutable) and then panic.

Calibrating delay loop... 1593.34 BogoMIPS (lpj=3186688)
------------[ cut here ]------------
WARNING: at mm/percpu.c:952 pcpu_alloc+0x610/0xfe0()
Modules linked in:

Call Trace:
 [<a0000001000162e0>] show_stack+0x40/0xa0
                                sp=a000000100c7fc30 bsp=a000000100c711f0
 [<a000000100016370>] dump_stack+0x30/0x60
                                sp=a000000100c7fe00 bsp=a000000100c711d8
 [<a00000010009b340>] warn_slowpath_common+0xc0/0x100
                                sp=a000000100c7fe00 bsp=a000000100c711a0
 [<a00000010009b3b0>] warn_slowpath_null+0x30/0x60
                                sp=a000000100c7fe00 bsp=a000000100c71178
 [<a00000010018d3f0>] pcpu_alloc+0x610/0xfe0
                                sp=a000000100c7fe00 bsp=a000000100c710e0
 [<a00000010018de50>] __alloc_percpu+0x30/0x60
                                sp=a000000100c7fe10 bsp=a000000100c710b8
 [<a00000010044a180>] __percpu_counter_init+0x60/0x120
                                sp=a000000100c7fe10 bsp=a000000100c71090
 [<a000000100ac1110>] mmap_init+0x30/0x60
                                sp=a000000100c7fe20 bsp=a000000100c71078
 [<a000000100ab6420>] proc_caches_init+0x1a0/0x1c0
                                sp=a000000100c7fe20 bsp=a000000100c71060
 [<a000000100aa1520>] start_kernel+0x7e0/0x8c0
                                sp=a000000100c7fe20 bsp=a000000100c70fe0
 [<a00000010085be60>] _start+0x760/0x780
                                sp=a000000100c7fe30 bsp=a000000100c70f40
---[ end trace 4eaa2a86a8e2da22 ]---
------------[ cut here ]------------
WARNING: at mm/vmalloc.c:106 vmap_page_range_noflush+0x3d0/0x460()
Modules linked in:

Call Trace:
 [<a0000001000162e0>] show_stack+0x40/0xa0
                                sp=a000000100c7fc40 bsp=a000000100c71300
 [<a000000100016370>] dump_stack+0x30/0x60
                                sp=a000000100c7fe10 bsp=a000000100c712e8
 [<a00000010009b340>] warn_slowpath_common+0xc0/0x100
                                sp=a000000100c7fe10 bsp=a000000100c712b0
 [<a00000010009b3b0>] warn_slowpath_null+0x30/0x60
                                sp=a000000100c7fe10 bsp=a000000100c71288
 [<a00000010015f470>] vmap_page_range_noflush+0x3d0/0x460
                                sp=a000000100c7fe10 bsp=a000000100c71210
 [<a00000010015f590>] vmap_page_range+0x30/0x60
                                sp=a000000100c7fe10 bsp=a000000100c711d0
 [<a00000010015f610>] map_vm_area+0x50/0xa0
                                sp=a000000100c7fe10 bsp=a000000100c711a0
 [<a00000010015f950>] __vmalloc_area_node+0x2f0/0x3a0
                                sp=a000000100c7fe10 bsp=a000000100c71158
 [<a00000010015fae0>] __vmalloc_node+0xe0/0x120
                                sp=a000000100c7fe20 bsp=a000000100c71118
 [<a00000010015fe60>] __vmalloc+0x40/0x60
                                sp=a000000100c7fe20 bsp=a000000100c710e8
 [<a000000100ac0350>] alloc_large_system_hash+0x2f0/0x4e0
                                sp=a000000100c7fe20 bsp=a000000100c71088
 [<a000000100ac58b0>] vfs_caches_init+0x150/0x280
                                sp=a000000100c7fe20 bsp=a000000100c71060
 [<a000000100aa1540>] start_kernel+0x800/0x8c0
                                sp=a000000100c7fe20 bsp=a000000100c70fe0
 [<a00000010085be60>] _start+0x760/0x780
                                sp=a000000100c7fe30 bsp=a000000100c70f40
---[ end trace 4eaa2a86a8e2da23 ]---
Dentry cache hash table entries: 1048576 (order: 7, 8388608 bytes)
Inode-cache hash table entries: 1048576 (order: 7, 8388608 bytes)
Mount-cache hash table entries: 4096
Unable to handle kernel paging request at virtual address 00d0000000000000
swapper[0]: Oops 8813272891392 [1]
Modules linked in:

Pid: 0, CPU 0, comm:              swapper
psr : 00001010084a2018 ifs : 800000000000038c ip  : [<a0000001001840e0>]    Tain
ted: G        W  (2.6.31-rc5)
ip is at kmem_cache_alloc+0xc0/0x1a0
unat: 0000000000000000 pfs : 000000000000040b rsc : 0000000000000003
rnat: a000000101362dc8 bsps: a000000101363f6c pr  : 656960155aa6a659
ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f
csd : 0930ffff00078000 ssd : 0930ffff00078000
b0  : a0000001001c6290 b6  : a0000001002fefe0 b7  : a000000100195b00
f6  : 0fff592492492483a4000 f7  : 0ffe7cd08000000000000
f8  : 1000f8000000000000000 f9  : 10008e000000000000000
f10 : 1000592492492483a4000 f11 : 1003e0000000000000049
r1  : a000000101547240 r2  : a000000101246438 r3  : a0000001011cacf0
r8  : 0000000000000000 r9  : 0000000000000000 r10 : a000000100c70ee4
r11 : 00000000003fffff r12 : a000000100c7fe20 r13 : a000000100c70000
r14 : 00d0000000000000 r15 : a00000010124644c r16 : a000000100db4f58
r17 : a000000101347b70 r18 : 656960155aa6a659 r19 : a000000100a004c0
r20 : 0000000000000000 r21 : e00000018012c098 r22 : 0000000000000006
r23 : 0000000000000008 r24 : 0000000000000370 r25 : e000000180130010
r26 : 0000000000000020 r27 : a000000100cb0200 r28 : a000000101347740
r29 : 0000000080000000 r30 : 00000000000000c1 r31 : a000000101246340

Call Trace:
 [<a0000001000162e0>] show_stack+0x40/0xa0
                                sp=a000000100c7f9f0 bsp=a000000100c712a0
 [<a000000100016bf0>] show_regs+0x850/0x8a0
                                sp=a000000100c7fbc0 bsp=a000000100c71248
 [<a00000010003a170>] die+0x1b0/0x2c0
                                sp=a000000100c7fbc0 bsp=a000000100c71200
 [<a000000100064570>] ia64_do_page_fault+0x8d0/0xa40
                                sp=a000000100c7fbc0 bsp=a000000100c711a8
 [<a00000010000c780>] ia64_native_leave_kernel+0x0/0x270
                                sp=a000000100c7fc50 bsp=a000000100c711a8
 [<a0000001001840e0>] kmem_cache_alloc+0xc0/0x1a0
                                sp=a000000100c7fe20 bsp=a000000100c71148
 [<a0000001001c6290>] alloc_vfsmnt+0x30/0x2e0
                                sp=a000000100c7fe20 bsp=a000000100c71108
 [<a000000100197450>] vfs_kern_mount+0x30/0x1a0
                                sp=a000000100c7fe20 bsp=a000000100c710c8
 [<a000000100197600>] kern_mount_data+0x40/0x60
                                sp=a000000100c7fe20 bsp=a000000100c710a0
 [<a000000100ac6970>] bdev_cache_init+0xb0/0x140
                                sp=a000000100c7fe20 bsp=a000000100c71088
 [<a000000100ac59a0>] vfs_caches_init+0x240/0x280
                                sp=a000000100c7fe20 bsp=a000000100c71060
 [<a000000100aa1540>] start_kernel+0x800/0x8c0
                                sp=a000000100c7fe20 bsp=a000000100c70fe0
 [<a00000010085be60>] _start+0x760/0x780
                                sp=a000000100c7fe30 bsp=a000000100c70f40
Disabling lock debugging due to kernel taint
Kernel panic - not syncing: Attempted to kill the idle task!

Thanks.

-Fenghua
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ