Bug #3131
closedmaster on Ryzen 5 2400G: java freezes system -- smp_invltlb 2: waited too long
0%
Description
The Ryzen 2400G has been an amazing desktop machine. Fast with NVME SSD drive and rock solid with an uptime of 28 days until I hit this: tried to compile a java program and the machine froze. It turns out that trying to start java VM leads to a loop and the machine becomes unresponsive.
Intel does not seem affected, java runs fine on an Intel Skylake i7 machine.
On Ryzen 2400G, it is 100% reproducible. Try compiling HelloWorld.java (javac HelloWorld.java) or just invoke
% java -version
and the machine becomes unresponsive with this in /var/log/messages:
---
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000004 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000004 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000004 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000004 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000004 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000004 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000004 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000059/00000000
smp_invltlb 7: waited too long inv=00000003 smurf=00000003 in=00000004 idle=00000059/00000000
smp_invltlb 2: waited too long inv=00000003 smurf=00000003 in=00000080 idle=00000059/00000000
smp_invltlb: giving up
smp_inval_intr 2 inv=00000004 tlbm=00000000 smurf=00000003 in=00000004 idle=000000d9/00000000
pminvl 2->2 00000007 00000007 mode=1
smp_inval_intr 2 inv=00000004 tlbm=00000000 smurf=000000c3 in=00000004 idle=000000d9/00000000
pminvl 2->2 00000007 00000007 mode=1
smp_inval_intr 2 inv=00000004 tlbm=00000000 smurf=00000003 in=00000004 idle=000000d9/00000000
pminvl 2->2 00000007 00000007 mode=1
smp_inval_intr 2 inv=00000004 tlbm=00000000 smurf=00000003 in=00000004 idle=000000d9/00000000
pminvl 2->2 00000007 00000007 mode=1
smp_inval_intr 2 inv=00000004 tlbm=00000000 smurf=00000003 in=00000004 idle=000000d9/00000000
pminvl 2->2 00000007 00000007 mode=1
smp_inval_intr 2 inv=00000004 tlbm=00000000 smurf=00000003 in=00000004 idle=000000d9/00000000
pminvl 2->2 00000007 00000007 mode=1
smp_inval_intr 2 inv=00000004 tlbm=00000000 smurf=00000003 in=00000004 idle=000000d9/00000000
pminvl 2->2 00000007 00000007 mode=1
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=000000d5/00000000
smp_invltlb: giving up
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb: giving up
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb: giving up
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb: giving up
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb: giving up
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb 3: waited too long inv=00000003 smurf=00000003 in=00000000 idle=00000095/00000000
smp_invltlb: giving up
---
Or another instance:
---
smp_inval_intr 2 inv=00000004 tlbm=00000000 smurf=000000c0 in=00000004 idle=0000007a/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 2 inv=00000004 tlbm=000000c0 smurf=000000c0 in=00000024 idle=0000005b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000004 idle=0000005b/00000000
smp_inval_intr 2 inv=00000004 tlbm=000000c0 smurf=000000c0 in=00000024 idle=0000005b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000004 idle=0000005b/00000000
smp_inval_intr 2 inv=00000004 tlbm=000000c0 smurf=000000c0 in=00000024 idle=0000005b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000004 idle=0000005b/00000000
smp_inval_intr 2 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000034 idle=0000004b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
smp_inval_intr 4 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000014 idle=0000004a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
smp_inval_intr 4 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000034 idle=0000004a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
smp_inval_intr 4 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000014 idle=0000004a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
smp_inval_intr 4 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000034 idle=0000004a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000034 idle=0000004b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
smp_inval_intr 4 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000014 idle=0000004a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000034 idle=0000004b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
smp_inval_intr 4 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000034 idle=0000004a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000034 idle=0000004b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
smp_inval_intr 4 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000014 idle=0000004a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=000000c0 smurf=000000c0 in=00000034 idle=0000004b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_invltlb 5: waited too long inv=000000c0 smurf=000000c0 in=00000014 idle=0000004b/00000000
smp_invltlb: giving up
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006a/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
smp_inval_intr 4 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 4->4 000000d0 000000d0 mode=1
smp_inval_intr 2 inv=00000014 tlbm=00000000 smurf=000000c0 in=00000014 idle=0000006b/00000000
pminvl 2->2 000000c4 000000c4 mode=1
---
Updated by peeter over 6 years ago
Forgot to add:
- master is at dd8be70aa00232616d8f186ad11e78fe9b1ca0fc
- java is from java/openjdk8
Updated by dillon over 6 years ago
- Assignee set to dillon
- Priority changed from Normal to Immediate
Reproduced. I'm on it. It doesn't look like the problem is due to recent changes so I'm working the kernel backwards to figure out when the breakage was introduced.
-Matt
Updated by dillon over 6 years ago
Ok, lets leave the bug report open. I can reproduce it trivially and it really looks like a hyperthread issue with Zen gen-1. So far I can't reproduce it at all in Zen+ (2700X), only in the 2400G (which even though it has a '2', is actually gen-1 and not Zen+ from what I understand).
The temporary workaround is to run all the cpus flat out by disabling HLT in the scheduler, via sysctl machdep.cpu_idle_hlt=0. Note that this will cause the system to run how, as I mentioned before. But java won't lockup either.
I've forward the bug to AMD along with all the information I've been able to gather. No guarantees of a fast response, though. I'm continuing to mess with it myself to try to make sure it isn't a DragonFlyBSD bug.
FreeBSD's java binary has different run-time characteristics than ours. I couldn't lock it up on the 2400G in FreeBSD, but that doesn't really mean anything. From close examination of the state of the locked up CPUs (using a non locked-up core to probe the locked up core), insofar as I can tell it isn't a DragonFlyBSD bug. But I'll keep it in my thoughts.
-Matt
Updated by peeter over 6 years ago
Thank you. I'll run my simulations with machdep.cpu_idle_hlt=0 for now. Eventually it would be good to know whether or not the CPU is at fault.
Updated by dillon over 6 years ago
Update #2. AMD is aware of the problem and is working on it. They already have a microcode update that partially solves the problem for MWAIT, but I think they missed the HLT case so they are working on testing HLT.
In anycase, the microcode update that fixes MWAIT was released last month but might not yet be available in BIOS updates. When that becomes available to you, you can set 'sysctl machdep.cpu_idle_hlt=2' to use MWAIT and the problem will be solved. I believe they will be able to fix IRET as well but it may be a while before that microcode update hits the street.
To probe the microcode rev currently running:
kldload cpuctl
cpucontrol -m 0x8B /dev/cpuctl0
The microcode update with the MWAIT fix is 0x0810100B. As I said, it may be a while before BIOS's get this update, let alone the IRET fix (which 100B doesn't fix). There is no official public release yet though I was able to find a copy with google, but it isn't in a form that cpucontrol understands. But I'll keep a lookout.
-Matt
Updated by peeter over 6 years ago
Good news AMD is working on the problem and partial fix is on the way! I'll check the machine when I get to office on Monday.
Setting machdep.cpu_idle_hlt=0 raised the temperature by 15 C to 54 C. Running a single threaded simulation on top of it did not lead to an additional increase of temperature. So not too bad.
Something weird about how top reports cpu activity of a java process. The java process is cpu bound and eats 90% of one core. However, top says its cpu is 0.0% and the process is always in umtxsl.
Updated by dillon over 6 years ago
Give top the option to display threads (top -t). Java is very heavily threaded for reasons unknown. Beyond that, though, top is pretty old, it might be overflowing a field. You can use 'systat -pv 1' to get a better overview of cpu resource use, sans the process list.
-Matt
Updated by dillon over 6 years ago
Peeter, could you give me the exact motherboard you are having the issue on? AMD's current test microcode appears to fix the problem on three mobo vendors but doesn't on ASRock. My mobo happened to be an ASRock and still exhibits the problem with their test microcode. I can give you the microcode and instructions on how to test if you have a non-ASRock mobo.
-Matt
Updated by peeter over 6 years ago
Thanks---mine is an ASRock mobo too: Fatal1ty AB350 Gaming-ITX/ac. Hope AMD will make the code work on ASRock as well.
Using 'top -t' nicely shows the java threads and puts them at the top of the CPU% column. Java is heavily threaded indeed.