2012-03-14 3 views
0

セットアップ:
私はIOCTLを呼び出すCPプロセスを持っています。カーネルIOCTLハンドラは、ハードウェアに何かを書き込み、その結果を返します。このウォッチドッグパンチングは定期的に発生します。カスタムLinuxカーネルのioctlが突然応答を停止し、数分で再開します。

問題:
デバッグプリントを使用して、CPプロセスとカーネルモジュールが同時に印刷デバッグを停止することを確認しました。カーネルモジュールは、常にタスクを完了しています。数分後、再びデバッグが開始されます。問題が存在する間、私はカーネル自体がls、topなどを実行することによってハングしていないことを確認しました。

私はカーネルモジュールで問題がないかもしれないことを理解します。ではどこから探し始めますか?

答えて

0

IOCTLハンドラはハードウェアへのブロックIOを使用していますか? IOCTLハンドラがハードウェア応答を待たなければならない場合、時間はウォッチドッグの時間制限を超過し、ウォッチドッグの再起動を引き起こす可能性があります。たぶん、ハードウェアにアクセスする方法をチェックすることは始めるべき方向です。

0

どこから探し始めますか?

私はstrace -eioctl ...を使用して、問題が存在する間に呼び出しが発生したかどうかを確認します。

関連する問題