CPU hotplug

LinuxってCPUの個数をダイナミックに変更できるんじゃなかったっけ?パワー必要ないときは、デュアルコアをシングルにして消費電力下がるんじゃね?
ということで調べてみた。
google:Linux cpu hot plug
Linux Kernel Documentation :: cpu-hotplug.txt
http://lc.linux.or.jp/lc2002/papers/suganuma0919p.pdf
うん。できるようだ。やってみよう。

top - 00:59:27 up 31 min,  3 users,  load average: 0.64, 0.53, 0.62
Tasks: 173 total,   2 running, 170 sleeping,   0 stopped,   1 zombie
Cpu0  : 26.8%us,  6.2%sy,  0.0%ni, 64.7%id,  0.0%wa,  2.0%hi,  0.3%si,  0.0%st
Cpu1  : 16.8%us,  3.0%sy,  0.0%ni, 80.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2052556k total,  1989100k used,    63456k free,   271996k buffers
Swap:  2000052k total,        0k used,  2000052k free,   751408k cached

LOOX Pでやってます。topで見ると、2コアあります。
cpu1をofflineにする。

~# echo 0 > /sys/devices/system/cpu/cpu1/online

topで見てみる(ただし、topは一度終了しないと、hotplugを認識しないみたい)

top - 00:58:35 up 30 min,  3 users,  load average: 0.17, 0.42, 0.59
Tasks: 160 total,   4 running, 155 sleeping,   0 stopped,   1 zombie
Cpu0  : 29.0%us,  6.7%sy,  0.0%ni, 62.5%id,  0.6%wa,  0.8%hi,  0.4%si,  0.0%st
Mem:   2052556k total,  1976340k used,    76216k free,   266956k buffers
Swap:  2000052k total,        0k used,  2000052k free,   742600k cached

1コアになってる。戻してみる。

~# echo 1 > /sys/devices/system/cpu/cpu1/online
top - 00:59:27 up 31 min,  3 users,  load average: 0.64, 0.53, 0.62
Tasks: 173 total,   2 running, 170 sleeping,   0 stopped,   1 zombie
Cpu0  : 26.8%us,  6.2%sy,  0.0%ni, 64.7%id,  0.0%wa,  2.0%hi,  0.3%si,  0.0%st
Cpu1  : 16.8%us,  3.0%sy,  0.0%ni, 80.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2052556k total,  1989100k used,    63456k free,   271996k buffers
Swap:  2000052k total,        0k used,  2000052k free,   751408k cached

2コアに戻った。これはおもしろいなぁ。消費電力とかはそのうち見てみよう。

Ubuntuでsudoでやるときは注意が必要らしい。
http://ubuntuforums.org/showthread.php?t=1103748