Networking

rhel + eth0:檢測到 Tx 單元掛起

  • November 9, 2020

親愛的朋友和大學

我們有 rhel 7.2 版本的 VM 機器 -3.10.0-327.el7.x86_64

我們注意到以下消息(來自/var/log/messages

e1000 0000:02:01.0 eth0: Detected Tx Unit Hang#012  Tx Queue             <0>#012  TDH                  <45>#012  TDT  

從 dmesg 我們得到了

[21519947.519425] e1000 0000:02:01.0 eth0: Detected Tx Unit Hang
 Tx Queue             <0>
 TDH                  <45>
 TDT                  <45>
 next_to_use          <26>
 next_to_clean        <45>
buffer_info[next_to_clean]
 time_stamp           <6032d5901>
 next_to_watch        <47>
 jiffies              <6032d75ab>
 next_to_watch.status <0>
[21519949.521583] e1000 0000:02:01.0 eth0: Detected Tx Unit Hang
 Tx Queue             <0>
 TDH                  <45>
 TDT                  <45>
 next_to_use          <26>
 next_to_clean        <45>
buffer_info[next_to_clean]
 time_stamp           <6032d5901>
 next_to_watch        <47>
 jiffies              <6032d7d7e>
 next_to_watch.status <0>
[21519949.811366] e1000 0000:02:01.0 eth0: Reset adapter
[21519949.855081] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

我們嘗試搜尋上述問題的解決方案,我們看到有關以下修復的文章

設置以下內容/etc/sysctl.conf,然後重新啟動機器

pcie_aspm=offet ( https://serverfault.com/questions/193114/linux-e1000e-intel-networking-driver-problems-galore-where-do-i-start )

或者

ethtool -K eth0 tso off gso off

或者

更改了網路適配器torVMNETX3.

等等 ….

所以我們對正確的解決方案感到困惑

請建議解決我們的問題的正確方法是什麼?

這是舊核心的一個已知問題 ( Bugzilla 1288237 )。該修復程序已被反向移植到較新的核心版本中,並在以下安全公告下進行跟踪:

這個問題被認為是由以下上游送出引入的: https ://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b4ded8327fea82b53fcec39e0845011246d020f4

對於早於 3.10.0-514.el7 的核心,一些使用者報告說,當受影響介面上的 Scatter-Gather 解除安裝引擎通過 ethtool 禁用時,該行為停止發生:

# ethtool -K <interface> sg off

有關更多資訊,請查看 Red Hat 的知識庫文章:https ://access.redhat.com/solutions/2070703

一般來說,由於 RHEL 提供了穩定的 ABI 和 API 介面,執行過時的軟體很少有任何好處,應該更新到正在執行的主要版本的最新更新檔版本(例如 RHEL 7、RHEL 和)。

引用自:https://unix.stackexchange.com/questions/618839