smp なカーネルにする
debian なマシンは PowerMac G4/450MHz dual なのに、動作しているカーネルはシングル用。マルチプロセッサ用ではないので CPU 1つしか動作していない。MkLinux や LinuxPPC でペンギンが2羽並ぶのを喜んで見たり、Celeron をマルチプロセッサにして BeOS で喜んでいた自分としてはこれは悲しい。というわけで、カーネルをアップデートしようかと…。
昔から smp なカーネルは再構築しなきゃいけなくて、それが面倒でもあり困難な壁になっていた。今回も再構築は面倒だな〜と思いつつ debian のお約束を勉強したりしていたら…見つけた! PowerPC の smp パッケージあるじゃん!リスト見ると殆どの環境ではじめから smp なカーネルも用意されてるのね。
というわけで、さっくりパッケージで持ってきてインストールすることに。
まずは現状のカーネルをチェック。
paraches@debian:~$ uname -a Linux uriel 2.6.8-powerpc #1 Thu Nov 24 00:17:15 UTC 2005 ppc GNU/Linux
とりあえず、普通のカーネルが入っていると。
それじゃ、smp なパッケージをインストールしましょう。
paraches@debian:~$ sudo apt-get install kernel-image-2.6.8-powerpc-smp Password: パッケージリストを読みこんでいます... 完了% 依存関係ツリーを作成しています... 完了% 以下のパッケージが新たにインストールされます: kernel-image-2.6.8-powerpc-smp アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 13.8MB のアーカイブを取得する必要があります。 展開後に追加で 41.5MB のディスク容量が消費されます。 取得:1 http://ftp.jp.debian.org stable/main kernel-image-2.6.8-powerpc-smp 2.6.8-12sarge1 [13.8MB] 13.8MB を 45s で取得しました (304kB/s) 未選択パッケージ kernel-image-2.6.8-powerpc-smp を選択しています。 (データベースを読み込んでいます... 現在 34263 個のファイルとディレクトリがインストールされています。) (.../kernel-image-2.6.8-powerpc-smp_2.6.8-12sarge1_powerpc.deb から) kernel-image-2.6.8-powerpc-smp を展開しています... kernel-image-2.6.8-powerpc-smp (2.6.8-12sarge1) を設定しています ... run-parts: executing /etc/kernel/postinst.d/mkvmlinuz
なんにも問題なく終了。最後に executingってあるけど、新しいカーネルで動き始めたってこと?リスタート無しにカーネルかわらないよな。
カーネルのチェックをすると…
paraches@debian:~$ uname -a Linux uriel 2.6.8-powerpc #1 Thu Nov 24 00:17:15 UTC 2005 ppc GNU/Linux
そうだよね。まだ変わってないよね。それじゃリスタートしましょう…
paraches@debian:~$ uname -a Linux uriel 2.6.8-powerpc-smp #1 SMP Thu Nov 24 00:17:24 UTC 2005 ppc GNU/Linux
ちゃんと smp のカーネルになってる!!
ペンギンを2羽見る事はできないので、2つだという証拠を /proc/cpuinfo で確認。
paraches@debian:~$ cat /proc/cpuinfo processor : 0 cpu : 7400, altivec supported temperature : 27-29 C (uncalibrated) clock : 450MHz revision : 2.9 (pvr 000c 0209) bogomips : 894.97 processor : 1 cpu : 7400, altivec supported temperature : 23-25 C (uncalibrated) clock : 450MHz revision : 2.9 (pvr 000c 0209) bogomips : 894.97 total bogomips : 1789.95 machine : PowerMac3,3 motherboard : PowerMac3,3 MacRISC2 MacRISC Power Macintosh detected as : 65 (PowerMac G4 AGP Graphics) pmac flags : 00000004 L2 cache : 1024K unified memory : 768MB pmac-generation : NewWorld paraches@debian:~$
次は top で確認!
top - 00:55:30 up 22:25, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 83 total, 1 running, 82 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2% us, 0.2% sy, 0.0% ni, 99.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 772920k total, 210800k used, 562120k free, 44148k buffers Swap: 2267568k total, 0k used, 2267568k free, 103792k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 11671 paraches 16 0 2616 1176 2392 R 0.3 0.2 0:00.08 top 1 root 16 0 1608 564 1456 S 0.0 0.1 0:00.86 init 2 root RT 0 0 0 0 S 0.0 0.0 0:00.04 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 4 root RT 0 0 0 0 S 0.0 0.0 0:00.04 migration/1 5 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1 6 root 5 -10 0 0 0 S 0.0 0.0 0:00.36 events/0 7 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 events/1 8 root 8 -10 0 0 0 S 0.0 0.0 0:00.00 khelper 27 root 5 -10 0 0 0 S 0.0 0.0 0:00.05 kblockd/0 28 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 kblockd/1 44 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush 45 root 15 0 0 0 0 S 0.0 0.0 0:00.09 pdflush 46 root 17 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0 47 root 7 -10 0 0 0 S 0.0 0.0 0:00.00 aio/0 48 root 8 -10 0 0 0 S 0.0 0.0 0:00.00 aio/1 202 root 15 0 0 0 0 S 0.0 0.0 0:00.03 khubd
あれ? CPU 1つしかないじゃん…Cpu(s)で複数だから良いの? 仕方がないので top の使い方を確認。
というわけで、1 を押したら CPU 2つの表示になった。トグルスイッチになってる。で、常に2つ見たいので、2つの状態で w を押してセーブする。
top - 01:06:16 up 22:35, 3 users, load average: 0.00, 0.00, 0.00 Tasks: 83 total, 1 running, 82 sleeping, 0 stopped, 0 zombie Cpu0 : 0.3% us, 0.3% sy, 0.0% ni, 98.7% id, 0.7% wa, 0.0% hi, 0.0% si Cpu1 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 772920k total, 212976k used, 559944k free, 44760k buffers Swap: 2267568k total, 0k used, 2267568k free, 105000k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 11691 paraches 16 0 2616 1180 2392 R 0.7 0.2 0:02.95 top 1 root 16 0 1608 564 1456 S 0.0 0.1 0:00.86 init [2] 2 root RT 0 0 0 0 S 0.0 0.0 0:00.04 [migration/0] 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 [ksoftirqd/0] 4 root RT 0 0 0 0 S 0.0 0.0 0:00.04 [migration/1] 5 root 34 19 0 0 0 S 0.0 0.0 0:00.00 [ksoftirqd/1] 6 root 5 -10 0 0 0 S 0.0 0.0 0:00.36 [events/0] 7 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 [events/1] 8 root 8 -10 0 0 0 S 0.0 0.0 0:00.00 [khelper] 27 root 5 -10 0 0 0 S 0.0 0.0 0:00.05 [kblockd/0] 28 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 [kblockd/1] 44 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [pdflush] 45 root 15 0 0 0 0 S 0.0 0.0 0:00.09 [pdflush] 46 root 17 0 0 0 0 S 0.0 0.0 0:00.00 [kswapd0] 47 root 7 -10 0 0 0 S 0.0 0.0 0:00.00 [aio/0] 48 root 8 -10 0 0 0 S 0.0 0.0 0:00.00 [aio/1]
やっぱり CPU 2つは嬉しいね!