ToDo:
調子にのって、workaround外した状態でストレステストしたら11時間で固まった模様
machdep.hyperthreading_allowed=0
1021: MSR 0xc0011029: 0x00000000 0x10e2a000 -> 0x00000000 0x10e2a000 1033: MSR 0xc0011020: 0x02068000 0x00000000 -> 0x02068000 0x00000010 1049: MSR 0xc0011028: 0x00140200 0x248000d4 -> 0x00140200 0x248000d4 1057: machdep.idle_mwait: 1 -> 0 1091: MSR 0xc001102d: 0x10000005 0x00000020 -> 0x10000005 0x00000020 1095: MSR 0xc0011020: 0x02068000 0x00000010 -> 0x02068000 0x00000010 1109: machdep.idle: acpi -> hlt
Firmware/Kernelの設定に対して追加で設定しているworkaroundは、1033, 1057, 1109の3種類となる
必要なworkaround設定は、sys/amd64/amd64/initcpu.c(MSR)とsys/x86/x86/cpu_machdep.c(sysctl machdep)に含まれているが、FAMILY 17hかつMODEL 01hでのみ有効にされているため、Zen+な Threadripper2が対象にならない(MODEL 08h)
また、Zen1ベースのThreadripper1はMODEL 01h/STEP 01h、EPYC1はMODEL 01h/STEP 02hで対象になる模様
Revision Guideのp.12 Table.8を読む限りはZen+なThreadripper2(PiR-B2)には、1033/1057/1109は該当しないとあるのだが、p.16 Table.10には Errata 1109が2nd Generation Ryzen processor(つまりZen+)に残っていると表示されてたりと一貫していないあたりが…
ともかく、必要なworkaroundの検証を進めてみる
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記