* 2.6.28-rc4 mem_cgroup_charge_common panic
@ 2008-11-10 21:43 Badari Pulavarty
2008-11-11 1:14 ` KAMEZAWA Hiroyuki
2008-11-13 11:27 ` [BUGFIX][PATCH] memory hotplug: fix notiier chain return value (Was Re: 2.6.28-rc4 mem_cgroup_charge_common panic) KAMEZAWA Hiroyuki
0 siblings, 2 replies; 12+ messages in thread
From: Badari Pulavarty @ 2008-11-10 21:43 UTC (permalink / raw)
To: KAMEZAWA Hiroyuki; +Cc: Andrew Morton, linux-mm, linux-kernel
Hi KAME,
Thank you for the fix for online/offline page_cgroup panic.
While running memory offline/online tests ran into another
mem_cgroup panic.
Thanks,
Badari
Unable to handle kernel paging request for data at address 0x00000020
Faulting instruction address: 0xc0000000001055e4
Oops: Kernel access of bad area, sig: 11 [#2]
SMP NR_CPUS=32 NUMA pSeries
Modules linked in:
NIP: c0000000001055e4 LR: c00000000010557c CTR: c0000000000bfb74
REGS: c0000000f6c7f1b0 TRAP: 0300 Tainted: G D (2.6.28-rc4)
MSR: 8000000000009032 <EE,ME,IR,DR> CR: 44044422 XER: 20000018
DAR: 0000000000000020, DSISR: 0000000042000000
TASK = c0000000f6c56cc0[4610] 'crash' THREAD: c0000000f6c7c000 CPU: 0
GPR00: c0000000e910b560 c0000000f6c7f430 c000000000b36fc0 0000000000000001
GPR04: c000000005355278 0000000000000001 0000000000000000 0000000000000000
GPR08: c000000005355290 0000000000000018 c0000000e910b558 c0000000e910b548
GPR12: 0000000000000000 c000000000b58300 00000400001ca30a 0000000000000000
GPR16: 0000000000000000 0000000000000006 c0000000d43cb5c0 c0000000e66d0b88
GPR20: 0000000000000004 0000000000000000 c0000000e64c6180 0000000000000000
GPR24: 00000000000000d0 0000000000000005 c000000000bac418 0000000000000001
GPR28: c0000000e910b538 c000000005355278 c000000000aacad8 c0000000f6c7f430
NIP [c0000000001055e4] .mem_cgroup_charge_common+0x26c/0x330
LR [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330
Call Trace:
[c0000000f6c7f430] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 (unreliable)
[c0000000f6c7f4f0] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154
[c0000000f6c7f590] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c
[c0000000f6c7f640] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4
[c0000000f6c7f6e0] [c000000000144348] .mpage_readpages+0xc8/0x170
[c0000000f6c7f810] [c000000000182e68] .reiserfs_readpages+0x50/0x78
[c0000000f6c7f8b0] [c0000000000cee80] .__do_page_cache_readahead+0x174/0x280
[c0000000f6c7f980] [c0000000000cf6e0] .do_page_cache_readahead+0xa4/0xd0
[c0000000f6c7fa20] [c0000000000c5274] .filemap_fault+0x198/0x420
[c0000000f6c7fb00] [c0000000000d9660] .__do_fault+0xb8/0x664
[c0000000f6c7fc10] [c0000000000dbcc4] .handle_mm_fault+0x1ec/0xaf4
[c0000000f6c7fd00] [c0000000005a8b10] .do_page_fault+0x384/0x570
[c0000000f6c7fe30] [c00000000000517c] handle_page_fault+0x20/0x5c
Instruction dump:
794a26e4 391d0018 38a00001 7d6be214 7d5c5214 7fa4eb78 e92b0048 380a0008
39290001 f92b0048 60000000 e92a0008 <f9090008> f93d0018 f8080008 f90a0008
---[ end trace aaa19ed35042c148 ]---
BUG: soft lockup - CPU#1 stuck for 61s! [udevd:1249]
Modules linked in:
NIP: c0000000005a69fc LR: c0000000005a69f4 CTR: c0000000000bfb74
REGS: c0000000e7f9b040 TRAP: 0901 Tainted: G D (2.6.28-rc4)
MSR: 8000000000009032 <EE,ME,IR,DR> CR: 80004424 XER: 20000018
TASK = c0000000e9b5ccc0[1249] 'udevd' THREAD: c0000000e7f98000 CPU: 1
GPR00: 00000000c0000000 c0000000e7f9b2c0 c000000000b36fc0 0000000000000001
GPR04: c00000000010557c c0000000000bfb74 0000000000000000 0000000000000000
GPR08: c000000000bd7700 00000000c0000000 00000000004d3000 c0000000007296c0
GPR12: 000000000000d032 c000000000b58500
NIP [c0000000005a69fc] ._spin_lock_irqsave+0x84/0xd4
LR [c0000000005a69f4] ._spin_lock_irqsave+0x7c/0xd4
Call Trace:
[c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable)
[c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330
[c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154
[c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c
[c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4
[c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4
[c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc
[c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354
[c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc
[c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128
[c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148
[c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4
[c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4
[c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8
[c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40
Instruction dump:
40a2fff0 4c00012c 2fa90000 41be0050 8b8d01da 2fbd0000 38600000 419e0008
7fa3eb78 4ba65179 60000000 7c210b78 <801b0000> 2fa00000 40befff4 7c421378
RCU detected CPU 1 stall (t=4299517593/1725750 jiffies)
Call Trace:
[c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable)
[c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c
[c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4
[c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0
[c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8
[c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100
[c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c
[c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200
[c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c
[c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180
--- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4
LR = ._spin_lock_irqsave+0x7c/0xd4
[c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable)
[c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330
[c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154
[c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c
[c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4
[c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4
[c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc
[c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354
[c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc
[c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128
[c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148
[c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4
[c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4
[c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8
[c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40
RCU detected CPU 1 stall (t=4299525093/1733250 jiffies)
Call Trace:
[c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable)
[c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c
[c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4
[c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0
[c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8
[c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100
[c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c
[c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200
[c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c
[c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180
--- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4
LR = ._spin_lock_irqsave+0x7c/0xd4
[c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable)
[c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330
[c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154
[c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c
[c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4
[c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4
[c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc
[c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354
[c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc
[c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128
[c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148
[c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4
[c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4
[c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8
[c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40
RCU detected CPU 1 stall (t=4299532593/1740750 jiffies)
Call Trace:
[c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable)
[c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c
[c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4
[c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0
[c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8
[c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100
[c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c
[c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200
[c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c
[c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180
--- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4
LR = ._spin_lock_irqsave+0x7c/0xd4
[c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable)
[c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330
[c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154
[c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c
[c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4
[c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4
[c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc
[c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354
[c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc
[c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128
[c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148
[c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4
[c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4
[c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8
[c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40
Unable to handle kernel paging request for data at address 0x00000008
Faulting instruction address: 0xc0000000001055e4
Oops: Kernel access of bad area, sig: 11 [#3]
SMP NR_CPUS=32 NUMA pSeries
Modules linked in:
NIP: c0000000001055e4 LR: c00000000010557c CTR: c0000000000bfb74
REGS: c0000000f6c87720 TRAP: 0300 Tainted: G D (2.6.28-rc4)
MSR: 8000000000009032 <EE,ME,IR,DR> CR: 28044482 XER: 20000010
DAR: 0000000000000008, DSISR: 0000000042000000
TASK = c0000000f6bdecc0[4614] 'sshd' THREAD: c0000000f6c84000 CPU: 3
GPR00: c0000000e9009150 c0000000f6c879a0 c000000000b36fc0 0000000000000001
GPR04: c000000005355688 0000000000000001 0000000000000001 0000000000000000
GPR08: c0000000053556a0 0000000000000000 c0000000e9009148 c0000000e9009140
GPR12: 0000000000000000 c000000000b58900 00000400000382d0 0000000000000006
GPR16: 0000000000000000 0000000000000001 0000000000000001 c0000000e612e818
GPR20: 00000fffffdba4e0 0000040000744d98 c0000000e66d2138 0000000000000001
GPR24: 00000000000000d0 0000000000000005 c000000000bac418 0000000000000001
GPR28: c0000000e9009138 c000000005355688 c000000000aacad8 c0000000f6c879a0
NIP [c0000000001055e4] .mem_cgroup_charge_common+0x26c/0x330
LR [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330
Call Trace:
[c0000000f6c879a0] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 (unreliable)
[c0000000f6c87a60] [c0000000001057e4] .mem_cgroup_charge+0x9c/0xc8
[c0000000f6c87b00] [c0000000000d96fc] .__do_fault+0x154/0x664
[c0000000f6c87c10] [c0000000000dbcc4] .handle_mm_fault+0x1ec/0xaf4
[c0000000f6c87d00] [c0000000005a8b10] .do_page_fault+0x384/0x570
[c0000000f6c87e30] [c00000000000517c] handle_page_fault+0x20/0x5c
Instruction dump:
794a26e4 391d0018 38a00001 7d6be214 7d5c5214 7fa4eb78 e92b0048 380a0008
39290001 f92b0048 60000000 e92a0008 <f9090008> f93d0018 f8080008 f90a0008
---[ end trace aaa19ed35042c148 ]---
RCU detected CPU 1 stall (t=4299540093/1748250 jiffies)
Call Trace:
[c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable)
[c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c
[c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4
[c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0
[c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8
[c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100
[c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c
[c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200
[c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c
[c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180
--- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4
LR = ._spin_lock_irqsave+0x7c/0xd4
[c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable)
[c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330
[c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154
[c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c
[c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4
[c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4
[c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc
[c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354
[c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc
[c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128
[c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148
[c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4
[c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4
[c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8
[c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40
BUG: soft lockup - CPU#0 stuck for 61s! [sshd:3665]
Modules linked in:
NIP: c0000000005a69fc LR: c0000000005a69f4 CTR: c0000000000bfb74
REGS: c0000000e667f6c0 TRAP: 0901 Tainted: G D (2.6.28-rc4)
MSR: 8000000000009032 <EE,ME,IR,DR> CR: 88004484 XER: 20000010
TASK = c0000000e9905980[3665] 'sshd' THREAD: c0000000e667c000 CPU: 0
GPR00: 0000000080000000 c0000000e667f940 c000000000b36fc0 0000000000000001
GPR04: c00000000010557c c0000000000bfb74 0000000000000001 0000000000000000
GPR08: c000000000bd7700 0000000080000000 00000000004cc000 c0000000007296c0
GPR12: 0000000000000000 c000000000b58300
NIP [c0000000005a69fc] ._spin_lock_irqsave+0x84/0xd4
LR [c0000000005a69f4] ._spin_lock_irqsave+0x7c/0xd4
Call Trace:
[c0000000e667f940] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable)
[c0000000e667f9e0] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330
[c0000000e667faa0] [c0000000001057e4] .mem_cgroup_charge+0x9c/0xc8
[c0000000e667fb40] [c0000000000da170] .do_wp_page+0x564/0x8ec
[c0000000e667fc10] [c0000000000dc500] .handle_mm_fault+0xa28/0xaf4
[c0000000e667fd00] [c0000000005a8b10] .do_page_fault+0x384/0x570
[c0000000e667fe30] [c00000000000517c] handle_page_fault+0x20/0x5c
Instruction dump:
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-10 21:43 2.6.28-rc4 mem_cgroup_charge_common panic Badari Pulavarty @ 2008-11-11 1:14 ` KAMEZAWA Hiroyuki 2008-11-11 2:09 ` KAMEZAWA Hiroyuki 2008-11-13 11:27 ` [BUGFIX][PATCH] memory hotplug: fix notiier chain return value (Was Re: 2.6.28-rc4 mem_cgroup_charge_common panic) KAMEZAWA Hiroyuki 1 sibling, 1 reply; 12+ messages in thread From: KAMEZAWA Hiroyuki @ 2008-11-11 1:14 UTC (permalink / raw) To: Badari Pulavarty; +Cc: Andrew Morton, linux-mm, linux-kernel On Mon, 10 Nov 2008 13:43:28 -0800 Badari Pulavarty <pbadari@us.ibm.com> wrote: > Hi KAME, > > Thank you for the fix for online/offline page_cgroup panic. > > While running memory offline/online tests ran into another > mem_cgroup panic. > Hm, should I avoid freeing mem_cgroup at memory Offline ? (memmap is also not free AFAIK.) Anyway, I'll dig this. thanks. -Kame > Thanks, > Badari > > Unable to handle kernel paging request for data at address 0x00000020 > Faulting instruction address: 0xc0000000001055e4 > Oops: Kernel access of bad area, sig: 11 [#2] > SMP NR_CPUS=32 NUMA pSeries > Modules linked in: > NIP: c0000000001055e4 LR: c00000000010557c CTR: c0000000000bfb74 > REGS: c0000000f6c7f1b0 TRAP: 0300 Tainted: G D (2.6.28-rc4) > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 44044422 XER: 20000018 > DAR: 0000000000000020, DSISR: 0000000042000000 > TASK = c0000000f6c56cc0[4610] 'crash' THREAD: c0000000f6c7c000 CPU: 0 > GPR00: c0000000e910b560 c0000000f6c7f430 c000000000b36fc0 0000000000000001 > GPR04: c000000005355278 0000000000000001 0000000000000000 0000000000000000 > GPR08: c000000005355290 0000000000000018 c0000000e910b558 c0000000e910b548 > GPR12: 0000000000000000 c000000000b58300 00000400001ca30a 0000000000000000 > GPR16: 0000000000000000 0000000000000006 c0000000d43cb5c0 c0000000e66d0b88 > GPR20: 0000000000000004 0000000000000000 c0000000e64c6180 0000000000000000 > GPR24: 00000000000000d0 0000000000000005 c000000000bac418 0000000000000001 > GPR28: c0000000e910b538 c000000005355278 c000000000aacad8 c0000000f6c7f430 > NIP [c0000000001055e4] .mem_cgroup_charge_common+0x26c/0x330 > LR [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > Call Trace: > [c0000000f6c7f430] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 (unreliable) > [c0000000f6c7f4f0] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > [c0000000f6c7f590] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > [c0000000f6c7f640] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > [c0000000f6c7f6e0] [c000000000144348] .mpage_readpages+0xc8/0x170 > [c0000000f6c7f810] [c000000000182e68] .reiserfs_readpages+0x50/0x78 > [c0000000f6c7f8b0] [c0000000000cee80] .__do_page_cache_readahead+0x174/0x280 > [c0000000f6c7f980] [c0000000000cf6e0] .do_page_cache_readahead+0xa4/0xd0 > [c0000000f6c7fa20] [c0000000000c5274] .filemap_fault+0x198/0x420 > [c0000000f6c7fb00] [c0000000000d9660] .__do_fault+0xb8/0x664 > [c0000000f6c7fc10] [c0000000000dbcc4] .handle_mm_fault+0x1ec/0xaf4 > [c0000000f6c7fd00] [c0000000005a8b10] .do_page_fault+0x384/0x570 > [c0000000f6c7fe30] [c00000000000517c] handle_page_fault+0x20/0x5c > Instruction dump: > 794a26e4 391d0018 38a00001 7d6be214 7d5c5214 7fa4eb78 e92b0048 380a0008 > 39290001 f92b0048 60000000 e92a0008 <f9090008> f93d0018 f8080008 f90a0008 > ---[ end trace aaa19ed35042c148 ]--- > BUG: soft lockup - CPU#1 stuck for 61s! [udevd:1249] > Modules linked in: > NIP: c0000000005a69fc LR: c0000000005a69f4 CTR: c0000000000bfb74 > REGS: c0000000e7f9b040 TRAP: 0901 Tainted: G D (2.6.28-rc4) > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 80004424 XER: 20000018 > TASK = c0000000e9b5ccc0[1249] 'udevd' THREAD: c0000000e7f98000 CPU: 1 > GPR00: 00000000c0000000 c0000000e7f9b2c0 c000000000b36fc0 0000000000000001 > GPR04: c00000000010557c c0000000000bfb74 0000000000000000 0000000000000000 > GPR08: c000000000bd7700 00000000c0000000 00000000004d3000 c0000000007296c0 > GPR12: 000000000000d032 c000000000b58500 > NIP [c0000000005a69fc] ._spin_lock_irqsave+0x84/0xd4 > LR [c0000000005a69f4] ._spin_lock_irqsave+0x7c/0xd4 > Call Trace: > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > Instruction dump: > 40a2fff0 4c00012c 2fa90000 41be0050 8b8d01da 2fbd0000 38600000 419e0008 > 7fa3eb78 4ba65179 60000000 7c210b78 <801b0000> 2fa00000 40befff4 7c421378 > RCU detected CPU 1 stall (t=4299517593/1725750 jiffies) > Call Trace: > [c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable) > [c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c > [c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4 > [c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0 > [c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8 > [c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100 > [c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c > [c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200 > [c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c > [c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180 > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > LR = ._spin_lock_irqsave+0x7c/0xd4 > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > RCU detected CPU 1 stall (t=4299525093/1733250 jiffies) > Call Trace: > [c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable) > [c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c > [c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4 > [c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0 > [c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8 > [c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100 > [c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c > [c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200 > [c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c > [c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180 > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > LR = ._spin_lock_irqsave+0x7c/0xd4 > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > RCU detected CPU 1 stall (t=4299532593/1740750 jiffies) > Call Trace: > [c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable) > [c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c > [c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4 > [c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0 > [c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8 > [c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100 > [c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c > [c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200 > [c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c > [c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180 > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > LR = ._spin_lock_irqsave+0x7c/0xd4 > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > Unable to handle kernel paging request for data at address 0x00000008 > Faulting instruction address: 0xc0000000001055e4 > Oops: Kernel access of bad area, sig: 11 [#3] > SMP NR_CPUS=32 NUMA pSeries > Modules linked in: > NIP: c0000000001055e4 LR: c00000000010557c CTR: c0000000000bfb74 > REGS: c0000000f6c87720 TRAP: 0300 Tainted: G D (2.6.28-rc4) > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 28044482 XER: 20000010 > DAR: 0000000000000008, DSISR: 0000000042000000 > TASK = c0000000f6bdecc0[4614] 'sshd' THREAD: c0000000f6c84000 CPU: 3 > GPR00: c0000000e9009150 c0000000f6c879a0 c000000000b36fc0 0000000000000001 > GPR04: c000000005355688 0000000000000001 0000000000000001 0000000000000000 > GPR08: c0000000053556a0 0000000000000000 c0000000e9009148 c0000000e9009140 > GPR12: 0000000000000000 c000000000b58900 00000400000382d0 0000000000000006 > GPR16: 0000000000000000 0000000000000001 0000000000000001 c0000000e612e818 > GPR20: 00000fffffdba4e0 0000040000744d98 c0000000e66d2138 0000000000000001 > GPR24: 00000000000000d0 0000000000000005 c000000000bac418 0000000000000001 > GPR28: c0000000e9009138 c000000005355688 c000000000aacad8 c0000000f6c879a0 > NIP [c0000000001055e4] .mem_cgroup_charge_common+0x26c/0x330 > LR [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > Call Trace: > [c0000000f6c879a0] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 (unreliable) > [c0000000f6c87a60] [c0000000001057e4] .mem_cgroup_charge+0x9c/0xc8 > [c0000000f6c87b00] [c0000000000d96fc] .__do_fault+0x154/0x664 > [c0000000f6c87c10] [c0000000000dbcc4] .handle_mm_fault+0x1ec/0xaf4 > [c0000000f6c87d00] [c0000000005a8b10] .do_page_fault+0x384/0x570 > [c0000000f6c87e30] [c00000000000517c] handle_page_fault+0x20/0x5c > Instruction dump: > 794a26e4 391d0018 38a00001 7d6be214 7d5c5214 7fa4eb78 e92b0048 380a0008 > 39290001 f92b0048 60000000 e92a0008 <f9090008> f93d0018 f8080008 f90a0008 > ---[ end trace aaa19ed35042c148 ]--- > RCU detected CPU 1 stall (t=4299540093/1748250 jiffies) > Call Trace: > [c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable) > [c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c > [c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4 > [c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0 > [c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8 > [c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100 > [c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c > [c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200 > [c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c > [c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180 > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > LR = ._spin_lock_irqsave+0x7c/0xd4 > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > BUG: soft lockup - CPU#0 stuck for 61s! [sshd:3665] > Modules linked in: > NIP: c0000000005a69fc LR: c0000000005a69f4 CTR: c0000000000bfb74 > REGS: c0000000e667f6c0 TRAP: 0901 Tainted: G D (2.6.28-rc4) > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 88004484 XER: 20000010 > TASK = c0000000e9905980[3665] 'sshd' THREAD: c0000000e667c000 CPU: 0 > GPR00: 0000000080000000 c0000000e667f940 c000000000b36fc0 0000000000000001 > GPR04: c00000000010557c c0000000000bfb74 0000000000000001 0000000000000000 > GPR08: c000000000bd7700 0000000080000000 00000000004cc000 c0000000007296c0 > GPR12: 0000000000000000 c000000000b58300 > NIP [c0000000005a69fc] ._spin_lock_irqsave+0x84/0xd4 > LR [c0000000005a69f4] ._spin_lock_irqsave+0x7c/0xd4 > Call Trace: > [c0000000e667f940] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > [c0000000e667f9e0] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > [c0000000e667faa0] [c0000000001057e4] .mem_cgroup_charge+0x9c/0xc8 > [c0000000e667fb40] [c0000000000da170] .do_wp_page+0x564/0x8ec > [c0000000e667fc10] [c0000000000dc500] .handle_mm_fault+0xa28/0xaf4 > [c0000000e667fd00] [c0000000005a8b10] .do_page_fault+0x384/0x570 > [c0000000e667fe30] [c00000000000517c] handle_page_fault+0x20/0x5c > Instruction dump: > > > > > > > > > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-11 1:14 ` KAMEZAWA Hiroyuki @ 2008-11-11 2:09 ` KAMEZAWA Hiroyuki 2008-11-12 22:02 ` Badari Pulavarty 0 siblings, 1 reply; 12+ messages in thread From: KAMEZAWA Hiroyuki @ 2008-11-11 2:09 UTC (permalink / raw) To: KAMEZAWA Hiroyuki; +Cc: Badari Pulavarty, Andrew Morton, linux-mm, linux-kernel On Tue, 11 Nov 2008 10:14:40 +0900 KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote: > On Mon, 10 Nov 2008 13:43:28 -0800 > Badari Pulavarty <pbadari@us.ibm.com> wrote: > > > Hi KAME, > > > > Thank you for the fix for online/offline page_cgroup panic. > > > > While running memory offline/online tests ran into another > > mem_cgroup panic. > > > > Hm, should I avoid freeing mem_cgroup at memory Offline ? > (memmap is also not free AFAIK.) > > Anyway, I'll dig this. thanks. > it seems not the same kind of bug.. Could you give me disassemble of mem_cgroup_charge_common() ? (I'm not sure I can read ppc asm but I want to know what is "0x20" of fault address....) As first impression, it comes from page migration.. rc4's page migration handler of memcg handles *usual* path but not so good. new migration code of memcg in mmotm is much better, I think. Could you try mmotm if you have time ? Thanks, -Kame > -Kame > > > Thanks, > > Badari > > > > Unable to handle kernel paging request for data at address 0x00000020 > > Faulting instruction address: 0xc0000000001055e4 > > Oops: Kernel access of bad area, sig: 11 [#2] > > SMP NR_CPUS=32 NUMA pSeries > > Modules linked in: > > NIP: c0000000001055e4 LR: c00000000010557c CTR: c0000000000bfb74 > > REGS: c0000000f6c7f1b0 TRAP: 0300 Tainted: G D (2.6.28-rc4) > > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 44044422 XER: 20000018 > > DAR: 0000000000000020, DSISR: 0000000042000000 > > TASK = c0000000f6c56cc0[4610] 'crash' THREAD: c0000000f6c7c000 CPU: 0 > > GPR00: c0000000e910b560 c0000000f6c7f430 c000000000b36fc0 0000000000000001 > > GPR04: c000000005355278 0000000000000001 0000000000000000 0000000000000000 > > GPR08: c000000005355290 0000000000000018 c0000000e910b558 c0000000e910b548 > > GPR12: 0000000000000000 c000000000b58300 00000400001ca30a 0000000000000000 > > GPR16: 0000000000000000 0000000000000006 c0000000d43cb5c0 c0000000e66d0b88 > > GPR20: 0000000000000004 0000000000000000 c0000000e64c6180 0000000000000000 > > GPR24: 00000000000000d0 0000000000000005 c000000000bac418 0000000000000001 > > GPR28: c0000000e910b538 c000000005355278 c000000000aacad8 c0000000f6c7f430 > > NIP [c0000000001055e4] .mem_cgroup_charge_common+0x26c/0x330 > > LR [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > > Call Trace: > > [c0000000f6c7f430] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 (unreliable) > > [c0000000f6c7f4f0] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > > [c0000000f6c7f590] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > > [c0000000f6c7f640] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > > [c0000000f6c7f6e0] [c000000000144348] .mpage_readpages+0xc8/0x170 > > [c0000000f6c7f810] [c000000000182e68] .reiserfs_readpages+0x50/0x78 > > [c0000000f6c7f8b0] [c0000000000cee80] .__do_page_cache_readahead+0x174/0x280 > > [c0000000f6c7f980] [c0000000000cf6e0] .do_page_cache_readahead+0xa4/0xd0 > > [c0000000f6c7fa20] [c0000000000c5274] .filemap_fault+0x198/0x420 > > [c0000000f6c7fb00] [c0000000000d9660] .__do_fault+0xb8/0x664 > > [c0000000f6c7fc10] [c0000000000dbcc4] .handle_mm_fault+0x1ec/0xaf4 > > [c0000000f6c7fd00] [c0000000005a8b10] .do_page_fault+0x384/0x570 > > [c0000000f6c7fe30] [c00000000000517c] handle_page_fault+0x20/0x5c > > Instruction dump: > > 794a26e4 391d0018 38a00001 7d6be214 7d5c5214 7fa4eb78 e92b0048 380a0008 > > 39290001 f92b0048 60000000 e92a0008 <f9090008> f93d0018 f8080008 f90a0008 > > ---[ end trace aaa19ed35042c148 ]--- > > BUG: soft lockup - CPU#1 stuck for 61s! [udevd:1249] > > Modules linked in: > > NIP: c0000000005a69fc LR: c0000000005a69f4 CTR: c0000000000bfb74 > > REGS: c0000000e7f9b040 TRAP: 0901 Tainted: G D (2.6.28-rc4) > > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 80004424 XER: 20000018 > > TASK = c0000000e9b5ccc0[1249] 'udevd' THREAD: c0000000e7f98000 CPU: 1 > > GPR00: 00000000c0000000 c0000000e7f9b2c0 c000000000b36fc0 0000000000000001 > > GPR04: c00000000010557c c0000000000bfb74 0000000000000000 0000000000000000 > > GPR08: c000000000bd7700 00000000c0000000 00000000004d3000 c0000000007296c0 > > GPR12: 000000000000d032 c000000000b58500 > > NIP [c0000000005a69fc] ._spin_lock_irqsave+0x84/0xd4 > > LR [c0000000005a69f4] ._spin_lock_irqsave+0x7c/0xd4 > > Call Trace: > > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > > Instruction dump: > > 40a2fff0 4c00012c 2fa90000 41be0050 8b8d01da 2fbd0000 38600000 419e0008 > > 7fa3eb78 4ba65179 60000000 7c210b78 <801b0000> 2fa00000 40befff4 7c421378 > > RCU detected CPU 1 stall (t=4299517593/1725750 jiffies) > > Call Trace: > > [c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable) > > [c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c > > [c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4 > > [c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0 > > [c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8 > > [c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100 > > [c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c > > [c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200 > > [c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c > > [c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180 > > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > > LR = ._spin_lock_irqsave+0x7c/0xd4 > > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > > RCU detected CPU 1 stall (t=4299525093/1733250 jiffies) > > Call Trace: > > [c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable) > > [c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c > > [c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4 > > [c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0 > > [c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8 > > [c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100 > > [c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c > > [c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200 > > [c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c > > [c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180 > > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > > LR = ._spin_lock_irqsave+0x7c/0xd4 > > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > > RCU detected CPU 1 stall (t=4299532593/1740750 jiffies) > > Call Trace: > > [c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable) > > [c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c > > [c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4 > > [c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0 > > [c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8 > > [c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100 > > [c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c > > [c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200 > > [c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c > > [c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180 > > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > > LR = ._spin_lock_irqsave+0x7c/0xd4 > > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > > Unable to handle kernel paging request for data at address 0x00000008 > > Faulting instruction address: 0xc0000000001055e4 > > Oops: Kernel access of bad area, sig: 11 [#3] > > SMP NR_CPUS=32 NUMA pSeries > > Modules linked in: > > NIP: c0000000001055e4 LR: c00000000010557c CTR: c0000000000bfb74 > > REGS: c0000000f6c87720 TRAP: 0300 Tainted: G D (2.6.28-rc4) > > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 28044482 XER: 20000010 > > DAR: 0000000000000008, DSISR: 0000000042000000 > > TASK = c0000000f6bdecc0[4614] 'sshd' THREAD: c0000000f6c84000 CPU: 3 > > GPR00: c0000000e9009150 c0000000f6c879a0 c000000000b36fc0 0000000000000001 > > GPR04: c000000005355688 0000000000000001 0000000000000001 0000000000000000 > > GPR08: c0000000053556a0 0000000000000000 c0000000e9009148 c0000000e9009140 > > GPR12: 0000000000000000 c000000000b58900 00000400000382d0 0000000000000006 > > GPR16: 0000000000000000 0000000000000001 0000000000000001 c0000000e612e818 > > GPR20: 00000fffffdba4e0 0000040000744d98 c0000000e66d2138 0000000000000001 > > GPR24: 00000000000000d0 0000000000000005 c000000000bac418 0000000000000001 > > GPR28: c0000000e9009138 c000000005355688 c000000000aacad8 c0000000f6c879a0 > > NIP [c0000000001055e4] .mem_cgroup_charge_common+0x26c/0x330 > > LR [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > > Call Trace: > > [c0000000f6c879a0] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 (unreliable) > > [c0000000f6c87a60] [c0000000001057e4] .mem_cgroup_charge+0x9c/0xc8 > > [c0000000f6c87b00] [c0000000000d96fc] .__do_fault+0x154/0x664 > > [c0000000f6c87c10] [c0000000000dbcc4] .handle_mm_fault+0x1ec/0xaf4 > > [c0000000f6c87d00] [c0000000005a8b10] .do_page_fault+0x384/0x570 > > [c0000000f6c87e30] [c00000000000517c] handle_page_fault+0x20/0x5c > > Instruction dump: > > 794a26e4 391d0018 38a00001 7d6be214 7d5c5214 7fa4eb78 e92b0048 380a0008 > > 39290001 f92b0048 60000000 e92a0008 <f9090008> f93d0018 f8080008 f90a0008 > > ---[ end trace aaa19ed35042c148 ]--- > > RCU detected CPU 1 stall (t=4299540093/1748250 jiffies) > > Call Trace: > > [c0000000e7f9aa00] [c0000000000102a4] .show_stack+0x94/0x198 (unreliable) > > [c0000000e7f9aab0] [c0000000000103d0] .dump_stack+0x28/0x3c > > [c0000000e7f9ab30] [c0000000000b1020] .__rcu_pending+0xa8/0x2c4 > > [c0000000e7f9abd0] [c0000000000b1288] .rcu_pending+0x4c/0xa0 > > [c0000000e7f9ac60] [c000000000076a8c] .update_process_times+0x50/0xa8 > > [c0000000e7f9ad00] [c000000000095e88] .tick_sched_timer+0xb0/0x100 > > [c0000000e7f9adb0] [c00000000008ae98] .__run_hrtimer+0xa4/0x13c > > [c0000000e7f9ae50] [c00000000008c0b8] .hrtimer_interrupt+0x128/0x200 > > [c0000000e7f9af30] [c00000000002858c] .timer_interrupt+0xc0/0x11c > > [c0000000e7f9afd0] [c000000000003710] decrementer_common+0x110/0x180 > > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > > LR = ._spin_lock_irqsave+0x7c/0xd4 > > [c0000000e7f9b2c0] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > > [c0000000e7f9b360] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > > [c0000000e7f9b420] [c000000000105c70] .mem_cgroup_cache_charge+0x130/0x154 > > [c0000000e7f9b4c0] [c0000000000c29bc] .add_to_page_cache_locked+0x64/0x18c > > [c0000000e7f9b570] [c0000000000c2b64] .add_to_page_cache_lru+0x80/0xe4 > > [c0000000e7f9b610] [c0000000000c2c34] .__grab_cache_page+0x6c/0xb4 > > [c0000000e7f9b6b0] [c000000000187628] .reiserfs_write_begin+0xb0/0x2bc > > [c0000000e7f9b790] [c0000000000c38a8] .generic_file_buffered_write+0x150/0x354 > > [c0000000e7f9b8d0] [c0000000000c40a8] .__generic_file_aio_write_nolock+0x384/0x3fc > > [c0000000e7f9b9d0] [c0000000000c41b0] .generic_file_aio_write+0x90/0x128 > > [c0000000e7f9ba90] [c0000000001093a4] .do_sync_write+0xe0/0x148 > > [c0000000e7f9bc30] [c000000000188868] .reiserfs_file_write+0x8c/0xd4 > > [c0000000e7f9bcd0] [c000000000109d00] .vfs_write+0xf0/0x1c4 > > [c0000000e7f9bd80] [c00000000010a69c] .sys_write+0x6c/0xb8 > > [c0000000e7f9be30] [c00000000000852c] syscall_exit+0x0/0x40 > > BUG: soft lockup - CPU#0 stuck for 61s! [sshd:3665] > > Modules linked in: > > NIP: c0000000005a69fc LR: c0000000005a69f4 CTR: c0000000000bfb74 > > REGS: c0000000e667f6c0 TRAP: 0901 Tainted: G D (2.6.28-rc4) > > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 88004484 XER: 20000010 > > TASK = c0000000e9905980[3665] 'sshd' THREAD: c0000000e667c000 CPU: 0 > > GPR00: 0000000080000000 c0000000e667f940 c000000000b36fc0 0000000000000001 > > GPR04: c00000000010557c c0000000000bfb74 0000000000000001 0000000000000000 > > GPR08: c000000000bd7700 0000000080000000 00000000004cc000 c0000000007296c0 > > GPR12: 0000000000000000 c000000000b58300 > > NIP [c0000000005a69fc] ._spin_lock_irqsave+0x84/0xd4 > > LR [c0000000005a69f4] ._spin_lock_irqsave+0x7c/0xd4 > > Call Trace: > > [c0000000e667f940] [c0000000005a69a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > > [c0000000e667f9e0] [c00000000010557c] .mem_cgroup_charge_common+0x204/0x330 > > [c0000000e667faa0] [c0000000001057e4] .mem_cgroup_charge+0x9c/0xc8 > > [c0000000e667fb40] [c0000000000da170] .do_wp_page+0x564/0x8ec > > [c0000000e667fc10] [c0000000000dc500] .handle_mm_fault+0xa28/0xaf4 > > [c0000000e667fd00] [c0000000005a8b10] .do_page_fault+0x384/0x570 > > [c0000000e667fe30] [c00000000000517c] handle_page_fault+0x20/0x5c > > Instruction dump: > > > > > > > > > > > > > > > > > > > > > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-11 2:09 ` KAMEZAWA Hiroyuki @ 2008-11-12 22:02 ` Badari Pulavarty 2008-11-13 1:09 ` KAMEZAWA Hiroyuki 2008-11-13 2:17 ` KAMEZAWA Hiroyuki 0 siblings, 2 replies; 12+ messages in thread From: Badari Pulavarty @ 2008-11-12 22:02 UTC (permalink / raw) To: KAMEZAWA Hiroyuki; +Cc: Andrew Morton, linux-mm, linux-kernel On Tue, 2008-11-11 at 11:09 +0900, KAMEZAWA Hiroyuki wrote: > On Tue, 11 Nov 2008 10:14:40 +0900 > KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote: > > > On Mon, 10 Nov 2008 13:43:28 -0800 > > Badari Pulavarty <pbadari@us.ibm.com> wrote: > > > > > Hi KAME, > > > > > > Thank you for the fix for online/offline page_cgroup panic. > > > > > > While running memory offline/online tests ran into another > > > mem_cgroup panic. > > > > > > > Hm, should I avoid freeing mem_cgroup at memory Offline ? > > (memmap is also not free AFAIK.) > > > > Anyway, I'll dig this. thanks. > > > it seems not the same kind of bug.. > > Could you give me disassemble of mem_cgroup_charge_common() ? > (I'm not sure I can read ppc asm but I want to know what is "0x20" > of fault address....) > > As first impression, it comes from page migration.. > rc4's page migration handler of memcg handles *usual* path but not so good. > > new migration code of memcg in mmotm is much better, I think. > Could you try mmotm if you have time ? I tried mmtom. Its even worse :( Ran into following quickly .. Sorry!! Thanks, Badari Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 NUMA pSeries Modules linked in: NIP: c000000000109e50 LR: c000000000109de8 CTR: c0000000000c2414 REGS: c0000000e66d72d0 TRAP: 0300 Not tainted (2.6.28-rc4-mm1) MSR: 8000000000009032 <EE,ME,IR,DR> CR: 44008424 XER: 20000010 DAR: 0000000000000008, DSISR: 0000000042000000 TASK = c0000000e7dfa050[4835] 'drmgr' THREAD: c0000000e66d4000 CPU: 0 GPR00: 0000000000000020 c0000000e66d7550 c000000000b472d8 c0000000e910d958 GPR04: c00000000010a730 c0000000000b96a8 c0000000e66d7660 0000000000000000 GPR08: c000000005520440 0000000000000000 c0000000e910d960 c0000000e910d948 GPR12: 0000000024000422 c000000000b68300 00000000200957bc 0000000000000000 GPR16: 0000000000000000 c0000000e66d78f8 0000000000000000 c000000000aeea70 GPR20: 000000000000006d 0000000000000000 c000000003709e78 00000000000e6000 GPR24: 0000000000000000 0000000000000000 0000000000000001 c0000000e910d938 GPR28: c000000005520428 0000000000000001 c000000000abc220 c0000000e66d7550 NIP [c000000000109e50] .__mem_cgroup_add_list+0x98/0xec LR [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec Call Trace: [c0000000e66d7550] [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec (unreliable) [c0000000e66d75f0] [c00000000010a730] .__mem_cgroup_commit_charge+0x108/0x154 [c0000000e66d7690] [c00000000010adf8] .mem_cgroup_end_migration+0xb4/0x130 [c0000000e66d7730] [c000000000108c84] .migrate_pages+0x460/0x62c [c0000000e66d7880] [c000000000106760] .offline_pages+0x398/0x5ac [c0000000e66d7990] [c0000000001069b8] .remove_memory+0x44/0x60 [c0000000e66d7a20] [c00000000040758c] .memory_block_change_state+0x198/0x230 [c0000000e66d7ad0] [c000000000407cac] .store_mem_state+0xcc/0x144 [c0000000e66d7b70] [c0000000003fa8b0] .sysdev_store+0x74/0xa4 [c0000000e66d7c10] [c00000000017b084] .sysfs_write_file+0x128/0x1a4 [c0000000e66d7cd0] [c00000000010fb7c] .vfs_write+0xf0/0x1c4 [c0000000e66d7d80] [c000000000110518] .sys_write+0x6c/0xb8 [c0000000e66d7e30] [c00000000000852c] syscall_exit+0x0/0x40 Instruction dump: 794b1f24 794026e4 7d6bda14 7d3b0214 7d234b78 39490008 e92b0048 39290001 f92b0048 419e001c e9230008 f93c0018 <f9090008> f9030008 f9480008 48000018 ---[ end trace 9dd57aaf4994aeb0 ]--- Unable to handle kernel paging request for data at address 0x00000008 Faulting instruction address: 0xc000000000109e50 Oops: Kernel access of bad area, sig: 11 [#2] SMP NR_CPUS=32 NUMA pSeries Modules linked in: NIP: c000000000109e50 LR: c000000000109de8 CTR: c0000000000c2414 REGS: c0000000e661b6e0 TRAP: 0300 Tainted: G D (2.6.28-rc4-mm1) MSR: 8000000000009032 <EE,ME,IR,DR> CR: 28000484 XER: 20000010 DAR: 0000000000000008, DSISR: 0000000042000000 TASK = c0000000e7d5e050[4839] 'drmgr' THREAD: c0000000e6618000 CPU: 3 GPR00: 0000000000000010 c0000000e661b960 c000000000b472d8 c0000000e910cb48 GPR04: c00000000010a730 c0000000000b96a8 0000000000000001 0000000000000000 GPR08: c000000005520580 0000000000000000 c0000000e910cb50 c0000000e910cb40 GPR12: 0000000000000000 c000000000b68900 00000000200957bc 00000000ff844928 GPR16: 00000000100b8808 00000000100ee4a0 0000000002000000 c0000000e6326fe0 GPR20: 0000000000000000 00000000ff841cd0 c0000000e6189400 c0000000e6084880 GPR24: 0000000000000001 0000000000000000 0000000000000001 c0000000e910cb38 GPR28: c000000005520568 0000000000000001 c000000000abc220 c0000000e661b960 NIP [c000000000109e50] .__mem_cgroup_add_list+0x98/0xec LR [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec Call Trace: [c0000000e661b960] [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec (unreliable) [c0000000e661ba00] [c00000000010a730] .__mem_cgroup_commit_charge+0x108/0x154 [c0000000e661baa0] [c00000000010af90] .mem_cgroup_charge_common+0x94/0xc4 [c0000000e661bb60] [c00000000010b0fc] .mem_cgroup_newpage_charge+0x9c/0xc8 [c0000000e661bc00] [c0000000000deea0] .handle_mm_fault+0x2d0/0xb08 [c0000000e661bd00] [c0000000005b0910] .do_page_fault+0x384/0x5a0 [c0000000e661be30] [c00000000000517c] handle_page_fault+0x20/0x5c Instruction dump: 794b1f24 794026e4 7d6bda14 7d3b0214 7d234b78 39490008 e92b0048 39290001 f92b0048 419e001c e9230008 f93c0018 <f9090008> f9030008 f9480008 48000018 ---[ end trace 9dd57aaf4994aeb0 ]--- INFO: RCU detected CPU 1 stall (t=4295407979/2500 jiffies) Call Trace: [c0000000e65e6c90] [c0000000000102bc] .show_stack+0x94/0x198 (unreliable) [c0000000e65e6d40] [c0000000000103e8] .dump_stack+0x28/0x3c [c0000000e65e6dc0] [c0000000000b338c] .__rcu_pending+0xa8/0x2c4 [c0000000e65e6e60] [c0000000000b35f4] .rcu_pending+0x4c/0xa0 [c0000000e65e6ef0] [c0000000000788a0] .update_process_times+0x50/0xa8 [c0000000e65e6f90] [c00000000009875c] .tick_sched_timer+0xb0/0x100 [c0000000e65e7040] [c00000000008cbf8] .__run_hrtimer+0xa4/0x13c [c0000000e65e70e0] [c00000000008de64] .hrtimer_interrupt+0x128/0x200 [c0000000e65e71c0] [c0000000000284c4] .timer_interrupt+0xc0/0x11c [c0000000e65e7260] [c000000000003710] decrementer_common+0x110/0x180 --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 LR = ._spin_lock_irqsave+0x7c/0xd4 [c0000000e65e7550] [c0000000005ae7a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) [c0000000e65e75f0] [c00000000010a718] .__mem_cgroup_commit_charge+0xf0/0x154 [c0000000e65e7690] [c00000000010adf8] .mem_cgroup_end_migration+0xb4/0x130 [c0000000e65e7730] [c000000000108c84] .migrate_pages+0x460/0x62c [c0000000e65e7880] [c000000000106760] .offline_pages+0x398/0x5ac [c0000000e65e7990] [c0000000001069b8] .remove_memory+0x44/0x60 [c0000000e65e7a20] [c00000000040758c] .memory_block_change_state+0x198/0x230 [c0000000e65e7ad0] [c000000000407cac] .store_mem_state+0xcc/0x144 [c0000000e65e7b70] [c0000000003fa8b0] .sysdev_store+0x74/0xa4 [c0000000e65e7c10] [c00000000017b084] .sysfs_write_file+0x128/0x1a4 [c0000000e65e7cd0] [c00000000010fb7c] .vfs_write+0xf0/0x1c4 [c0000000e65e7d80] [c000000000110518] .sys_write+0x6c/0xb8 [c0000000e65e7e30] [c00000000000852c] syscall_exit+0x0/0x40 > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-12 22:02 ` Badari Pulavarty @ 2008-11-13 1:09 ` KAMEZAWA Hiroyuki 2008-11-13 2:17 ` KAMEZAWA Hiroyuki 1 sibling, 0 replies; 12+ messages in thread From: KAMEZAWA Hiroyuki @ 2008-11-13 1:09 UTC (permalink / raw) To: Badari Pulavarty; +Cc: Andrew Morton, linux-mm, linux-kernel On Wed, 12 Nov 2008 14:02:56 -0800 Badari Pulavarty <pbadari@us.ibm.com> wrote: > On Tue, 2008-11-11 at 11:09 +0900, KAMEZAWA Hiroyuki wrote: > > On Tue, 11 Nov 2008 10:14:40 +0900 > > KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote: > > > > > On Mon, 10 Nov 2008 13:43:28 -0800 > > > Badari Pulavarty <pbadari@us.ibm.com> wrote: > > > > > > > Hi KAME, > > > > > > > > Thank you for the fix for online/offline page_cgroup panic. > > > > > > > > While running memory offline/online tests ran into another > > > > mem_cgroup panic. > > > > > > > > > > Hm, should I avoid freeing mem_cgroup at memory Offline ? > > > (memmap is also not free AFAIK.) > > > > > > Anyway, I'll dig this. thanks. > > > > > it seems not the same kind of bug.. > > > > Could you give me disassemble of mem_cgroup_charge_common() ? > > (I'm not sure I can read ppc asm but I want to know what is "0x20" > > of fault address....) > > > > As first impression, it comes from page migration.. > > rc4's page migration handler of memcg handles *usual* path but not so good. > > > > new migration code of memcg in mmotm is much better, I think. > > Could you try mmotm if you have time ? > > I tried mmtom. Its even worse :( > > Ran into following quickly .. Sorry!! > Hmm...mmotm + start_pfn fix ? disassemble is also helpful. Thanks, -Kame > Thanks, > Badari > > > Oops: Kernel access of bad area, sig: 11 [#1] > SMP NR_CPUS=32 NUMA pSeries > Modules linked in: > NIP: c000000000109e50 LR: c000000000109de8 CTR: c0000000000c2414 > REGS: c0000000e66d72d0 TRAP: 0300 Not tainted (2.6.28-rc4-mm1) > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 44008424 XER: 20000010 > DAR: 0000000000000008, DSISR: 0000000042000000 > TASK = c0000000e7dfa050[4835] 'drmgr' THREAD: c0000000e66d4000 CPU: 0 > GPR00: 0000000000000020 c0000000e66d7550 c000000000b472d8 c0000000e910d958 > GPR04: c00000000010a730 c0000000000b96a8 c0000000e66d7660 0000000000000000 > GPR08: c000000005520440 0000000000000000 c0000000e910d960 c0000000e910d948 > GPR12: 0000000024000422 c000000000b68300 00000000200957bc 0000000000000000 > GPR16: 0000000000000000 c0000000e66d78f8 0000000000000000 c000000000aeea70 > GPR20: 000000000000006d 0000000000000000 c000000003709e78 00000000000e6000 > GPR24: 0000000000000000 0000000000000000 0000000000000001 c0000000e910d938 > GPR28: c000000005520428 0000000000000001 c000000000abc220 c0000000e66d7550 > NIP [c000000000109e50] .__mem_cgroup_add_list+0x98/0xec > LR [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec > Call Trace: > [c0000000e66d7550] [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec (unreliable) > [c0000000e66d75f0] [c00000000010a730] .__mem_cgroup_commit_charge+0x108/0x154 > [c0000000e66d7690] [c00000000010adf8] .mem_cgroup_end_migration+0xb4/0x130 > [c0000000e66d7730] [c000000000108c84] .migrate_pages+0x460/0x62c > [c0000000e66d7880] [c000000000106760] .offline_pages+0x398/0x5ac > [c0000000e66d7990] [c0000000001069b8] .remove_memory+0x44/0x60 > [c0000000e66d7a20] [c00000000040758c] .memory_block_change_state+0x198/0x230 > [c0000000e66d7ad0] [c000000000407cac] .store_mem_state+0xcc/0x144 > [c0000000e66d7b70] [c0000000003fa8b0] .sysdev_store+0x74/0xa4 > [c0000000e66d7c10] [c00000000017b084] .sysfs_write_file+0x128/0x1a4 > [c0000000e66d7cd0] [c00000000010fb7c] .vfs_write+0xf0/0x1c4 > [c0000000e66d7d80] [c000000000110518] .sys_write+0x6c/0xb8 > [c0000000e66d7e30] [c00000000000852c] syscall_exit+0x0/0x40 > Instruction dump: > 794b1f24 794026e4 7d6bda14 7d3b0214 7d234b78 39490008 e92b0048 39290001 > f92b0048 419e001c e9230008 f93c0018 <f9090008> f9030008 f9480008 48000018 > ---[ end trace 9dd57aaf4994aeb0 ]--- > Unable to handle kernel paging request for data at address 0x00000008 > Faulting instruction address: 0xc000000000109e50 > Oops: Kernel access of bad area, sig: 11 [#2] > SMP NR_CPUS=32 NUMA pSeries > Modules linked in: > NIP: c000000000109e50 LR: c000000000109de8 CTR: c0000000000c2414 > REGS: c0000000e661b6e0 TRAP: 0300 Tainted: G D (2.6.28-rc4-mm1) > MSR: 8000000000009032 <EE,ME,IR,DR> CR: 28000484 XER: 20000010 > DAR: 0000000000000008, DSISR: 0000000042000000 > TASK = c0000000e7d5e050[4839] 'drmgr' THREAD: c0000000e6618000 CPU: 3 > GPR00: 0000000000000010 c0000000e661b960 c000000000b472d8 c0000000e910cb48 > GPR04: c00000000010a730 c0000000000b96a8 0000000000000001 0000000000000000 > GPR08: c000000005520580 0000000000000000 c0000000e910cb50 c0000000e910cb40 > GPR12: 0000000000000000 c000000000b68900 00000000200957bc 00000000ff844928 > GPR16: 00000000100b8808 00000000100ee4a0 0000000002000000 c0000000e6326fe0 > GPR20: 0000000000000000 00000000ff841cd0 c0000000e6189400 c0000000e6084880 > GPR24: 0000000000000001 0000000000000000 0000000000000001 c0000000e910cb38 > GPR28: c000000005520568 0000000000000001 c000000000abc220 c0000000e661b960 > NIP [c000000000109e50] .__mem_cgroup_add_list+0x98/0xec > LR [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec > Call Trace: > [c0000000e661b960] [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec (unreliable) > [c0000000e661ba00] [c00000000010a730] .__mem_cgroup_commit_charge+0x108/0x154 > [c0000000e661baa0] [c00000000010af90] .mem_cgroup_charge_common+0x94/0xc4 > [c0000000e661bb60] [c00000000010b0fc] .mem_cgroup_newpage_charge+0x9c/0xc8 > [c0000000e661bc00] [c0000000000deea0] .handle_mm_fault+0x2d0/0xb08 > [c0000000e661bd00] [c0000000005b0910] .do_page_fault+0x384/0x5a0 > [c0000000e661be30] [c00000000000517c] handle_page_fault+0x20/0x5c > Instruction dump: > 794b1f24 794026e4 7d6bda14 7d3b0214 7d234b78 39490008 e92b0048 39290001 > f92b0048 419e001c e9230008 f93c0018 <f9090008> f9030008 f9480008 48000018 > ---[ end trace 9dd57aaf4994aeb0 ]--- > INFO: RCU detected CPU 1 stall (t=4295407979/2500 jiffies) > Call Trace: > [c0000000e65e6c90] [c0000000000102bc] .show_stack+0x94/0x198 (unreliable) > [c0000000e65e6d40] [c0000000000103e8] .dump_stack+0x28/0x3c > [c0000000e65e6dc0] [c0000000000b338c] .__rcu_pending+0xa8/0x2c4 > [c0000000e65e6e60] [c0000000000b35f4] .rcu_pending+0x4c/0xa0 > [c0000000e65e6ef0] [c0000000000788a0] .update_process_times+0x50/0xa8 > [c0000000e65e6f90] [c00000000009875c] .tick_sched_timer+0xb0/0x100 > [c0000000e65e7040] [c00000000008cbf8] .__run_hrtimer+0xa4/0x13c > [c0000000e65e70e0] [c00000000008de64] .hrtimer_interrupt+0x128/0x200 > [c0000000e65e71c0] [c0000000000284c4] .timer_interrupt+0xc0/0x11c > [c0000000e65e7260] [c000000000003710] decrementer_common+0x110/0x180 > --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 > LR = ._spin_lock_irqsave+0x7c/0xd4 > [c0000000e65e7550] [c0000000005ae7a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) > [c0000000e65e75f0] [c00000000010a718] .__mem_cgroup_commit_charge+0xf0/0x154 > [c0000000e65e7690] [c00000000010adf8] .mem_cgroup_end_migration+0xb4/0x130 > [c0000000e65e7730] [c000000000108c84] .migrate_pages+0x460/0x62c > [c0000000e65e7880] [c000000000106760] .offline_pages+0x398/0x5ac > [c0000000e65e7990] [c0000000001069b8] .remove_memory+0x44/0x60 > [c0000000e65e7a20] [c00000000040758c] .memory_block_change_state+0x198/0x230 > [c0000000e65e7ad0] [c000000000407cac] .store_mem_state+0xcc/0x144 > [c0000000e65e7b70] [c0000000003fa8b0] .sysdev_store+0x74/0xa4 > [c0000000e65e7c10] [c00000000017b084] .sysfs_write_file+0x128/0x1a4 > [c0000000e65e7cd0] [c00000000010fb7c] .vfs_write+0xf0/0x1c4 > [c0000000e65e7d80] [c000000000110518] .sys_write+0x6c/0xb8 > [c0000000e65e7e30] [c00000000000852c] syscall_exit+0x0/0x40 > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-12 22:02 ` Badari Pulavarty 2008-11-13 1:09 ` KAMEZAWA Hiroyuki @ 2008-11-13 2:17 ` KAMEZAWA Hiroyuki 2008-11-13 18:53 ` Badari Pulavarty 1 sibling, 1 reply; 12+ messages in thread From: KAMEZAWA Hiroyuki @ 2008-11-13 2:17 UTC (permalink / raw) To: Badari Pulavarty; +Cc: Andrew Morton, linux-mm, linux-kernel On Wed, 12 Nov 2008 14:02:56 -0800 Badari Pulavarty <pbadari@us.ibm.com> wrote: > On Tue, 2008-11-11 at 11:09 +0900, KAMEZAWA Hiroyuki wrote: > > On Tue, 11 Nov 2008 10:14:40 +0900 > > KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote: > > > > > On Mon, 10 Nov 2008 13:43:28 -0800 > > > Badari Pulavarty <pbadari@us.ibm.com> wrote: > > > > > > > Hi KAME, > > > > > > > > Thank you for the fix for online/offline page_cgroup panic. > > > > > > > > While running memory offline/online tests ran into another > > > > mem_cgroup panic. > > > > > > > > > > Hm, should I avoid freeing mem_cgroup at memory Offline ? > > > (memmap is also not free AFAIK.) > > > > > > Anyway, I'll dig this. thanks. > > > > > it seems not the same kind of bug.. > > > > Could you give me disassemble of mem_cgroup_charge_common() ? > > (I'm not sure I can read ppc asm but I want to know what is "0x20" > > of fault address....) > > > > As first impression, it comes from page migration.. > > rc4's page migration handler of memcg handles *usual* path but not so good. > > > > new migration code of memcg in mmotm is much better, I think. > > Could you try mmotm if you have time ? > > I tried mmtom. Its even worse :( > > Ran into following quickly .. Sorry!! > >From > Instruction dump: > 794b1f24 794026e4 7d6bda14 7d3b0214 7d234b78 39490008 e92b0048 39290001 > f92b0048 419e001c e9230008 f93c0018 <f9090008> f9030008 f9480008 48000018 the reason doesn't seem to be different from the one you saw in rc4. We'do add_list() hear, so (maybe) used page_cgroup is zero-cleared, I think. We usually do migration test on cpuset and confirmed this works with migration. Hmm...I susupect following. could you try ? Sorry. -Kame == Index: mmotm-2.6.28-Nov10/mm/page_cgroup.c =================================================================== --- mmotm-2.6.28-Nov10.orig/mm/page_cgroup.c +++ mmotm-2.6.28-Nov10/mm/page_cgroup.c @@ -166,7 +166,7 @@ int online_page_cgroup(unsigned long sta end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION); for (pfn = start; !fail && pfn < end; pfn += PAGES_PER_SECTION) { - if (!pfn_present(pfn)) + if (!pfn_valid(pfn)) continue; fail = init_section_page_cgroup(pfn); } -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-13 2:17 ` KAMEZAWA Hiroyuki @ 2008-11-13 18:53 ` Badari Pulavarty 2008-11-14 4:10 ` KAMEZAWA Hiroyuki 0 siblings, 1 reply; 12+ messages in thread From: Badari Pulavarty @ 2008-11-13 18:53 UTC (permalink / raw) To: KAMEZAWA Hiroyuki; +Cc: Andrew Morton, linux-mm, linux-kernel On Thu, 2008-11-13 at 11:17 +0900, KAMEZAWA Hiroyuki wrote: > On Wed, 12 Nov 2008 14:02:56 -0800 > Badari Pulavarty <pbadari@us.ibm.com> wrote: > > > On Tue, 2008-11-11 at 11:09 +0900, KAMEZAWA Hiroyuki wrote: > > > On Tue, 11 Nov 2008 10:14:40 +0900 > > > KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote: > > > > > > > On Mon, 10 Nov 2008 13:43:28 -0800 > > > > Badari Pulavarty <pbadari@us.ibm.com> wrote: > > > > > > > > > Hi KAME, > > > > > > > > > > Thank you for the fix for online/offline page_cgroup panic. > > > > > > > > > > While running memory offline/online tests ran into another > > > > > mem_cgroup panic. > > > > > > > > > > > > > Hm, should I avoid freeing mem_cgroup at memory Offline ? > > > > (memmap is also not free AFAIK.) > > > > > > > > Anyway, I'll dig this. thanks. > > > > > > > it seems not the same kind of bug.. > > > > > > Could you give me disassemble of mem_cgroup_charge_common() ? > > > (I'm not sure I can read ppc asm but I want to know what is "0x20" > > > of fault address....) > > > > > > As first impression, it comes from page migration.. > > > rc4's page migration handler of memcg handles *usual* path but not so good. > > > > > > new migration code of memcg in mmotm is much better, I think. > > > Could you try mmotm if you have time ? > > > > I tried mmtom. Its even worse :( > > > > Ran into following quickly .. Sorry!! > > > From > > Instruction dump: > > 794b1f24 794026e4 7d6bda14 7d3b0214 7d234b78 39490008 e92b0048 39290001 > > f92b0048 419e001c e9230008 f93c0018 <f9090008> f9030008 f9480008 48000018 > > the reason doesn't seem to be different from the one you saw in rc4. > > We'do add_list() hear, so (maybe) used page_cgroup is zero-cleared, I think. > We usually do migration test on cpuset and confirmed this works with migration. > > Hmm...I susupect following. could you try ? > > Sorry. > -Kame > == > > Index: mmotm-2.6.28-Nov10/mm/page_cgroup.c > =================================================================== > --- mmotm-2.6.28-Nov10.orig/mm/page_cgroup.c > +++ mmotm-2.6.28-Nov10/mm/page_cgroup.c > @@ -166,7 +166,7 @@ int online_page_cgroup(unsigned long sta > end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION); > > for (pfn = start; !fail && pfn < end; pfn += PAGES_PER_SECTION) { > - if (!pfn_present(pfn)) > + if (!pfn_valid(pfn)) > continue; > fail = init_section_page_cgroup(pfn); > } > > I tried mmtom + startpfn fix + this fix + notifier fix. Didn't help. I am not using SLUB (using SLAB). Yes. I am testing "real" memory remove (not just offline/online), since it executes more code of freeing memmap etc. Code that is panicing is list_add() in mem_cgroup_add_list(). I will debug it further. Thanks, Badari Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=32 NUMA pSeries Modules linked in: NIP: c000000000109e50 LR: c000000000109de8 CTR: c0000000000c2414 REGS: c0000000e653f2d0 TRAP: 0300 Not tainted (2.6.28-rc4-mm1) MSR: 8000000000009032 <EE,ME,IR,DR> CR: 44008484 XER: 20000018 DAR: 0000000000000007, DSISR: 0000000042000000 TASK = c0000000e7db9950[4927] 'drmgr' THREAD: c0000000e653c000 CPU: 0 GPR00: 0000000000000020 c0000000e653f550 c000000000b472d8 c0000000e910d558 GPR04: c00000000010a730 c0000000000b96a8 c0000000e653f660 0000000000000000 GPR08: c000000005432358 ffffffffffffffff c0000000e910d560 c0000000e910d548 GPR12: 0000000024000482 c000000000b68300 00000000200957bc 0000000000000000 GPR16: 0000000000000000 c0000000e653f8f8 0000000000000000 c000000000aeea70 GPR20: 0000000000000056 0000000000000000 c00000000370c300 00000000000e6000 GPR24: 0000000000000000 0000000000000000 0000000000000001 c0000000e910d538 GPR28: c000000005432340 0000000000000001 c000000000abc220 c0000000e653f550 NIP [c000000000109e50] .__mem_cgroup_add_list+0x98/0xec LR [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec Call Trace: [c0000000e653f550] [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec (unreliable) [c0000000e653f5f0] [c00000000010a730] .__mem_cgroup_commit_charge+0x108/0x154 [c0000000e653f690] [c00000000010adf8] .mem_cgroup_end_migration+0xb4/0x130 [c0000000e653f730] [c000000000108c84] .migrate_pages+0x460/0x62c [c0000000e653f880] [c000000000106760] .offline_pages+0x398/0x5ac [c0000000e653f990] [c0000000001069b8] .remove_memory+0x44/0x60 [c0000000e653fa20] [c000000000407590] .memory_block_change_state+0x198/0x230 [c0000000e653fad0] [c000000000407cb0] .store_mem_state+0xcc/0x144 [c0000000e653fb70] [c0000000003fa8b4] .sysdev_store+0x74/0xa4 [c0000000e653fc10] [c00000000017b088] .sysfs_write_file+0x128/0x1a4 [c0000000e653fcd0] [c00000000010fb80] .vfs_write+0xf0/0x1c4 [c0000000e653fd80] [c00000000011051c] .sys_write+0x6c/0xb8 [c0000000e653fe30] [c00000000000852c] syscall_exit+0x0/0x40 Instruction dump: 794b1f24 794026e4 7d6bda14 7d3b0214 7d234b78 39490008 e92b0048 39290001 f92b0048 419e001c e9230008 f93c0018 <f9090008> f9030008 f9480008 48000018 ---[ end trace e803fa4abaa22794 ]--- Unable to handle kernel paging request for data at address 0x00000008 Faulting instruction address: 0xc000000000109e50 Oops: Kernel access of bad area, sig: 11 [#2] SMP NR_CPUS=32 NUMA pSeries Modules linked in: NIP: c000000000109e50 LR: c000000000109de8 CTR: c0000000000c2414 REGS: c0000000e63b3110 TRAP: 0300 Tainted: G D (2.6.28-rc4-mm1) MSR: 8000000000009032 <EE,ME,IR,DR> CR: 44044844 XER: 20000010 DAR: 0000000000000008, DSISR: 0000000042000000 TASK = c0000000e9966690[2719] 'syslog-ng' THREAD: c0000000e63b0000 CPU: 1 GPR00: 0000000000000020 c0000000e63b3390 c000000000b472d8 c0000000e910c758 GPR04: c00000000010a730 c0000000000b96a8 0000000000000001 0000000000000000 GPR08: c000000005431ea8 0000000000000000 c0000000e910c760 c0000000e910c748 GPR12: c0000000e6e040f8 c000000000b68500 000000000000f8e5 0000000000000004 GPR16: 0000000000000000 00000000000003fa c0000000e63b3b30 c0000000be125000 GPR20: c0000000be124000 0000000000000005 0000000002180404 0000000000001694 GPR24: 0000000000000000 0000000000000000 0000000000000001 c0000000e910c738 GPR28: c000000005431e90 0000000000000001 c000000000abc220 c0000000e63b3390 NIP [c000000000109e50] .__mem_cgroup_add_list+0x98/0xec LR [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec Call Trace: [c0000000e63b3390] [c000000000109de8] .__mem_cgroup_add_list+0x30/0xec (unreliable) [c0000000e63b3430] [c00000000010a730] .__mem_cgroup_commit_charge+0x108/0x154 [c0000000e63b34d0] [c00000000010af90] .mem_cgroup_charge_common+0x94/0xc4 [c0000000e63b3590] [c00000000010b588] .mem_cgroup_cache_charge+0x130/0x154 [c0000000e63b3630] [c0000000000c5308] .add_to_page_cache_locked+0x64/0x18c [c0000000e63b36e0] [c0000000000c54b0] .add_to_page_cache_lru+0x80/0xe4 [c0000000e63b3780] [c0000000000c59bc] .find_or_create_page+0x74/0xc8 [c0000000e63b3830] [c00000000013e8a4] .__getblk+0x150/0x2f8 [c0000000e63b38f0] [c0000000001aac0c] .do_journal_end+0x9c4/0xfa0 [c0000000e63b3a20] [c0000000001ab28c] .journal_end_sync+0xa4/0xc4 [c0000000e63b3ac0] [c0000000001af044] .reiserfs_commit_for_inode+0x188/0x22c [c0000000e63b3bc0] [c000000000190948] .reiserfs_sync_file+0x6c/0xe4 [c0000000e63b3c60] [c00000000013c114] .do_fsync+0xa0/0x120 [c0000000e63b3d00] [c00000000013c1e4] .__do_fsync+0x50/0x84 [c0000000e63b3da0] [c00000000013c290] .sys_fsync+0x30/0x48 [c0000000e63b3e30] [c00000000000852c] syscall_exit+0x0/0x40 Instruction dump: 794b1f24 794026e4 7d6bda14 7d3b0214 7d234b78 39490008 e92b0048 39290001 f92b0048 419e001c e9230008 f93c0018 <f9090008> f9030008 f9480008 48000018 ---[ end trace e803fa4abaa22794 ]--- INFO: RCU detected CPU 0 stall (t=4295359473/2500 jiffies) Call Trace: [c0000000e6662c90] [c0000000000102bc] .show_stack+0x94/0x198 (unreliable) [c0000000e6662d40] [c0000000000103e8] .dump_stack+0x28/0x3c [c0000000e6662dc0] [c0000000000b338c] .__rcu_pending+0xa8/0x2c4 [c0000000e6662e60] [c0000000000b35f4] .rcu_pending+0x4c/0xa0 [c0000000e6662ef0] [c0000000000788a0] .update_process_times+0x50/0xa8 [c0000000e6662f90] [c00000000009875c] .tick_sched_timer+0xb0/0x100 [c0000000e6663040] [c00000000008cbf8] .__run_hrtimer+0xa4/0x13c [c0000000e66630e0] [c00000000008de64] .hrtimer_interrupt+0x128/0x200 [c0000000e66631c0] [c0000000000284c4] .timer_interrupt+0xc0/0x11c [c0000000e6663260] [c000000000003710] decrementer_common+0x110/0x180 --- Exception: 901 at ._spin_lock_irqsave+0x80/0xd4 LR = ._spin_lock_irqsave+0x7c/0xd4 [c0000000e6663550] [c0000000005ae7a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) [c0000000e66635f0] [c00000000010a718] .__mem_cgroup_commit_charge+0xf0/0x154 [c0000000e6663690] [c00000000010adf8] .mem_cgroup_end_migration+0xb4/0x130 [c0000000e6663730] [c000000000108c84] .migrate_pages+0x460/0x62c [c0000000e6663880] [c000000000106760] .offline_pages+0x398/0x5ac [c0000000e6663990] [c0000000001069b8] .remove_memory+0x44/0x60 [c0000000e6663a20] [c000000000407590] .memory_block_change_state+0x198/0x230 [c0000000e6663ad0] [c000000000407cb0] .store_mem_state+0xcc/0x144 [c0000000e6663b70] [c0000000003fa8b4] .sysdev_store+0x74/0xa4 [c0000000e6663c10] [c00000000017b088] .sysfs_write_file+0x128/0x1a4 [c0000000e6663cd0] [c00000000010fb80] .vfs_write+0xf0/0x1c4 [c0000000e6663d80] [c00000000011051c] .sys_write+0x6c/0xb8 [c0000000e6663e30] [c00000000000852c] syscall_exit+0x0/0x40 INFO: RCU detected CPU 0 stall (t=4295366973/10000 jiffies) Call Trace: [c0000000e6662c90] [c0000000000102bc] .show_stack+0x94/0x198 (unreliable) [c0000000e6662d40] [c0000000000103e8] .dump_stack+0x28/0x3c [c0000000e6662dc0] [c0000000000b338c] .__rcu_pending+0xa8/0x2c4 [c0000000e6662e60] [c0000000000b35f4] .rcu_pending+0x4c/0xa0 [c0000000e6662ef0] [c0000000000788a0] .update_process_times+0x50/0xa8 [c0000000e6662f90] [c00000000009875c] .tick_sched_timer+0xb0/0x100 [c0000000e6663040] [c00000000008cbf8] .__run_hrtimer+0xa4/0x13c [c0000000e66630e0] [c00000000008de64] .hrtimer_interrupt+0x128/0x200 [c0000000e66631c0] [c0000000000284c4] .timer_interrupt+0xc0/0x11c [c0000000e6663260] [c000000000003710] decrementer_common+0x110/0x180 --- Exception: 901 at ._spin_lock_irqsave+0x84/0xd4 LR = ._spin_lock_irqsave+0x7c/0xd4 [c0000000e6663550] [c0000000005ae7a0] ._spin_lock_irqsave+0x28/0xd4 (unreliable) [c0000000e66635f0] [c00000000010a718] .__mem_cgroup_commit_charge+0xf0/0x154 [c0000000e6663690] [c00000000010adf8] .mem_cgroup_end_migration+0xb4/0x130 [c0000000e6663730] [c000000000108c84] .migrate_pages+0x460/0x62c [c0000000e6663880] [c000000000106760] .offline_pages+0x398/0x5ac [c0000000e6663990] [c0000000001069b8] .remove_memory+0x44/0x60 [c0000000e6663a20] [c000000000407590] .memory_block_change_state+0x198/0x230 [c0000000e6663ad0] [c000000000407cb0] .store_mem_state+0xcc/0x144 [c0000000e6663b70] [c0000000003fa8b4] .sysdev_store+0x74/0xa4 [c0000000e6663c10] [c00000000017b088] .sysfs_write_file+0x128/0x1a4 [c0000000e6663cd0] [c00000000010fb80] .vfs_write+0xf0/0x1c4 [c0000000e6663d80] [c00000000011051c] .sys_write+0x6c/0xb8 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-13 18:53 ` Badari Pulavarty @ 2008-11-14 4:10 ` KAMEZAWA Hiroyuki 2008-11-17 21:30 ` Badari Pulavarty 0 siblings, 1 reply; 12+ messages in thread From: KAMEZAWA Hiroyuki @ 2008-11-14 4:10 UTC (permalink / raw) To: Badari Pulavarty; +Cc: Andrew Morton, linux-mm, linux-kernel On Thu, 13 Nov 2008 10:53:24 -0800 Badari Pulavarty <pbadari@us.ibm.com> wrote: > I tried mmtom + startpfn fix + this fix + notifier fix. Didn't help. > I am not using SLUB (using SLAB). Yes. I am testing "real" memory > remove (not just offline/online), since it executes more code of > freeing memmap etc. > > Code that is panicing is list_add() in mem_cgroup_add_list(). > I will debug it further. > Considering difference between "real" memory hotplug and logical ones, I found this. I hope this fixes the bug. But I myself can't do test this.. Thanks, -Kame == Fixes for memcg/memory hotplug. While memory hotplug allocate/free memmap, page_cgroup doesn't free page_cgroup at OFFLINE when page_cgroup is allocated via bootomem. (Because freeing bootmem requires special care.) Then, if page_cgroup is allocated by bootmem and memmap is freed/allocated by memory hotplug, page_cgroup->page == page is no longer true and we have to update that. But current MEM_ONLINE handler doesn't check it and update page_cgroup->page if it's not necessary to allocate page_cgroup. And I noticed that MEM_ONLINE can be called against "part of section". So, freeing page_cgroup at CANCEL_ONLINE will cause trouble. (freeing used page_cgroup) Don't rollback at CANCEL. One more, current memory hotplug notifier is stopped by slub because it sets NOTIFY_STOP_MASK to return vaule. So, page_cgroup's callback never be called. (low priority than slub now.) I think this slub's behavior is not intentional(BUG). and fixes it. Another way to be considered about page_cgroup allocation: - free page_cgroup at OFFLINE even if it's from bootmem and remove specieal handler. But it requires more changes. Signed-off-by: KAMEZAWA Hiruyoki <kamezawa.hiroyu@jp.fujitsu.com> --- mm/page_cgroup.c | 39 +++++++++++++++++++++++++++------------ mm/slub.c | 6 ++++-- 2 files changed, 31 insertions(+), 14 deletions(-) Index: mmotm-2.6.28-Nov10/mm/page_cgroup.c =================================================================== --- mmotm-2.6.28-Nov10.orig/mm/page_cgroup.c +++ mmotm-2.6.28-Nov10/mm/page_cgroup.c @@ -104,18 +104,30 @@ int __meminit init_section_page_cgroup(u unsigned long table_size; int nid, index; - if (section->page_cgroup) - return 0; + if (!section->page_cgroup) { - nid = page_to_nid(pfn_to_page(pfn)); - table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; - if (slab_is_available()) { - base = kmalloc_node(table_size, GFP_KERNEL, nid); - if (!base) - base = vmalloc_node(table_size, nid); - } else { - base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), table_size, + nid = page_to_nid(pfn_to_page(pfn)); + table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; + if (slab_is_available()) { + base = kmalloc_node(table_size, GFP_KERNEL, nid); + if (!base) + base = vmalloc_node(table_size, nid); + } else { + base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), + table_size, PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); + } + } else { + /* + * We don't have to allocate page_cgroup again, but + * address of memmap may be changed. So, we have to initialize + * again. + */ + base = section->page_cgroup + pfn; + table_size = 0; + /* check address of memmap is changed or not. */ + if (base->page == pfn_to_page(pfn)) + return 0; } if (!base) { @@ -204,19 +216,22 @@ static int page_cgroup_callback(struct n ret = online_page_cgroup(mn->start_pfn, mn->nr_pages, mn->status_change_nid); break; - case MEM_CANCEL_ONLINE: case MEM_OFFLINE: offline_page_cgroup(mn->start_pfn, mn->nr_pages, mn->status_change_nid); break; case MEM_GOING_OFFLINE: + case MEM_CANCEL_ONLINE: break; case MEM_ONLINE: case MEM_CANCEL_OFFLINE: break; } - ret = notifier_from_errno(ret); + if (ret) + ret = notifier_from_errno(ret); + else + ret = NOTIFY_OK; return ret; } Index: mmotm-2.6.28-Nov10/mm/slub.c =================================================================== --- mmotm-2.6.28-Nov10.orig/mm/slub.c +++ mmotm-2.6.28-Nov10/mm/slub.c @@ -3220,8 +3220,10 @@ static int slab_memory_callback(struct n case MEM_CANCEL_OFFLINE: break; } - - ret = notifier_from_errno(ret); + if (ret) + ret = notifier_from_errno(ret); + else + ret = NOTIFY_OK; return ret; } -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-14 4:10 ` KAMEZAWA Hiroyuki @ 2008-11-17 21:30 ` Badari Pulavarty 2008-11-18 1:08 ` KAMEZAWA Hiroyuki 0 siblings, 1 reply; 12+ messages in thread From: Badari Pulavarty @ 2008-11-17 21:30 UTC (permalink / raw) To: KAMEZAWA Hiroyuki; +Cc: Andrew Morton, linux-mm, linux-kernel On Fri, 2008-11-14 at 13:10 +0900, KAMEZAWA Hiroyuki wrote: > On Thu, 13 Nov 2008 10:53:24 -0800 > Badari Pulavarty <pbadari@us.ibm.com> wrote: > > I tried mmtom + startpfn fix + this fix + notifier fix. Didn't help. > > I am not using SLUB (using SLAB). Yes. I am testing "real" memory > > remove (not just offline/online), since it executes more code of > > freeing memmap etc. > > > > Code that is panicing is list_add() in mem_cgroup_add_list(). > > I will debug it further. > > > > Considering difference between "real" memory hotplug and logical ones, > I found this. I hope this fixes the bug. > But I myself can't do test this.. > > Thanks, > -Kame > Kame, With this patch I am able to run tests without any issues. Sorry for delayed response, I wanted to make sure test runs fine over the weekend. Tested-by: Badari Pulavarty <pbadari@us.ibm.com> Thanks, Badari > == > Fixes for memcg/memory hotplug. > > > While memory hotplug allocate/free memmap, page_cgroup doesn't free > page_cgroup at OFFLINE when page_cgroup is allocated via bootomem. > (Because freeing bootmem requires special care.) > > Then, if page_cgroup is allocated by bootmem and memmap is freed/allocated > by memory hotplug, page_cgroup->page == page is no longer true and > we have to update that. > > But current MEM_ONLINE handler doesn't check it and update page_cgroup->page > if it's not necessary to allocate page_cgroup. > > And I noticed that MEM_ONLINE can be called against "part of section". > So, freeing page_cgroup at CANCEL_ONLINE will cause trouble. > (freeing used page_cgroup) > Don't rollback at CANCEL. > > One more, current memory hotplug notifier is stopped by slub > because it sets NOTIFY_STOP_MASK to return vaule. So, page_cgroup's callback > never be called. (low priority than slub now.) > > I think this slub's behavior is not intentional(BUG). and fixes it. > > > Another way to be considered about page_cgroup allocation: > - free page_cgroup at OFFLINE even if it's from bootmem > and remove specieal handler. But it requires more changes. > > > Signed-off-by: KAMEZAWA Hiruyoki <kamezawa.hiroyu@jp.fujitsu.com> > > --- > mm/page_cgroup.c | 39 +++++++++++++++++++++++++++------------ > mm/slub.c | 6 ++++-- > 2 files changed, 31 insertions(+), 14 deletions(-) > > Index: mmotm-2.6.28-Nov10/mm/page_cgroup.c > =================================================================== > --- mmotm-2.6.28-Nov10.orig/mm/page_cgroup.c > +++ mmotm-2.6.28-Nov10/mm/page_cgroup.c > @@ -104,18 +104,30 @@ int __meminit init_section_page_cgroup(u > unsigned long table_size; > int nid, index; > > - if (section->page_cgroup) > - return 0; > + if (!section->page_cgroup) { > > - nid = page_to_nid(pfn_to_page(pfn)); > - table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; > - if (slab_is_available()) { > - base = kmalloc_node(table_size, GFP_KERNEL, nid); > - if (!base) > - base = vmalloc_node(table_size, nid); > - } else { > - base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), table_size, > + nid = page_to_nid(pfn_to_page(pfn)); > + table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; > + if (slab_is_available()) { > + base = kmalloc_node(table_size, GFP_KERNEL, nid); > + if (!base) > + base = vmalloc_node(table_size, nid); > + } else { > + base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), > + table_size, > PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); > + } > + } else { > + /* > + * We don't have to allocate page_cgroup again, but > + * address of memmap may be changed. So, we have to initialize > + * again. > + */ > + base = section->page_cgroup + pfn; > + table_size = 0; > + /* check address of memmap is changed or not. */ > + if (base->page == pfn_to_page(pfn)) > + return 0; > } > > if (!base) { > @@ -204,19 +216,22 @@ static int page_cgroup_callback(struct n > ret = online_page_cgroup(mn->start_pfn, > mn->nr_pages, mn->status_change_nid); > break; > - case MEM_CANCEL_ONLINE: > case MEM_OFFLINE: > offline_page_cgroup(mn->start_pfn, > mn->nr_pages, mn->status_change_nid); > break; > case MEM_GOING_OFFLINE: > + case MEM_CANCEL_ONLINE: > break; > case MEM_ONLINE: > case MEM_CANCEL_OFFLINE: > break; > } > > - ret = notifier_from_errno(ret); > + if (ret) > + ret = notifier_from_errno(ret); > + else > + ret = NOTIFY_OK; > > return ret; > } > Index: mmotm-2.6.28-Nov10/mm/slub.c > =================================================================== > --- mmotm-2.6.28-Nov10.orig/mm/slub.c > +++ mmotm-2.6.28-Nov10/mm/slub.c > @@ -3220,8 +3220,10 @@ static int slab_memory_callback(struct n > case MEM_CANCEL_OFFLINE: > break; > } > - > - ret = notifier_from_errno(ret); > + if (ret) > + ret = notifier_from_errno(ret); > + else > + ret = NOTIFY_OK; > return ret; > } > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: 2.6.28-rc4 mem_cgroup_charge_common panic 2008-11-17 21:30 ` Badari Pulavarty @ 2008-11-18 1:08 ` KAMEZAWA Hiroyuki 0 siblings, 0 replies; 12+ messages in thread From: KAMEZAWA Hiroyuki @ 2008-11-18 1:08 UTC (permalink / raw) To: Badari Pulavarty; +Cc: Andrew Morton, linux-mm, linux-kernel On Mon, 17 Nov 2008 13:30:08 -0800 Badari Pulavarty <pbadari@us.ibm.com> wrote: > On Fri, 2008-11-14 at 13:10 +0900, KAMEZAWA Hiroyuki wrote: > > On Thu, 13 Nov 2008 10:53:24 -0800 > > Badari Pulavarty <pbadari@us.ibm.com> wrote: > > > I tried mmtom + startpfn fix + this fix + notifier fix. Didn't help. > > > I am not using SLUB (using SLAB). Yes. I am testing "real" memory > > > remove (not just offline/online), since it executes more code of > > > freeing memmap etc. > > > > > > Code that is panicing is list_add() in mem_cgroup_add_list(). > > > I will debug it further. > > > > > > > Considering difference between "real" memory hotplug and logical ones, > > I found this. I hope this fixes the bug. > > But I myself can't do test this.. > > > > Thanks, > > -Kame > > > > Kame, > > With this patch I am able to run tests without any issues. > > Sorry for delayed response, I wanted to make sure test runs fine over > the weekend. > > Tested-by: Badari Pulavarty <pbadari@us.ibm.com> > Wow, Thank you! -Kame > Thanks, > Badari > > > > == > > Fixes for memcg/memory hotplug. > > > > > > While memory hotplug allocate/free memmap, page_cgroup doesn't free > > page_cgroup at OFFLINE when page_cgroup is allocated via bootomem. > > (Because freeing bootmem requires special care.) > > > > Then, if page_cgroup is allocated by bootmem and memmap is freed/allocated > > by memory hotplug, page_cgroup->page == page is no longer true and > > we have to update that. > > > > But current MEM_ONLINE handler doesn't check it and update page_cgroup->page > > if it's not necessary to allocate page_cgroup. > > > > And I noticed that MEM_ONLINE can be called against "part of section". > > So, freeing page_cgroup at CANCEL_ONLINE will cause trouble. > > (freeing used page_cgroup) > > Don't rollback at CANCEL. > > > > One more, current memory hotplug notifier is stopped by slub > > because it sets NOTIFY_STOP_MASK to return vaule. So, page_cgroup's callback > > never be called. (low priority than slub now.) > > > > I think this slub's behavior is not intentional(BUG). and fixes it. > > > > > > Another way to be considered about page_cgroup allocation: > > - free page_cgroup at OFFLINE even if it's from bootmem > > and remove specieal handler. But it requires more changes. > > > > > > Signed-off-by: KAMEZAWA Hiruyoki <kamezawa.hiroyu@jp.fujitsu.com> > > > > --- > > mm/page_cgroup.c | 39 +++++++++++++++++++++++++++------------ > > mm/slub.c | 6 ++++-- > > 2 files changed, 31 insertions(+), 14 deletions(-) > > > > Index: mmotm-2.6.28-Nov10/mm/page_cgroup.c > > =================================================================== > > --- mmotm-2.6.28-Nov10.orig/mm/page_cgroup.c > > +++ mmotm-2.6.28-Nov10/mm/page_cgroup.c > > @@ -104,18 +104,30 @@ int __meminit init_section_page_cgroup(u > > unsigned long table_size; > > int nid, index; > > > > - if (section->page_cgroup) > > - return 0; > > + if (!section->page_cgroup) { > > > > - nid = page_to_nid(pfn_to_page(pfn)); > > - table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; > > - if (slab_is_available()) { > > - base = kmalloc_node(table_size, GFP_KERNEL, nid); > > - if (!base) > > - base = vmalloc_node(table_size, nid); > > - } else { > > - base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), table_size, > > + nid = page_to_nid(pfn_to_page(pfn)); > > + table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; > > + if (slab_is_available()) { > > + base = kmalloc_node(table_size, GFP_KERNEL, nid); > > + if (!base) > > + base = vmalloc_node(table_size, nid); > > + } else { > > + base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), > > + table_size, > > PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); > > + } > > + } else { > > + /* > > + * We don't have to allocate page_cgroup again, but > > + * address of memmap may be changed. So, we have to initialize > > + * again. > > + */ > > + base = section->page_cgroup + pfn; > > + table_size = 0; > > + /* check address of memmap is changed or not. */ > > + if (base->page == pfn_to_page(pfn)) > > + return 0; > > } > > > > if (!base) { > > @@ -204,19 +216,22 @@ static int page_cgroup_callback(struct n > > ret = online_page_cgroup(mn->start_pfn, > > mn->nr_pages, mn->status_change_nid); > > break; > > - case MEM_CANCEL_ONLINE: > > case MEM_OFFLINE: > > offline_page_cgroup(mn->start_pfn, > > mn->nr_pages, mn->status_change_nid); > > break; > > case MEM_GOING_OFFLINE: > > + case MEM_CANCEL_ONLINE: > > break; > > case MEM_ONLINE: > > case MEM_CANCEL_OFFLINE: > > break; > > } > > > > - ret = notifier_from_errno(ret); > > + if (ret) > > + ret = notifier_from_errno(ret); > > + else > > + ret = NOTIFY_OK; > > > > return ret; > > } > > Index: mmotm-2.6.28-Nov10/mm/slub.c > > =================================================================== > > --- mmotm-2.6.28-Nov10.orig/mm/slub.c > > +++ mmotm-2.6.28-Nov10/mm/slub.c > > @@ -3220,8 +3220,10 @@ static int slab_memory_callback(struct n > > case MEM_CANCEL_OFFLINE: > > break; > > } > > - > > - ret = notifier_from_errno(ret); > > + if (ret) > > + ret = notifier_from_errno(ret); > > + else > > + ret = NOTIFY_OK; > > return ret; > > } > > > > > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* [BUGFIX][PATCH] memory hotplug: fix notiier chain return value (Was Re: 2.6.28-rc4 mem_cgroup_charge_common panic) 2008-11-10 21:43 2.6.28-rc4 mem_cgroup_charge_common panic Badari Pulavarty 2008-11-11 1:14 ` KAMEZAWA Hiroyuki @ 2008-11-13 11:27 ` KAMEZAWA Hiroyuki 2008-11-13 17:11 ` Badari Pulavarty 1 sibling, 1 reply; 12+ messages in thread From: KAMEZAWA Hiroyuki @ 2008-11-13 11:27 UTC (permalink / raw) To: Badari Pulavarty; +Cc: Andrew Morton, linux-mm, linux-kernel Badari, I think you used SLUB. If so, page_cgroup's notifier callback was not called and newly allocated page's page_cgroup wasn't allocated. This is a fix. (notifier saw STOP_HERE flag added by slub's notifier.) I'm now testing modified kernel, which does alloc/free page_cgroup by notifier. (Usually, all page_cgroups are from bootmem and not freed. so, modified a bit for test) And I cannot reproduce panic. I think you do "real" memory hotplug other than online/offline and saw panic caused by this. Is this slub's behavior intentional ? page_cgroup's notifier has lower priority than slub, now. Thanks, -Kame == notifier callback's notifier_from_errno() just works well in error route. (It adds mask for "stop here") Hanlder should return NOTIFY_OK in explict way. Signed-off-by:KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> --- mm/page_cgroup.c | 5 ++++- mm/slub.c | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) Index: mmotm-2.6.28-Nov10/mm/slub.c =================================================================== --- mmotm-2.6.28-Nov10.orig/mm/slub.c +++ mmotm-2.6.28-Nov10/mm/slub.c @@ -3220,8 +3220,10 @@ static int slab_memory_callback(struct n case MEM_CANCEL_OFFLINE: break; } - - ret = notifier_from_errno(ret); + if (ret) + ret = notifier_from_errno(ret); + else + ret = NOTIFY_OK; return ret; } Index: mmotm-2.6.28-Nov10/mm/page_cgroup.c =================================================================== --- mmotm-2.6.28-Nov10.orig/mm/page_cgroup.c +++ mmotm-2.6.28-Nov10/mm/page_cgroup.c @@ -216,7 +216,10 @@ static int page_cgroup_callback(struct n break; } - ret = notifier_from_errno(ret); + if (ret) + ret = notifier_from_errno(ret); + else + ret = NOTIFY_OK; return ret; } -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [BUGFIX][PATCH] memory hotplug: fix notiier chain return value (Was Re: 2.6.28-rc4 mem_cgroup_charge_common panic) 2008-11-13 11:27 ` [BUGFIX][PATCH] memory hotplug: fix notiier chain return value (Was Re: 2.6.28-rc4 mem_cgroup_charge_common panic) KAMEZAWA Hiroyuki @ 2008-11-13 17:11 ` Badari Pulavarty 0 siblings, 0 replies; 12+ messages in thread From: Badari Pulavarty @ 2008-11-13 17:11 UTC (permalink / raw) To: KAMEZAWA Hiroyuki; +Cc: Andrew Morton, linux-mm, linux-kernel On Thu, 2008-11-13 at 20:27 +0900, KAMEZAWA Hiroyuki wrote: > Badari, I think you used SLUB. If so, page_cgroup's notifier callback was not > called and newly allocated page's page_cgroup wasn't allocated. > This is a fix. (notifier saw STOP_HERE flag added by slub's notifier.) No. I wasn't using SLUB. # egrep "SLUB|SLAB" .config CONFIG_SLAB=y # CONFIG_SLUB is not set CONFIG_SLABINFO=y # CONFIG_DEBUG_SLAB is not set I can test the patch and let you know. Thanks, Badari > > I'm now testing modified kernel, which does alloc/free page_cgroup by notifier. > (Usually, all page_cgroups are from bootmem and not freed. > so, modified a bit for test) > > And I cannot reproduce panic. I think you do "real" memory hotplug other than > online/offline and saw panic caused by this. > > Is this slub's behavior intentional ? page_cgroup's notifier has lower priority > than slub, now. > > Thanks, > -Kame > == > notifier callback's notifier_from_errno() just works well in error > route. (It adds mask for "stop here") > > Hanlder should return NOTIFY_OK in explict way. > > Signed-off-by:KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> > --- > mm/page_cgroup.c | 5 ++++- > mm/slub.c | 6 ++++-- > 2 files changed, 8 insertions(+), 3 deletions(-) > > Index: mmotm-2.6.28-Nov10/mm/slub.c > =================================================================== > --- mmotm-2.6.28-Nov10.orig/mm/slub.c > +++ mmotm-2.6.28-Nov10/mm/slub.c > @@ -3220,8 +3220,10 @@ static int slab_memory_callback(struct n > case MEM_CANCEL_OFFLINE: > break; > } > - > - ret = notifier_from_errno(ret); > + if (ret) > + ret = notifier_from_errno(ret); > + else > + ret = NOTIFY_OK; > return ret; > } > > Index: mmotm-2.6.28-Nov10/mm/page_cgroup.c > =================================================================== > --- mmotm-2.6.28-Nov10.orig/mm/page_cgroup.c > +++ mmotm-2.6.28-Nov10/mm/page_cgroup.c > @@ -216,7 +216,10 @@ static int page_cgroup_callback(struct n > break; > } > > - ret = notifier_from_errno(ret); > + if (ret) > + ret = notifier_from_errno(ret); > + else > + ret = NOTIFY_OK; > > return ret; > } > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2008-11-18 1:09 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-11-10 21:43 2.6.28-rc4 mem_cgroup_charge_common panic Badari Pulavarty 2008-11-11 1:14 ` KAMEZAWA Hiroyuki 2008-11-11 2:09 ` KAMEZAWA Hiroyuki 2008-11-12 22:02 ` Badari Pulavarty 2008-11-13 1:09 ` KAMEZAWA Hiroyuki 2008-11-13 2:17 ` KAMEZAWA Hiroyuki 2008-11-13 18:53 ` Badari Pulavarty 2008-11-14 4:10 ` KAMEZAWA Hiroyuki 2008-11-17 21:30 ` Badari Pulavarty 2008-11-18 1:08 ` KAMEZAWA Hiroyuki 2008-11-13 11:27 ` [BUGFIX][PATCH] memory hotplug: fix notiier chain return value (Was Re: 2.6.28-rc4 mem_cgroup_charge_common panic) KAMEZAWA Hiroyuki 2008-11-13 17:11 ` Badari Pulavarty
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox