Solaris 資料一覧

OSが突然Panicダウン(その後自動リブート)したり、マシンがbootしなくなったり(一瞬ハードディスクが回転するがすぐに止まる)する。messagesには「EDP event on CPU2 Data access...」が出る

2007/7/29更新

対応バージョン: 8

メッセージ例)

SUNW,UltraSPARC-II: WARNING: [AFT1] EDP event on CPU2 Data access
at TL=0, errID 0x001cff8d.afb05759
  AFSR 0x00000000.80401000<PRIV,EDP> AFAR 0x00000000.7696d560
  AFSR.PSYND 0x1000(Score 95) AFSR.ETS 0x00 Fault_PC 0x7812aeb4
  UDBH 0x0000 UDBH.ESYND 0x00 UDBL 0x0000 UDBL.ESYND 0x00
SUNW,UltraSPARC-II: [AFT2] errID 0x001cff8d.afb05759 PA=0x00000000.7696d560
  E$tag 0x00000000.1ac00ed2 E$State: Exclusive E$parity 0x0d
SUNW,UltraSPARC-II: [AFT2] E$Data (0x00): 0x00000000.00000000
SUNW,UltraSPARC-II: [AFT2] E$Data (0x10): 0x00000000.00000000 *Bad* PSYND=0x1000
SUNW,UltraSPARC-II: [AFT2] errID 0x001cff8d.afb05759 AFAR was derived from E$Tag
panic[cpu2]/thread=2a10006bd20:

EDP eventはEcache Data SRAMよりデータを読み出し中にパリティエラーが検出されたことを示している。

この動作は一つのCPUモジュール内で完結する動作であるため、EDP eventが発生しているCPUモジュールの問題である。

同イベントが発生する要因として

ソフトエラー(宇宙線などの外的要因によってbit反転が発生しEDP eventが発生する)
ハードエラー(CPUのハード障害)

の2つが考えられるが、どちらが原因なのかを判断することは難しい。

Ecacheエラーが多発している場合にはまずCPUを交換し、さらに以下の手順にてEcacheのscrub周期の変更を行なうことでソフトエラーの発生頻度を下げることができる。

root権限にてecache_scan_rateの現在設定値を確認する。

# echo 'ecache_scan_rate/D' | adb -k

表示される値が100である場合、現在ecache_scan_rateには100が設定されているのでこの値を1000に設定する。

# echo 'ecache_scan_rate/W 0t1000' | adb -kw

再度以下を実行し、設定が反映されていることを確認する。

# echo 'ecache_scan_rate/D' | adb -k

システムの再起動後もこの設定が有効になるように/etc/systemに設定を行う。/etc/systemにまだ以下のパラメータがセットされていない場合にはこれら全てを設定する。既に設定されている場合には値を変更する。

set ecache_scrub_enable=1
set ecache_scan_rate=1000
set ecache_calls_a_sec=100