由于缓存错误导致 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 错误。

在另一台机器上尝试 运行 代码,看看它是否仍然失败。