升级发行版后服务器出现错误:tg3_stop_block 超时

升级发行版后服务器出现错误:tg3_stop_block 超时

我在 HP Server Blade ProLiant BL25p G1 上运行 ubuntu

在将发行版升级到 oneiric 之后,我在终端上收到了这些消息。

终端登录

如果我使用 sudo ifconfig eth0 down 关闭 eth0 接口,我就能看到我写的内容。

这是我的 dmesg 末尾的内容

在此处输入图片描述

如果我以恢复模式启动我会收到此消息

在此处输入图片描述

如果我重新启动旧内核的机器,它就能正常工作,有什么建议可以解决这个问题吗?

答案1

好吧,虽然不是很明显,但看起来像是一个内核错误。在 launchpad、bugzilla、arch 中都有类似的报告...

Ubuntu(最新版)https://bugs.launchpad.net/ubuntu/+source/linux/+bug/545334

好像出现多种网卡的问题,我没找到解决办法。

最有帮助的错误报告可能就在这里,在 Arch

https://bugs.archlinux.org/task/19369

没有为您提供解决方案,但是提供了各个发行版中的各种错误报告的详细列表。

我建议你向 kernel.org 提交错误报告

http://bugzilla.kernel.org/

有关 kernel.org 指南,请参阅:

http://www.kernel.org/doc/man-pages/reporting_code_bugs.html

http://www.kernel.org/pub/linux/docs/lkml/reporting-bugs.html

同时继续使用旧内核并查看下一个内核是否修复了该错误。

答案2

在 Launchpad 中报告错误https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1005699,请参阅第 24 项以了解修复方法。讨论内容涉及内核中的 tigon3 驱动程序问题。3.0.24 及以下树存在此错误,但由于 Ubuntu 现在支持 3.0.25-40 内核,因此该错误已修复。第 20 项详细介绍了如何通过从开发内核 3.4、3.3 和 3.2 开始研究来发现此问题,以及如何发现 tg3_stop_block_error 的含义。这是 TSO 的问题。TSO 代表 TCP 分段卸载。

在 3.0.25 之前的内核中发生的事情解释如下马特·卡尔森这里

在最早支持 TSO 的设备上,TSO 是通过固件实现的。但是 TSO 不能与 ASF 管理固件共存。tg3 驱动程序通过调用 tg3_get_eeprom_hw_cfg() 来确定是否启用了 ASF,该函数会检查 NIC 内存的特定位。提交 dabc5c670d3f86d15ee4f42ab38ec5bd2682487d,标题为“tg3:移动 TSO_CAPABLE 分配”,意外地将确定 TSO 功能的代码移到了调用 tg3_get_eeprom_hw_cfg() 之前。因此,驱动程序在获得做出决定所需的所有数据之前就试图确定 TSO 功能。此补丁通过在调用 tg3_get_eeprom_hw_cfg() 后重新访问和重新评估决定来修复该问题。

sudo apt-get dist-upgrade 应该可以解决问题。

相关内容