{"push_id":2914420082,"size":1,"distinct_size":1,"ref":"refs/heads/powerpc_numa_Skip_onlining_a_offline_node_in_kdump_path_mbox_next","head":"69f1f61187151db43ef12d25b3dec21f75285713","before":"a3bd103df0e0f5a2d9df05a1cbacb0ecbf6b5e0c","commits":[{"sha":"69f1f61187151db43ef12d25b3dec21f75285713","author":{"name":"Srikar Dronamraju","email":"1f69195f6d934d4caf5816234bde319316df237e@linux.vnet.ibm.com"},"message":"powerpc/numa: Skip onlining a offline node in kdump path\n\nWith Commit 2ea626306810 (\"powerpc/topology: Get topology for shared\nprocessors at boot\"), kdump kernel on shared lpar may crash.\n\nThe necessary conditions are\n- Shared Lpar with atleast 2 nodes having memory and CPUs.\n- Memory requirement for kdump kernel must be met by the first N-1 nodes\n  where there are atleast N nodes with memory and CPUs.\n\nExample numactl of such a machine.\n numactl -H\navailable: 5 nodes (0,2,5-7)\nnode 0 cpus:\nnode 0 size: 0 MB\nnode 0 free: 0 MB\nnode 2 cpus:\nnode 2 size: 255 MB\nnode 2 free: 189 MB\nnode 5 cpus: 24 25 26 27 28 29 30 31\nnode 5 size: 4095 MB\nnode 5 free: 4024 MB\nnode 6 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23\nnode 6 size: 6353 MB\nnode 6 free: 5998 MB\nnode 7 cpus: 8 9 10 11 12 13 14 15 32 33 34 35 36 37 38 39\nnode 7 size: 7640 MB\nnode 7 free: 7164 MB\nnode distances:\nnode   0   2   5   6   7\n  0:  10  40  40  40  40\n  2:  40  10  40  40  40\n  5:  40  40  10  40  40\n  6:  40  40  40  10  20\n  7:  40  40  40  20  10\n\nSteps to reproduce.\n1. Load / start kdump service.\n2. Trigger a kdump (for example : echo c > /proc/sysrq-trigger)\n\nWhen booting a kdump kernel with 2048M\nkexec: Starting switchover sequence.\nI'm in purgatory\nUsing 1TB segments\nhash-mmu: Initializing hash mmu with SLB\nLinux version 4.19.0-rc5-master+ (srikar@linux-xxu6) (gcc version 4.8.5 (SUSE Linux)) #1 SMP Thu Sep 27 19:45:00 IST 2018\nFound initrd at 0xc000000009e70000:0xc00000000ae554b4\nUsing pSeries machine description\n-----------------------------------------------------\nppc64_pft_size    = 0x1e\nphys_mem_size     = 0x88000000\ndcache_bsize      = 0x80\nicache_bsize      = 0x80\ncpu_features      = 0x000000ff8f5d91a7\n  possible        = 0x0000fbffcf5fb1a7\n  always          = 0x0000006f8b5c91a1\ncpu_user_features = 0xdc0065c2 0xef000000\nmmu_features      = 0x7c006001\nfirmware_features = 0x00000007c45bfc57\nhtab_hash_mask    = 0x7fffff\nphysical_start    = 0x8000000\n-----------------------------------------------------\nnuma:   NODE_DATA [mem 0x87d5e300-0x87d67fff]\nnuma:     NODE_DATA(0) on node 6\nnuma:   NODE_DATA [mem 0x87d54600-0x87d5e2ff]\nTop of RAM: 0x88000000, Total RAM: 0x88000000\nMemory hole size: 0MB\nZone ranges:\n  DMA      [mem 0x0000000000000000-0x0000000087ffffff]\n  DMA32    empty\n  Normal   empty\nMovable zone start for each node\nEarly memory node ranges\n  node   6: [mem 0x0000000000000000-0x0000000087ffffff]\nCould not find start_pfn for node 0\nInitmem setup node 0 [mem 0x0000000000000000-0x0000000000000000]\nOn node 0 totalpages: 0\nInitmem setup node 6 [mem 0x0000000000000000-0x0000000087ffffff]\nOn node 6 totalpages: 34816\n\nUnable to handle kernel paging request for data at address 0x00000060\nFaulting instruction address: 0xc000000008703a54\nOops: Kernel access of bad area, sig: 11 [#1]\nLE SMP NR_CPUS=2048 NUMA pSeries\nModules linked in:\nCPU: 11 PID: 1 Comm: swapper/11 Not tainted 4.19.0-rc5-master+ #1\nNIP:  c000000008703a54 LR: c000000008703a38 CTR: 0000000000000000\nREGS: c00000000b673440 TRAP: 0380   Not tainted  (4.19.0-rc5-master+)\nMSR:  8000000002009033 <SF,VEC,EE,ME,IR,DR,RI,LE>  CR: 24022022  XER: 20000002\nCFAR: c0000000086fc238 IRQMASK: 0\nGPR00: c000000008703a38 c00000000b6736c0 c000000009281900 0000000000000000\nGPR04: 0000000000000000 0000000000000000 fffffffffffff001 c00000000b660080\nGPR08: 0000000000000000 0000000000000000 0000000000000000 0000000000000220\nGPR12: 0000000000002200 c000000009e51400 0000000000000000 0000000000000008\nGPR16: 0000000000000000 c000000008c152e8 c000000008c152a8 0000000000000000\nGPR20: c000000009422fd8 c000000009412fd8 c000000009426040 0000000000000008\nGPR24: 0000000000000000 0000000000000000 c000000009168bc8 c000000009168c78\nGPR28: c00000000b126410 0000000000000000 c00000000916a0b8 c00000000b126400\nNIP [c000000008703a54] bus_add_device+0x84/0x1e0\nLR [c000000008703a38] bus_add_device+0x68/0x1e0\nCall Trace:\n[c00000000b6736c0] [c000000008703a38] bus_add_device+0x68/0x1e0 (unreliable)\n[c00000000b673740] [c000000008700194] device_add+0x454/0x7c0\n[c00000000b673800] [c00000000872e660] __register_one_node+0xb0/0x240\n[c00000000b673860] [c00000000839a6bc] __try_online_node+0x12c/0x180\n[c00000000b673900] [c00000000839b978] try_online_node+0x58/0x90\n[c00000000b673930] [c0000000080846d8] find_and_online_cpu_nid+0x158/0x190\n[c00000000b673a10] [c0000000080848a0] numa_update_cpu_topology+0x190/0x580\n[c00000000b673c00] [c000000008d3f2e4] smp_cpus_done+0x94/0x108\n[c00000000b673c70] [c000000008d5c00c] smp_init+0x174/0x19c\n[c00000000b673d00] [c000000008d346b8] kernel_init_freeable+0x1e0/0x450\n[c00000000b673dc0] [c0000000080102e8] kernel_init+0x28/0x160\n[c00000000b673e30] [c00000000800b65c] ret_from_kernel_thread+0x5c/0x80\nInstruction dump:\n60000000 60000000 e89e0020 7fe3fb78 4bff87d5 60000000 7c7d1b79 4082008c\ne8bf0050 e93e0098 3b9f0010 2fa50000 <e8690060> 38630018 419e0114 7f84e378\n---[ end trace 593577668c2daa65 ]---\n\nHowever a regular kernel with 4096M (2048 gets reserved for\ncrash kernel) boots properly.\n\nUnlike regular kernels, which mark all available nodes as online, kdump\nkernel only marks just enough nodes as online and marks the rest as\noffline at boot.  However kdump kernel boots with all available CPUs.\nWith Commit 2ea626306810 (\"powerpc/topology: Get topology for shared\nprocessors at boot\"), all CPUs are onlined on their respective nodes at\nboot time. try_online_node() tries to online the offline nodes but fails\nas all needed subsystems are not yet initialized.\n\nAs part of fix, detect and skip early onlining of a offline node.\n\nFixes: 2ea626306810 (\"powerpc/topology: Get topology for shared processors at boot\")\nReported-by: Pavithra Prakash <pavrampu@in.ibm.com>\nSigned-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/ruscur/linux/commits/69f1f61187151db43ef12d25b3dec21f75285713"}]}
{"actor":{"display_login":"ruscur"}}