LKDTMについてメモ
色んな発生条件で、色んな種類の障害を、インジェクション出来るモジュール。
使用方法から考えて、モジュールとしてビルドするのがいいだろうな。
例。
# modprobe lkdtm cpoint_name=FS_DEVRW cpoint_type=EXCEPTION cpoint_count=20
FS_DEVRWはファイルシステムからブロックデバイスへのI/O処理を表す。
この例だと、I/O処理が20回起こると障害が発生する。
EXCEPTIONはNULLへの書き込みとのこと。
cpoint_name=DIRECTを使えば、lkdtmをロードした段階ですぐに障害が発生する。
他にも発生条件は色々選べる。
障害の種類が色々選べるのも便利だと思う。
例えば、cpoint_type=HARDLOCKUPなんかは、NMIウォッチドッグを試すのに使えると思われ。
modprobe時の引数で設定する方法の他に、/sys/kernel/debug/provoke-crashを使う方法もあるようだが、cpoint_{name,type}は指定できるものの、cpoint_countを指定するインターフェースが無い・・・?