- 论坛徽章:
- 2
|
当处理器(CPU)从内存中读取数据时探测到一个可修复(CE)的错误,他会修正这个数据并继续他的操作。这个错误会被记录在CPU的AFSR(asynchronous fault status register)中,错误发生的物理地址会被记录到CPU的…………
lg700587 发表于 2011-01-06 11:45 ![]()
这段是说的可修复的错误内存处理。
作为错误处理的一部分,Solaris软件会产生关于诊断的些日志,例如:
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 796192 kern.notice] NOTICE: [AFT0] Corrected system bus (CE) Event on CPU18 at TL=0, errID 0x0000c9b9.19d92690
Oct 25 09:06:25 server AFSR 0x00000002<CE>.00000097 AFAR 0x00000001.04bdf7d0
Oct 25 09:06:25 server Fault_PC 0x10024a74 Esynd 0x0097 /N0/SB5/P3/B0/D2 J16500
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 154767 kern.notice][AFT0] errID 0x0000c9b9.19d92690 Corrected Memory Error on /N0/SB5/P3/B0/D2 J16500 is Persistent
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 682217 kern.notice][AFT0] errID 0x0000c9b9.19d92690 Data Bit 3 was in error and corrected
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 422650 kern.info][AFT2] errID 0x0000c9b9.19d92690 E$tag PA=0x00000000.00bdf7c0 does not match AFAR=0x00000001.04bdf7c0
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 904800 kern.info] [AFT2] errID 0x0000c9b9.19d92690 PA=0x00000000.00bdf7c0
Oct 25 09:06:25 server E$tag 0x00000000.01000001 E$state_7 Invalid
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 895151 kern.info] [AFT2] E$Data (0x00) 0x5a8d0016.00000a20 0x20202020.37333231 ECC 0x128
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 895151 kern.info] [AFT2] E$Data (0x10) 0x39062c00.5a8d0010 0x00000a20.20202020 ECC 0x03d
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 895151 kern.info] [AFT2] E$Data (0x20) 0x37333330.32062c00 0x5a8f000c.00000a20 ECC 0x1f6
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 895151 kern.info] [AFT2] E$Data (0x30) 0x20202020.37333330 0x34062c00.5a8f000d ECC 0x1fc
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 929717 kern.info] [AFT2] D$ data not available
Oct 25 09:06:25 server SUNW,UltraSPARC-III: [ID 335345 kern.info] [AFT2] I$ data not available
可以看出上述结果是由于一个简单的CE事件引发的,每一条信息都有AFT(asynchronous fault tag)标签,从第四行开始,AFT标记出现了不同的值:
·AFT0 用于可修复错误(used for correctable errors)
·AFT1 用于不可修复错误,也用于可以导致panic的错误
(for uncorrectable errors as well as for errors that result in panic)
·AFT2 用于诊断日志
·AFT3 其他有关于错误的信息
错误信息剖析如下:
[AFT0]Corrected system bus (CE) Event on CPU18 at TL=0, errID
0x0000c9b9.19d92690
AFSR 0x00000002<CE>.00000097 AFAR 0x00000001.04bdf7d0
Fault_PC 0x10024a74 Esynd 0x0097 /N0/SB5/P3/B0/D2 J16500
[AFT0] errID0x0000c9b9.19d92690 Corrected Memory Error on /N0/SB5/P3/
B0/D2 J16500 is Persistent
[AFT0] errID0x0000c9b9.19d92690 Data Bit 3 was in error and corrected
·errID :事件的时间戳,也叫事件的编号,当在同一时间发生多个故障时就需要使用,errID把一个故障的故障信息关联起来。
·AFSR和AFAR:asynchronous fault 状态和地址寄存器。
·Fault_PC:is value of the PC at the time of the fault and is depend upon the fault type as to whether the value is valid
·Esynd:ECC综合捕获(syndrome captured)。
·/N0/SB5/P3/B0/D2:故障内存模块的地址。
·J16500:内存模块中的J数字。
·Persistent :操作系统(SUN Solaris)关于故障的一个描述,这种描述总共有三种:Intermittent,Persistent,or Sticky关于这些描述的详细解释如下:
?Intermittent:说明在重复读写该位置上内存数据时,没有再次出现错误。(也就是内存自己纠正了数据)
?Persistent:说明在重复读写时在该位置上的内存数据再次出现了错误,需要系统操作可以纠正它。
?Sticky:说明系统操作纠正后,这个错误依然存在。这种情况下建议进行进一步的测试,确定该内存是不是需要更换,因为这种情况表示有硬件故障。
Dec 2 19:30:42 mail4.371.net unix: [AFT0] Multiple Softerrors:
Dec 2 19:30:42 mail4.371.net unix: 106 Intermittent, 144 Persistent, and 6 Sticky Softerrors accumulated
Dec 2 19:30:42 mail4.371.net unix: from Memory Module 1803
Dec 2 19:30:42 mail4.371.net unix: [AFT0] CONSIDER REPLACING THE MEMORY MODULE.
需要注意的是:在Solaris 8 KU-9版本,所有SunFire和Ultra Enterprise主机关于内存的错误,会把可纠正的内存错误信息提示到控制台并记录在messages文件中。在Solaris 8 KU-9以前的版本中,Ultra Enterprise中端服务器中关于单条内存的可纠正性错误在小于5是不会记录日志的(Enterprise 10000除外)。 |
|