Johannes Weiner <hannes@xxxxxxxxxxx> writes: > From 89ed86b5b538d8debd3c29567d7e1d31257fa577 Mon Sep 17 00:00:00 2001 > From: Johannes Weiner <hannes@xxxxxxxxxxx> > Date: Mon, 5 Jun 2017 14:12:15 -0400 > Subject: [PATCH] mm: vmstat: move slab statistics from zone to node counters > fix > > Unable to handle kernel paging request at virtual address 2e116007 > pgd = c0004000 > [2e116007] *pgd=00000000 > Internal error: Oops: 5 [#1] SMP ARM > Modules linked in: > CPU: 0 PID: 0 Comm: swapper Not tainted 4.12.0-rc3-00153-gb6bc6724488a #200 > Hardware name: Generic DRA74X (Flattened Device Tree) > task: c0d0adc0 task.stack: c0d00000 > PC is at __mod_node_page_state+0x2c/0xc8 > LR is at __per_cpu_offset+0x0/0x8 > pc : [<c0271de8>] lr : [<c0d07da4>] psr: 600000d3 > sp : c0d01eec ip : 00000000 fp : c15782f4 > r10: 00000000 r9 : c1591280 r8 : 00004000 > r7 : 00000001 r6 : 00000006 r5 : 2e116000 r4 : 00000007 > r3 : 00000007 r2 : 00000001 r1 : 00000006 r0 : c0dc27c0 > Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment none > Control: 10c5387d Table: 8000406a DAC: 00000051 > Process swapper (pid: 0, stack limit = 0xc0d00218) > Stack: (0xc0d01eec to 0xc0d02000) > 1ee0: 600000d3 c0dc27c0 c0271efc 00000001 c0d58864 > 1f00: ef470000 00008000 00004000 c029fbb0 01000000 c1572b5c 00002000 00000000 > 1f20: 00000001 00000001 00008000 c029f584 00000000 c0d58864 00008000 00008000 > 1f40: 01008000 c0c23790 c15782f4 a00000d3 c0d58864 c02a0364 00000000 c0819388 > 1f60: c0d58864 000000c0 01000000 c1572a58 c0aa57a4 00000080 00002000 c0dca000 > 1f80: efffe980 c0c53a48 00000000 c0c23790 c1572a58 c0c59e48 c0c59de8 c1572b5c > 1fa0: c0dca000 c0c257a4 00000000 ffffffff c0dca000 c0d07940 c0dca000 c0c00a9c > 1fc0: ffffffff ffffffff 00000000 c0c00680 00000000 c0c53a48 c0dca214 c0d07958 > 1fe0: c0c53a44 c0d0caa4 8000406a 412fc0f2 00000000 8000807c 00000000 00000000 > [<c0271de8>] (__mod_node_page_state) from [<c0271efc>] (mod_node_page_state+0x2c/0x4c) > [<c0271efc>] (mod_node_page_state) from [<c029fbb0>] (cache_alloc_refill+0x5b8/0x828) > [<c029fbb0>] (cache_alloc_refill) from [<c02a0364>] (kmem_cache_alloc+0x24c/0x2d0) > [<c02a0364>] (kmem_cache_alloc) from [<c0c23790>] (create_kmalloc_cache+0x20/0x8c) > [<c0c23790>] (create_kmalloc_cache) from [<c0c257a4>] (kmem_cache_init+0xac/0x11c) > [<c0c257a4>] (kmem_cache_init) from [<c0c00a9c>] (start_kernel+0x1b8/0x3c0) > [<c0c00a9c>] (start_kernel) from [<8000807c>] (0x8000807c) > Code: e79e5103 e28c3001 e0833001 e1a04003 (e19440d5) > ---[ end trace 0000000000000000 ]--- Just to be clear that's not my call trace. > The zone counters work earlier than the node counters because the > zones have special boot pagesets, whereas the nodes do not. > > Add boot nodestats against which we account until the dynamic per-cpu > allocator is available. This isn't working for me. I applied it on top of next-20170605, I still get an oops: $ qemu-system-ppc64 -M pseries -m 1G -kernel build/vmlinux -vga none -nographic SLOF ********************************************************************** QEMU Starting ... Linux version 4.12.0-rc3-gcc-5.4.1-next-20170605-dirty (michael@xxxxxxxxxxxxxxxxxx) (gcc version 5.4.1 20170214 (Custom 2af61cd06c9fd8f5) ) #352 SMP Tue Jun 6 14:09:57 AEST 2017 ... PID hash table entries: 4096 (order: -1, 32768 bytes) Memory: 1014592K/1048576K available (9920K kernel code, 1536K rwdata, 2608K rodata, 832K init, 1420K bss, 33984K reserved, 0K cma-reserved) Unable to handle kernel paging request for data at address 0x00000338 Faulting instruction address: 0xc0000000002cf338 Oops: Kernel access of bad area, sig: 11 [#1] SMP NR_CPUS=2048 NUMA pSeries Modules linked in: CPU: 0 PID: 0 Comm: swapper Not tainted 4.12.0-rc3-gcc-5.4.1-next-20170605-dirty #352 task: c000000000d11080 task.stack: c000000000e24000 NIP: c0000000002cf338 LR: c0000000002cf0dc CTR: 0000000000000000 REGS: c000000000e279a0 TRAP: 0380 Not tainted (4.12.0-rc3-gcc-5.4.1-next-20170605-dirty) MSR: 8000000002001033 <SF,VEC,ME,IR,DR,RI,LE> CR: 22482242 XER: 00000000 CFAR: c0000000002cf6a0 SOFTE: 0 GPR00: c0000000002cf0dc c000000000e27c20 c000000000e28300 c00000003ffc6300 GPR04: c000000000e556f8 0000000000000000 000000003f120000 0000000000000000 GPR08: c000000000ed3058 0000000000000330 0000000000000000 ffffffffffffff80 GPR12: 0000000028402824 c00000000fd40000 0000000000000060 0000000000f540a8 GPR16: 0000000000f540d8 fffffffffffffffd 000000003dc54ee0 0000000000000014 GPR20: c000000000b90e60 c000000000b90e90 0000000000002000 0000000000000000 GPR24: 0000000000000401 0000000000000000 0000000000000001 c00000003e000000 GPR28: 0000000080010400 f0000000000f8000 0000000000000006 c000000000cb4270 NIP [c0000000002cf338] new_slab+0x338/0x770 LR [c0000000002cf0dc] new_slab+0xdc/0x770 Call Trace: [c000000000e27c20] [c0000000002cf0dc] new_slab+0xdc/0x770 (unreliable) [c000000000e27cf0] [c0000000002d6bb4] __kmem_cache_create+0x1a4/0x6a0 [c000000000e27e00] [c000000000c73098] create_boot_cache+0x98/0xdc [c000000000e27e80] [c000000000c77608] kmem_cache_init+0x5c/0x160 [c000000000e27f00] [c000000000c43ec8] start_kernel+0x290/0x51c [c000000000e27f90] [c00000000000b070] start_here_common+0x1c/0x4ac Instruction dump: 419e0388 893d0007 3d02000b 3908ad58 79291f24 7c68482a 60000000 3d230001 e9299a42 39290066 79291f24 7d2a4a14 <eb890008> e93c0080 7fa34800 409e03b0 ---[ end trace 0000000000000000 ]--- cheers -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>