これまでの経緯
こちらで一旦解決させた問題の続編である。
htopで見られるスレッド数が半分にはなってしまったが、そのまま気にせず使っていた。
ハイパースレッディングが無効に…?
以下のコマンドでCPUの情報を調べてみた。
$ lscpu
アーキテクチャ: x86_64
CPU 操作モード: 32-bit, 64-bit
バイト順序: Little Endian
CPU: 18
オンラインになっている CPU のリスト: 0-17
コアあたりのスレッド数: 1
ソケットあたりのコア数: 18
ソケット数: 1
NUMA ノード数: 1
ベンダー ID: GenuineIntel
CPU ファミリー: 6
モデル: 85
モデル名: Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
ステッピング: 7
CPU MHz: 3800.000
CPU 最大 MHz: 4800.0000
CPU 最小 MHz: 1200.0000
BogoMIPS: 6000.00
仮想化: VT-x
L1d キャッシュ: 32K
L1i キャッシュ: 32K
L2 キャッシュ: 1024K
L3 キャッシュ: 25344K
NUMA ノード 0 CPU: 0-17
...
どうやら、CPUのコア数はちゃんと認識できているが、コアあたりのスレッド数が2ではなく1だと思っているらしい。
ハイパースレッディングが無効化されているということである。
試しに、以下のコマンドでも調べてみる。
$ cat /sys/devices/system/cpu/smt/active
0
$ cat /sys/devices/system/cpu/smt/control
on
やはりハイパースレッディング(同時マルチスレッディング, Simultaneous Multi-Threading, SMT)が無効になっている。
しかしcontrolはonである。
結論から言うと、これはACPIをoffにしていたからであった。
ACPIをoffにしない
試しに以下のコマンドを入力。
$ cat /proc/cmdline
... acpi=off
これはこちらで付け足したものであった。
まずは、ACPIオフを外して問題ないか調べてみる。
一回だけ試してみる
再起動 → AlmaLinuxのブートメニューが出たら、そこを選んだ状態で e を押す。
acpi=off を削除する。
Ctrl + x で起動。
起動したら以下のコマンドで確認。
$ cat /proc/cmdline
acpi=off がちゃんと消えている。
$ lscpu
...
CPU: 36
オンラインになっている CPU のリスト: 0-35
コアあたりのスレッド数: 2
ソケットあたりのコア数: 18
...
$ grep . /sys/devices/system/cpu/smt/*
/sys/devices/system/cpu/smt/active:1
/sys/devices/system/cpu/smt/control:on
ちゃんとハイパースレッディングが戻っている!
恒久的にACPIをoffにしない
$ sudo grubby --info=ALL
というコマンドの出力に、acpi=off があるのが原因である。
$ sudo grubby --remove-args="acpi=off acpi=strict" --update-kernel=ALL
でacpiに関するものを消す。
これで解決した。
個人的な注意点
あれこれしているうちに、BIOSしか開けなくなった。
Boot Option PrioritiesとBoot Overrideが選択不可能 = このBIOSから見えるブートデバイスなし、という状況に陥った。
SSDは認識しているので、CSMから、
- Launch CSM → Enabled
- Boot from Storage Devices → UEFI driver first
に変更した。
再起動後は F8 を連打し、Boot Menuが出てくるようにした。