ubuntu 14.04 をベースに kernel 3.18.25 に差し替えて UBI/UBIFS 負荷試験をさらに続けていた。root 権限でファイル操作をする負荷を掛けていた。root 権限だと「真の」file system full まで UBIFS volume に書き込める。
file system full まで書き込む操作を繰り返しているうちに kernel は停止する。console (printk) 出力を見ていると次の 2 つの stack dump が典型的な kernel 停止直前の出力だ。
(1) UBI assert failed in wl_tree_add at 203 (pid NNNN) (2) BUG: unable to handle kernel NULL pointer dereference at 0000000000000020 IP: [<ffffffffa0273800>] wl_tree_add+0x40/0xf0 [ubi]
drivers/mtd/Kconfig を読むと CONFIG_MTD_UBI_FASTMAP "Experimental feature" だと説明がある。default では "N" だ。ubuntu distribution ではわざわざ Y (defined) にしてある(/boot/configs-* を参照)。
CONFIG_MTD_UBI_FASTMAP を .config から外し undefined (# CONFIG_XXX ... is not set) にして同様の負荷試験をしてみる。30~60 分しか負荷試験が持たなかったのが、半日以上連続試験に耐えている。
退職前に気になっていた問題、出来ていなかった負荷試験はおおよそ終わる。仕事でさわっていた kernel の CONFIG_MTD_UBI_FASTMAP がどうなっていたかは既に記憶にない。そもそも kernel の version は近いものを選んでいて、違っている。