由于缓存错误导致 NetBSD 内核崩溃 - 开始调试的好处是什么?
NetBSD kernel crash due to cache error - What is good point to start debugging?
下面是 NetBSD 5.1 内核崩溃的堆栈跟踪。从minicore收集的基本数据是:
-------------------------------------------------------------
VALID MAGIC: 0xdfeedfee
--------------------------PANIC STRING-----------------------
panic string is :cache error @ EPC 0xffffffff80359a78
L1D_CACHE_ERROR_LOG 0
L1D_CACHE_INTERRUPT 0
status 0x8305, cause 0x78
堆栈跟踪:
sys/arch/evbmips/navasota/md_dump.c:52: 803e092c
:
sys/arch/evbmips/rmixl/machdep.c:1247: 8032c468 :
sys/kern/subr_prf.c:313: 802934ec :
sys/bcm/soc/miim.c:1588: 804b6be0 :
sys/bcm/soc/phy/phyreg.c:1049: 806eb6fc :
sys/bcm/soc/phy/wc40.c:9257: 808a7914 :
sys/bcm/soc/phy/wc40.c:3664: 808acbe4 :
sys/bcm/soc/phyctrl.c:1124: 804bc6ac :
sys/bcm/bcm/esw/port.c:10104: 805fbd48 <_bcm_port_link_get+0x298>:
sys/bcm/bcm/esw/bcm_elink.c:1812: 805b803c
<_bcm_esw_linkscan_update+0x27bc>:
sys/bcm/bcm/esw/bcm_elink.c:3201: 805ba83c
<_bcm_esw_linkscan_thread+0x35c
??:0: 8031ab9c :
这是 MIPS 上的 运行。我在这里需要两件不同的帮助:
1) 我看到 MIPS 正在通过软件管理其缓存。这是什么架构?如果有人用很少的指导帮助我,那就太好了。当我试图理解这一点时,我发现这可能与缓存一致性问题有关。 (或者任何硬件问题?)
2) 调试这个的好的起点应该是什么?想了解如何解码上述状态和原因。
您可以从 Imagination here. You should get a copy of See MIPS run 下载 MIPS 架构参考手册,以便用户友好地解释处理器的工作原理。
您的 Cause 寄存器的 Excode 为 30,对应于 CacheErr。 See MIPS 运行说这是缓存中的ECC或奇偶校验错误引起的,听上去像是硬件故障。
状态寄存器也显示 ECC/parity 错误。
在另一台机器上尝试 运行 代码,看看它是否仍然失败。
下面是 NetBSD 5.1 内核崩溃的堆栈跟踪。从minicore收集的基本数据是:
-------------------------------------------------------------
VALID MAGIC: 0xdfeedfee
--------------------------PANIC STRING-----------------------
panic string is :cache error @ EPC 0xffffffff80359a78
L1D_CACHE_ERROR_LOG 0
L1D_CACHE_INTERRUPT 0
status 0x8305, cause 0x78
堆栈跟踪:
sys/arch/evbmips/navasota/md_dump.c:52: 803e092c :
sys/arch/evbmips/rmixl/machdep.c:1247: 8032c468 :
sys/kern/subr_prf.c:313: 802934ec :
sys/bcm/soc/miim.c:1588: 804b6be0 :
sys/bcm/soc/phy/phyreg.c:1049: 806eb6fc :
sys/bcm/soc/phy/wc40.c:9257: 808a7914 :
sys/bcm/soc/phy/wc40.c:3664: 808acbe4 :
sys/bcm/soc/phyctrl.c:1124: 804bc6ac :
sys/bcm/bcm/esw/port.c:10104: 805fbd48 <_bcm_port_link_get+0x298>:
sys/bcm/bcm/esw/bcm_elink.c:1812: 805b803c <_bcm_esw_linkscan_update+0x27bc>:
sys/bcm/bcm/esw/bcm_elink.c:3201: 805ba83c <_bcm_esw_linkscan_thread+0x35c
??:0: 8031ab9c :
这是 MIPS 上的 运行。我在这里需要两件不同的帮助:
1) 我看到 MIPS 正在通过软件管理其缓存。这是什么架构?如果有人用很少的指导帮助我,那就太好了。当我试图理解这一点时,我发现这可能与缓存一致性问题有关。 (或者任何硬件问题?)
2) 调试这个的好的起点应该是什么?想了解如何解码上述状态和原因。
您可以从 Imagination here. You should get a copy of See MIPS run 下载 MIPS 架构参考手册,以便用户友好地解释处理器的工作原理。
您的 Cause 寄存器的 Excode 为 30,对应于 CacheErr。 See MIPS 运行说这是缓存中的ECC或奇偶校验错误引起的,听上去像是硬件故障。
状态寄存器也显示 ECC/parity 错误。
在另一台机器上尝试 运行 代码,看看它是否仍然失败。