2008-06-10

FreeBSD 6.3のSMPではOpenOffice.orgのビルドができない(もしくは不安定)

このところ、OOoのPORTREVISIONが上がったときの更新などでうまくportupgradeが終わらず、Ctrl-Cで止めてもidlcというよくわからないプロセスが残ってkill -9しないと死んでくれないなど、ビルドのトラブルが続いていた。かといって、まったくできないわけでもなく、何度か試してみると通ったりもする。規則性もよくわからなかったが、今回の更新で3-4回やってみても通らないので、何か報告がないか調べてみた。

すると、日本語ではパっとした情報はなかったが、freebsd-openofficeにidlc loops building openoffice.org-2 on FreeBSD 6.3-RELEASEとか、freebsd-smpにopenoffice build loops - seemingly only on SMP machinesとかいった投稿があり、SMPのスケジューリングがあやしそうな雰囲気。

そこで、/boot/loader.confに kern.smp.disabled="1" を加えて再起動し、ビルドしてみたら1回で通った。まさにSMPの問題らしい。OOoのビルド前後にいちいち再起動するのは面倒だなぁ。7.0とかULEとかで問題がなくなるのかどうかは、時間ができたら調べてみる。

ところで、ついでにccacheの効果を計ろうと、まずccache -Cしてからビルドしてみると、Core 2 Duo (当然Solo状態) E6600 で4時間半かかった。そして、そのまま2回目を行うと2時間10分ほど。ccacheそのもののオーバヘッドは測定できていないが、ほとんど半分にまで減っていることになる。PORTREVISIONがちょっと増えただけでビルドし直しというportsも多いわけで、今後はどのportsもccacheを使うようにしてみようかな。


追記 (8/26)

いろいろ試したので、まとめ。CPUはCore 2 Duo。スケジューラはデフォルト。
6.3/i386 + SMP → ×
6.3/i386 (UP) → ○
6.3/amd64 + SMP → ○
7.0/i386 + SMP → ○
7.0/amd64 + SMP → ○

ま、6系は6.4で最後らしいし、7に移行すればいいか。

2 件のコメント:

匿名 さんのコメント...

私もそうです。こまってます。
http://porting.openoffice.org/freebsd/benchmark.html
参考ください。またはデータ有りましたら
maho@FreeBSD.org
まで送っていただければ幸いです。

中田真秀

HRT さんのコメント...

中田さん、コメントありがとうございます。追記したように、6.3/i386に限って、SMPで問題が発生するようです。

また、ビルド時間のページ紹介ありがとうございます。データが何か得られたら送らせていただきます。