ToDo:
loader tunable(machdep.hyperthreading_allowed=0)でHTTをdisableした状態で、起動するとsysctl(3)のENOMEMエラーで起動しない件だが、 kern.cp_times sysctlが返す配列サイズがhw.ncpuでは無く、kern.smp.maxid+1で決まっているためにsysctl(3)呼び出し時のバッファサイズ不足で落ちる
有効なcp_timesは、先頭のhw.ncpu個分だけなので、バッファ確保時とsysctl(3)呼び出し時の長さにkern.smp.maxid + 1を用いれば解決する (maxidなので、0から始まるcpu番号の最後で +1しないと個数にならない)
ちなみにkern.smp.cpusはhw.ncpu同様に現時点で有効なthread数になっている模様
別解として、+1するのが面倒ならkern.smp.maxcpusを使うという手もある(標準だと256で、Ryzen TR2 2950Xだと高々8倍なので対した消費ではないはず)
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記