aarch64 の FreeBSD 14.1-BETA に重大な問題2024年05月21日 12時50分54秒

FreeBSD stable/14 から releng/14.1 を追いかけている。FreeBSD 14.1-RELEASE に向けて、現在 BETA が出ている。PRELEASE 頃から追っているが、重大な問題が。

arm/aarch64 のみに現れる問題。git bisect を始めるに到った。PRELEASE の時は、カーネルが swapin をし続ける問題だった。PRELEASE の時点では、swapin を始めるのに zfs の読み込みが切っ掛けになっていたようだった。

bisect を進めて行くうちに、zfs を読まなくても、カーネルを起動しただけで、swapin を続けるバージョンがあるのを発見。そこで、カーネルを起動して、swapin をしているかをテストの指標に定めた。

bisect を終らせたが、どうも最終的に到達したコミットの内容はどうも関係なさそうな物が並んでいる。そこで、幾つかのバージョンを試してみると、残念な事が見付かった。何と、swapin の再現性は 100% では無かった様なのだ。top で様子を見ていて swapin が始まらないと一度は安心した。再点検の為にもう一度再起動。今度は swapin を起こしている。つまり、起動時の swapin は何度かテストする必要がある。

もう一つの問題は、素のカーネルだと swapin を起こさないが、zfs を読み込みと swapin を始める事。テストには必ず、zfs を含ませないといけなかったのだ。

そこで、bisect を再開。テストは、起動後に swapin が見られたら、bisect bad。そして、zpool import 後に swapin が見られても bisect bad。最初からやり直し。特に、ツールチェーンを無から作り直しが必要なときには、一回転に二、三時間は掛かってしまう。それを十回以上繰り返すので長丁場になる。

前回次回