kernel: 3.5.3
CPUのホットプラグ
以下のディレクトリに移動
/sys/devices/system/cpu/
ここにCPUごとのディレクトリ、例えば4コアならCPU0からCPU3がある。
CPU1をオフラインにする場合
# echo 0 > cpu1/online
CPU1をオンラインにする場合
# echo 1 > cpu1/online
現在のところ、CPU0(bootstrap processor(BSP))はオフラインにできない模様。
メモリのホットプラグ
/sys/devices/system/memory
というディレクトリがあるはずなんですが私のマシンだとないですね。
本来はこの下にメモリセクションごとのディレクトリがあるはずです。
その下のstateというファイルにonlineまたはofflineをechoすれば良いはずです。
PCIデバイスのホットプラグ
以下のディレクトリに移動
/sys/bus/pci/devices/
ここにデバイスごとのディレクトリへのリンクがあります。
lsすると
0000:00:00.0 0000:00:1b.0 0000:00:1c.5 0000:00:1f.3
0000:00:02.0 0000:00:1c.0 0000:00:1d.0 0000:02:00.0
0000:00:16.0 0000:00:1c.1 0000:00:1f.0 0000:03:00.0
0000:00:1a.0 0000:00:1c.2 0000:00:1f.2 0000:08:00.0
という感じ。
どれがなんのデバイスに対応してるかは
$ lspci
などのコマンドでわかると思います。
例えば0000:00:02.0をオフラインにする場合
$ cd 0000\:00\:02.0/
# echo 1 > remove
オフラインにしたデバイスをオンラインにする場合
$ cd /sys/bus/pci
# echo 1 > rescan