がまんしきれずにやっちゃいました。7.0-RC1で make worldです。途中ちょっとハマったところもあったのですが、なんとかWWWサーバを動かす程度は動くようになりました。
で、期待はせずに ULE でカーネルを構築して ffmpeg のテストです。Pentium4ではなんの違いも見受けられませんでしたが、Pentium-DualCoreではどうでしょうか?
2倍ぐらい速くなりました
はへ? なんかスゴいですよね? 以前はなんの変化も見られなかった ffmpeg の -threads 2 オプションが、うれしいことにデュアルコアをフル活用してくれるようになりました。ぱちぱちぱち。topでのCPU利用率ではイマイチよくわかりませんが、ロードアベレージは2.00近くを指していますし、ffmpegを2つ同時に走らせると半分ぐらいのスピードに落ちますから、FreeBSD6.2の時とは明らかに動作が異なります。
最適化オプションを付けるとgcc4ではうまく動かないのでFreeBSD6.2で最適化したffmpegより2倍速い訳ではありませんが、少なくとも単一ファイルのエンコード時間は前よりも確実に短くなりました。FreeBSD7化の弊害は多少あると思いますが、この一点だけで他の問題は我慢できますよ。ホントすばらしいです。
(今わかっている問題) ports の multimedia/mpeg4ip-libmp4v2 をコンパイルして実行するとコアダンプする。他にもこんなのがあるかと思うと怖くて当面は portupgrade できない(笑)□ 関連記事
FreeBSD7を make installworld とかする前に、gmirrorでミラーを作っていますから、これをソフトウェア的に切り離す事にしました。アップグレードに失敗したら元に戻せるようにするためです。
# gmirror remove gm0 ad4
/dev/ad0 と /dev/ad4 で RAID1 を構成していましたから、この操作で /dev/ad0 のみを使用したディスクアレイ(?)になりました。で、正常に再起動できることを確認してから installworld や installkernel、mergemaster なんかを行ったのですが、その後再起動してみると
pid 637 (named), uid 0: exited on signal 12 (core dumped)
と表示されて named が止まっちゃうのです。で、named.confを一生懸命眺めていたのですが、なんか妙なことに気付きました。
# uname -v
FreeBSD 6.3-RC2 #1: Sat Dec 22 23:42:15 JST 2007 root@XXXXX.jp:/usr/obj/usr/src/sys/GENERIC
あり? FreeBSD7を入れたはずなのに、6.3が動いてますな(笑)。
今回のオチは「ミラーを解除したものの、ブート時のカーネル読み出しは解除した方のドライブが使われていた」というものでした。カーネルは6.3RC2が読み出され、カーネル読み込みによりgmirrorが有効になるのでその後はgmirror側の7.0RC1がマウントされていたと。一度起動テストしたときはどっちも同じ版だったので問題が顕在化しなかったのです(苦笑)。
ちなみに、リモートからカーネル読み込みドライブを指定する方法がわからなかったので、
# mount /dev/ad4s1a /mntとして6.3RC2のドライブに7.0RC1のカーネルを入れちゃって対処しました。 (本日の教訓) gmirrorをバックアップ用途に使用する場合はデバイスを物理的に切り離そう
# cd /usr/src
# make installkernel DESTDIR=/mnt/