eeh_slot_error カーネル・サービス
目的
このサービスは、一時的エラーまたは永続的エラーをログに記録し、オプションでスロットに永続的に使用不可のマークを付けます。
構文
#include <sys/eeh.h>
long eeh_slot_error(handle, flag, dd_buf, dd_buf_length)
eeh_handle_t handle;
int flag;
char *dd_buf;
long dd_buf_length;
パラメーター
| 項目 | 説明 |
|---|---|
| 処理 | eeh_init または eeh_init_multifunc から取得した EEH ハンドル |
| flag | EEH_RESET_TEMP または EEH_RESET_PERM |
| DD バッファー | デバイス・ドライバーのエラー・ログ・バッファーのアドレス |
| DD バッファーの長さ | デバイス・ドライバーのエラー・ログ・バッファーの長さ (バイト単位) |
説明
このサービスは、以下のいくつかのタスクを実行します。
- EEH イベントの性質とソースを理解するのに役立つハードウェア・データを収集します。
- これは、デバイス・ドライバー提供のデバッグ・データ・ログをハードウェア・データ・ログと結合し、エラー・ログにエントリーを作成します。
- オプションで、スロットに永続的に使用不可のマークを付けて、後続の eeh_read_slot_state () 呼び出しが 再試行遅延 値 0 で EEH_UNAVAILABLE を返すようにします。
このカーネル・サービスの動作は、以下の 2 つの 旗 値によって制御されます。
| 項目 | 説明 |
|---|---|
| EEH_RESET_TEMP | このフラグは、上記のタスクの最初の 2 つのみを実行します。 |
| EEH_RESET_PERM | このフラグは、3 つのタスクをすべて実行します。 |
スロットのハードウェア状態によっては、このサービスがハードウェア・データを収集できない場合があります。 したがって、サービスは成功しますが、データはログに記録されません。 EEEH_RESET_PERM が指定されている場合は、スロットに永続的に使用不可のマークが付けられます。
DD バッファー および DD バッファーの長さ パラメーターは、デバイス・ドライバー・エラー・ログとハードウェア・ログを結合するために使用されます。 DD バッファー 引数は、デバイス・ドライバーのデータが入っているエラー・ログ・バッファーのアドレスです。 DD バッファーの長さ 引数は、このバッファーの長さです。 長さが MAX_DD_LOG_SIZE バイトを超えると、ドライバーのログ・データは切り捨てられます。 DD バッファー が NULL の場合、エラー・ログにはハードウェア・データのみが含まれます (存在する場合)。
単一機能ドライバー: カーネル・サービスは、上記の説明のように動作します。 ハードウェアまたはファームウェアの理由で失敗した場合は、EEH_FAIL が戻され、エラーがログに記録されます。
多機能ドライバー: 多機能ドライバーの場合、このサービスは、EEH_RESET_PERM が指定されている場合に EEH_DD_DEAD メッセージがブロードキャストされることを除き、上記の説明のように機能します。
マクロ EEH_SLOT_エラー(ハンドル、 旗、 DD バッファー、 DD バッファーの長さ) は、デバイス・ドライバーがこのサービスを呼び出すために提供されています。
実行環境
このカーネル・サービスは、プロセス環境または割り込み環境から呼び出すことができます。
戻り値
| 項目 | 説明 |
|---|---|
| EEH SUCC (EEH_SUCC) | 正常にログに記録されたエラー |
| EEH が失敗 | エラーをログに記録できず、オプションでスロットに永続的に使用不可のマークを付ける |