Armadilloフォーラム

armadillo840, watch dog について

ma2013

2015年2月9日 15時26分

いつもお世話になっております。
MCSのマーです。

暴走対策として,
armadillo840のブートロード,カーネル範囲で,
watcg dog仕組を実装していますか?

以上,お願いいたします。

コメント

大変、お世話になっております。坂本です。
Watch dogをdisableするには、カーネルのコンフィギュレーションと
BOOTパラメータの設定が必要ということですね。
了解いたしました。ありがとうございました。

> いつもお世話になっております。
> MCSのマーです。
>
> 暴走対策として,
> armadillo840のブートロード,カーネル範囲で,
> watcg dog仕組を実装していますか?
>
> 以上,お願いいたします。
>

MCSのマーです。

申し訳ありませんが,
ブートロード/カーネルが起動中に,
armadilloが暴走した場合,
再起動の仕組を実装している
かどうかを知りたいです。

勿論,linuxボードで暴走ということを
検討する必要があるかどうかも疑問です。

以上,宜しくお願いいたします。

暴走状態とは何を想定しているでしょうか。

Armadillo-840 では標準で watchdog timer を使用しています。
例えば、デバイスドライバの排他処理でのデッドロック等の理由で
長期にわたって割り込み禁止状態になった場合、
watchdog timer exceptionによりCPUがリセットされます。
watchdog timer の timeout は10sec、kickする周期は1secです。

kernelのブートプロセスに入る前からwatchdog timerによる監視は
有効です。
bootloaderの初期化処理で、watchdog timer の有効化と、
watchdog timer をkickするためのタイマーと、その割り込みハンドラ
をロードしています。

ただし、watchdog timerをkickするタイマーの割り込みハンドラが動く限りは
リセットされる事はありません。
従って、単純にCPUの使用率が100%になったり、優先度の低い特定のプロセス
にスケジュールしない等の状態は、単にCPUを使い過ぎているだけなので
リセットの対象外です。

MCSマー様

ご連絡ありがとうございます。坂本です。

> 暴走対策として,
> armadillo840のブートロード,カーネル範囲で,
> watcg dog仕組を実装していますか?

ですが、特に意識しておりませんでした。
現状では、通信状況が過負荷のときにeth1のドライバーで
page allocation errorが発生し、そしてなぜか、eth1がイネーブルしたと
思われるwatch dog タイマーによりシステムにリセットがかかるような
状況です。

宜しくお願いします。

> いつもお世話になっております。
> MCSのマーです。
>
> 暴走対策として,
> armadillo840のブートロード,カーネル範囲で,
> watcg dog仕組を実装していますか?
>
> 以上,お願いいたします。
>

坂本 様

MCSのマーです。
色々教えていただいてありがとうございました。

マイコンで暴走という言葉はよく聞きますが,
細かい内容はまだ分からないです。

ただ今知りたいのは,
暴走で想定外の無限ループに落ちた時の対処のことです。
即ち,ブートロード/カーネルの起動中,
想定外無限ループでシステムは止まってしまうことです。

宜しくお願いいたします。

> MCSマー様
>
> ご連絡ありがとうございます。坂本です。
>
> > 暴走対策として,
> > armadillo840のブートロード,カーネル範囲で,
> > watcg dog仕組を実装していますか?
>
> ですが、特に意識しておりませんでした。
> 現状では、通信状況が過負荷のときにeth1のドライバーで
> page allocation errorが発生し、そしてなぜか、eth1がイネーブルしたと
> 思われるwatch dog タイマーによりシステムにリセットがかかるような
> 状況です。
>
> 宜しくお願いします。
>
>
>
> > いつもお世話になっております。
> > MCSのマーです。
> >
> > 暴走対策として,
> > armadillo840のブートロード,カーネル範囲で,
> > watcg dog仕組を実装していますか?
> >
> > 以上,お願いいたします。
> >