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 が失敗 エラーをログに記録できず、オプションでスロットに永続的に使用不可のマークを付ける