== Comment: #0 - Hari Krishna Bathini <email address hidden> - 2019-05-07 13:18:35 ==
---Problem Description---
On 4.15.0-48-generic kernel, hot adding a cpu with drmgr is crashing the kernel
with below traces:
---
root@ubuntu:~# drmgr -c cpu -r -q 1
Validating CPU DLPAR capability...yes.
CPU 9
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~# drmgr -c cpu -a -q 1
Validating CPU DLPAR capability...yes.
[ 218.555493] BUG: arch topology borken
[ 218.555503] the DIE domain not a subset of the NODE domain
[ 218.555512] BUG: arch topology borken
[ 218.555516] the DIE domain not a subset of the NODE domain
[ 218.555523] BUG: arch topology borken
[ 218.555528] the DIE domain not a subset of the NODE domain
[ 218.555535] BUG: arch topology borken
[ 218.555539] the DIE domain not a subset of the NODE domain
[ 218.555545] BUG: arch topology borken
[ 218.555550] the DIE domain not a subset of the NODE domain
[ 218.555556] BUG: arch topology borken
[ 218.555560] the DIE domain not a subset of the NODE domain
[ 218.555567] BUG: arch topology borken
[ 218.555571] the DIE domain not a subset of the NODE domain
[ 218.555577] BUG: arch topology borken
[ 218.555581] the DIE domain not a subset of the NODE domain
[ 218.555672] Unable to handle kernel paging request for data at address 0x9332ae80f961139f
[ 218.555679] Faulting instruction address: 0xc0000000001768cc
[ 218.555686] Oops: Kernel access of bad area, sig: 11 [#1]
[ 218.555691] LE SMP NR_CPUS=2048 NUMA pSeries
[ 218.555699] Modules linked in: vmx_crypto crct10dif_vpmsum sch_fq_codel ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear ibmvscsi ibmveth crc32c_vpmsum
[ 218.555745] CPU: 8 PID: 276 Comm: kworker/8:1 Not tainted 4.15.0-48-generic #51-Ubuntu
[ 218.555757] Workqueue: events cpuset_hotplug_workfn
[ 218.555763] NIP: c0000000001768cc LR: c0000000001769a8 CTR: 0000000000000000
[ 218.555770] REGS: c0000001f5f1f530 TRAP: 0380 Not tainted (4.15.0-48-generic)
[ 218.555776] MSR: 8000000000009033 <SF,EE,ME,IR,DR,RI,LE> CR: 22824228 XER: 00000004
[ 218.555789] CFAR: c000000000176920 SOFTE: 1
[ 218.555789] GPR00: c0000000001769a8 c0000001f5f1f7b0 c0000000016eb400 c0000001f7bfd200
[ 218.555789] GPR04: 0000000000000001 0000000000000000 0000000000000008 0000000000000010
[ 218.555789] GPR08: 0000000000000018 ffffffffffffffff c0000001f7bfd408 0000000000000000
[ 218.555789] GPR12: 0000000000008000 c000000007a35800 0000000000000007 c0000001f549d900
[ 218.555789] GPR16: 0000000000000040 c000000001722494 c0000001f0f29400 0000000000000001
[ 218.555789] GPR20: c0000001ffb68580 0000000000000008 c0000000011d8580 c00000000171dd78
[ 218.555789] GPR24: 0000000000000000 ffffffffffffe830 ffffffffffffec30 00000000000012af
[ 218.555789] GPR28: 000000000000102f c0000001f7bfd200 9332ae80f961139f 9332ae80f961139f
[ 218.555859] NIP [c0000000001768cc] free_sched_groups.part.2+0x4c/0xf0
[ 218.555866] LR [c0000000001769a8] destroy_sched_domain+0x38/0xc0
[ 218.555871] Call Trace:
[ 218.555875] [c0000001f5f1f7b0] [ffffffffffffec30] 0xffffffffffffec30 (unreliable)
[ 218.555884] [c0000001f5f1f7f0] [c0000000001769a8] destroy_sched_domain+0x38/0xc0
[ 218.555892] [c0000001f5f1f820] [c000000000176eb0] cpu_attach_domain+0xf0/0x870
[ 218.555900] [c0000001f5f1f960] [c000000000178884] build_sched_domains+0x1254/0x12f0
[ 218.555908] [c0000001f5f1fa90] [c000000000179a70] partition_sched_domains+0x2d0/0x410
[ 218.555916] [c0000001f5f1fb20] [c0000000001ffb60] rebuild_sched_domains_locked+0x60/0x80
[ 218.555924] [c0000001f5f1fb50] [c000000000202e68] rebuild_sched_domains+0x38/0x60
[ 218.555932] [c0000001f5f1fb80] [c000000000202fc8] cpuset_hotplug_workfn+0x138/0xb60
[ 218.555941] [c0000001f5f1fc90] [c000000000135858] process_one_work+0x298/0x5a0
[ 218.555949] [c0000001f5f1fd20] [c000000000135bf8] worker_thread+0x98/0x630
[ 218.555956] [c0000001f5f1fdc0] [c00000000013e7e8] kthread+0x1a8/0x1b0
[ 218.555964] [c0000001f5f1fe30] [c00000000000b658] ret_from_kernel_thread+0x5c/0x84
[ 218.555971] Instruction dump:
[ 218.555975] 7d908026 fbe1fff8 91810008 f8010010 f821ffc1 7c7d1b78 2e240000 7c7f1b78
[ 218.555985] 48000010 7fbee840 7fdff378 419e0074 <ebdf0000> 4192002c 7c0004ac e95f0010
[ 218.555997] ---[ end trace 1d7b9b38e50835a4 ]---
---
---uname output---
Linux ubuntu 4.15.0-48-generic #51-Ubuntu SMP Wed Apr 3 08:26:19 UTC 2019 ppc64le ppc64le ppc64le GNU/Linux
Machine Type = na
---Debugger---
A debugger is not configured
---Steps to Reproduce---
1. Install a 4.15 kernel (4.15.0-48-generic)
2. Hot remove a core: drmgr -c cpu -r -q 1
3. Hot add a core: drmgr -c cpu -a -q 1
Actual Result:
System crashes after "drmgr -c cpu -a -q 1" command is issued
Expected result:
Hot add succeeds without any crash
== Comment: #20 - SEETEENA THOUFEEK <email address hidden> - 2019-06-20 07:00:39 ==
Please integrate these two patches
When booted with "topology_updates=no", or when "off" is written to
/proc/powerpc/topology_updates, NUMA reassignments are inhibited for
PRRN and VPHN events. However, migration and suspend unconditionally
re-enable reassignments via start_topology_update(). This is
incoherent.
Check the topology_updates_enabled flag in
start/stop_topology_update() so that callers of those APIs need not be
aware of whether reassignments are enabled. This allows the
administrative decision on reassignments to remain in force across
migrations and suspensions.
powerpc/numa: document topology_updates_enabled, disable by default
Changing the NUMA associations for CPUs and memory at runtime is
basically unsupported by the core mm, scheduler etc. We see all manner
of crashes, warnings and instability when the pseries code tries to do
this. Disable this behavior by default, and document the switch a bit.
== Comment: #0 - Hari Krishna Bathini <email address hidden> - 2019-05-07 13:18:35 ==
---Problem Description---
On 4.15.0-48-generic kernel, hot adding a cpu with drmgr is crashing the kernel
with below traces:
--- iscsi ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear ibmvscsi ibmveth crc32c_vpmsum hotplug_ workfn ME,IR,DR, RI,LE> CR: 22824228 XER: 00000004 groups. part.2+ 0x4c/0xf0 sched_domain+ 0x38/0xc0 sched_domain+ 0x38/0xc0 domain+ 0xf0/0x870 domains+ 0x1254/ 0x12f0 sched_domains+ 0x2d0/0x410 sched_domains_ locked+ 0x60/0x80 sched_domains+ 0x38/0x60 hotplug_ workfn+ 0x138/0xb60 one_work+ 0x298/0x5a0 thread+ 0x98/0x630 kernel_ thread+ 0x5c/0x84
root@ubuntu:~# drmgr -c cpu -r -q 1
Validating CPU DLPAR capability...yes.
CPU 9
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~# drmgr -c cpu -a -q 1
Validating CPU DLPAR capability...yes.
[ 218.555493] BUG: arch topology borken
[ 218.555503] the DIE domain not a subset of the NODE domain
[ 218.555512] BUG: arch topology borken
[ 218.555516] the DIE domain not a subset of the NODE domain
[ 218.555523] BUG: arch topology borken
[ 218.555528] the DIE domain not a subset of the NODE domain
[ 218.555535] BUG: arch topology borken
[ 218.555539] the DIE domain not a subset of the NODE domain
[ 218.555545] BUG: arch topology borken
[ 218.555550] the DIE domain not a subset of the NODE domain
[ 218.555556] BUG: arch topology borken
[ 218.555560] the DIE domain not a subset of the NODE domain
[ 218.555567] BUG: arch topology borken
[ 218.555571] the DIE domain not a subset of the NODE domain
[ 218.555577] BUG: arch topology borken
[ 218.555581] the DIE domain not a subset of the NODE domain
[ 218.555672] Unable to handle kernel paging request for data at address 0x9332ae80f961139f
[ 218.555679] Faulting instruction address: 0xc0000000001768cc
[ 218.555686] Oops: Kernel access of bad area, sig: 11 [#1]
[ 218.555691] LE SMP NR_CPUS=2048 NUMA pSeries
[ 218.555699] Modules linked in: vmx_crypto crct10dif_vpmsum sch_fq_codel ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_
[ 218.555745] CPU: 8 PID: 276 Comm: kworker/8:1 Not tainted 4.15.0-48-generic #51-Ubuntu
[ 218.555757] Workqueue: events cpuset_
[ 218.555763] NIP: c0000000001768cc LR: c0000000001769a8 CTR: 0000000000000000
[ 218.555770] REGS: c0000001f5f1f530 TRAP: 0380 Not tainted (4.15.0-48-generic)
[ 218.555776] MSR: 8000000000009033 <SF,EE,
[ 218.555789] CFAR: c000000000176920 SOFTE: 1
[ 218.555789] GPR00: c0000000001769a8 c0000001f5f1f7b0 c0000000016eb400 c0000001f7bfd200
[ 218.555789] GPR04: 0000000000000001 0000000000000000 0000000000000008 0000000000000010
[ 218.555789] GPR08: 0000000000000018 ffffffffffffffff c0000001f7bfd408 0000000000000000
[ 218.555789] GPR12: 0000000000008000 c000000007a35800 0000000000000007 c0000001f549d900
[ 218.555789] GPR16: 0000000000000040 c000000001722494 c0000001f0f29400 0000000000000001
[ 218.555789] GPR20: c0000001ffb68580 0000000000000008 c0000000011d8580 c00000000171dd78
[ 218.555789] GPR24: 0000000000000000 ffffffffffffe830 ffffffffffffec30 00000000000012af
[ 218.555789] GPR28: 000000000000102f c0000001f7bfd200 9332ae80f961139f 9332ae80f961139f
[ 218.555859] NIP [c0000000001768cc] free_sched_
[ 218.555866] LR [c0000000001769a8] destroy_
[ 218.555871] Call Trace:
[ 218.555875] [c0000001f5f1f7b0] [ffffffffffffec30] 0xffffffffffffec30 (unreliable)
[ 218.555884] [c0000001f5f1f7f0] [c0000000001769a8] destroy_
[ 218.555892] [c0000001f5f1f820] [c000000000176eb0] cpu_attach_
[ 218.555900] [c0000001f5f1f960] [c000000000178884] build_sched_
[ 218.555908] [c0000001f5f1fa90] [c000000000179a70] partition_
[ 218.555916] [c0000001f5f1fb20] [c0000000001ffb60] rebuild_
[ 218.555924] [c0000001f5f1fb50] [c000000000202e68] rebuild_
[ 218.555932] [c0000001f5f1fb80] [c000000000202fc8] cpuset_
[ 218.555941] [c0000001f5f1fc90] [c000000000135858] process_
[ 218.555949] [c0000001f5f1fd20] [c000000000135bf8] worker_
[ 218.555956] [c0000001f5f1fdc0] [c00000000013e7e8] kthread+0x1a8/0x1b0
[ 218.555964] [c0000001f5f1fe30] [c00000000000b658] ret_from_
[ 218.555971] Instruction dump:
[ 218.555975] 7d908026 fbe1fff8 91810008 f8010010 f821ffc1 7c7d1b78 2e240000 7c7f1b78
[ 218.555985] 48000010 7fbee840 7fdff378 419e0074 <ebdf0000> 4192002c 7c0004ac e95f0010
[ 218.555997] ---[ end trace 1d7b9b38e50835a4 ]---
---
---uname output---
Linux ubuntu 4.15.0-48-generic #51-Ubuntu SMP Wed Apr 3 08:26:19 UTC 2019 ppc64le ppc64le ppc64le GNU/Linux
Machine Type = na
---Debugger---
A debugger is not configured
---Steps to Reproduce---
1. Install a 4.15 kernel (4.15.0-48-generic)
2. Hot remove a core: drmgr -c cpu -r -q 1
3. Hot add a core: drmgr -c cpu -a -q 1
Actual Result:
System crashes after "drmgr -c cpu -a -q 1" command is issued
Expected result:
Hot add succeeds without any crash
== Comment: #20 - SEETEENA THOUFEEK <email address hidden> - 2019-06-20 07:00:39 ==
Please integrate these two patches
1. /git.kernel. org/pub/ scm/linux/ kernel/ git/powerpc/ linux.git/ commit/ ?h=next& id=2d4d9b308f8f 8dec68f6dbbff18 c68ec7c6bd26f
https:/
powerpc/numa: improve control of topology updates
When booted with "topology_ updates= no", or when "off" is written to topology_ updates, NUMA reassignments are inhibited for update( ). This is
/proc/powerpc/
PRRN and VPHN events. However, migration and suspend unconditionally
re-enable reassignments via start_topology_
incoherent.
Check the topology_ updates_ enabled flag in topology_ update( ) so that callers of those APIs need not be
start/stop_
aware of whether reassignments are enabled. This allows the
administrative decision on reassignments to remain in force across
migrations and suspensions.
Signed-off-by: Nathan Lynch <email address hidden>
Signed-off-by: Michael Ellerman <email address hidden>
2. /git.kernel. org/pub/ scm/linux/ kernel/ git/powerpc/ linux.git/ commit/ ?h=next& id=558f86493df0 9f68f79fe056d90 28d317a3ce8ab
https:/
powerpc/numa: document topology_ updates_ enabled, disable by default
Changing the NUMA associations for CPUs and memory at runtime is
basically unsupported by the core mm, scheduler etc. We see all manner
of crashes, warnings and instability when the pseries code tries to do
this. Disable this behavior by default, and document the switch a bit.
Signed-off-by: Nathan Lynch <email address hidden>
Signed-off-by: Michael Ellerman <email address hidden>
Thanks in advance for your support.