【问题标题】:NetBSD kernel crash due to cache error - What is good point to start debugging?由于缓存错误导致 NetBSD 内核崩溃 - 开始调试有什么好处?
【发布时间】:2015-03-12 08:06:57
【问题描述】:

下面是 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>:

sys/bcm/bcm/esw/bcm_elink.c:1812: 805b803c <_bcm_esw_linkscan_update>:

sys/bcm/bcm/esw/bcm_elink.c:3201:805ba83c <_bcm_esw_linkscan_thread>

??:0: 8031ab9c :

这是在 MIPS 上运行的。我在这两个不同的事情上需要帮助:

1) 我看到 MIPS 正在通过软件管理其缓存。这是什么架构?如果有人用一些指针帮助我,那就太好了。当我试图理解这一点时,我发现这可能与缓存一致性问题有关。 (或者任何硬件问题?)

2) 什么是调试的好起点?想了解如何解码上面提到的状态和原因。

【问题讨论】:

    标签: caching kernel mips interrupt netbsd


    【解决方案1】:

    您可以从 Imaginationhere 下载 MIPS 架构参考手册。您应该获得一份See MIPS run 的副本,以便用户友好地解释处理器的工作原理。

    您的 Cause 寄存器的 Excode 为 30,对应于 CacheErr。 See MIPS Run 说这是由缓存中的 ECC 或奇偶校验错误引起的,这听起来像是硬件故障。

    状态寄存器也显示 ECC/奇偶校验错误。

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

    【讨论】:

    • 谢谢。非常有帮助。但我对此知之甚少,需要更多的东西。我们应该在表格中引用这些值以了解原因。我在哪里可以得到那张桌子?
    • 您可以从我在回答中链接的 Imagination/MIPS 网站获取您需要的所有信息。
    猜你喜欢
    • 2014-05-25
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    相关资源
    最近更新 更多