自宅Linuxサーバ(kernel 4.18.0-rc4) に1Gbpsほぼ帯域フルの送信(sambaの共有領域へのファイルコピー)をしていると、1分くらいたったところでハングアップする。
メッセージ出たのは1回だけど、その後なんどかやっても link up メッセージは出て再現性は高い状態。
kernel: NETDEV WATCHDOG: enp3s0 (r8169): transmit queue 0 timed out kernel: WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:461 dev_watchdog+0x1ff/0x210 :(中略) r8169 0000:03:00.0 enp3s0: link up
<余談>
今までWifiで通信していたのであまり 1Gbps フルでサーバに通信することがなかったが、最近LANを自室まで敷設したので 1Gbps 通信が行えるようになった
</余談>
ネット調査していると以下の記事発見。
[PATCH net v2] r8169: fix network stalls due to missing bit TXCFG_AUTO_FIFO
パッチが効くのは
+ if (tp->mac_version >= RTL_GIGA_MAC_VER_34 && + tp->mac_version != RTL_GIGA_MAC_VER_39)
という感じだが、
自宅Linuxサーバは起動時のログから RTL8168h/8111h ということがわかっているので、
kernel: r8169 0000:03:00.0 eth1: RTL8168h/8111h, xx:xx:xx:xx:xx:xx, XID ~
RTL_GIGA_MAC_VER_45 もしくは RTL_GIGA_MAC_VER_46 のためパッチは効果ありそう。
どうせなら、と思い最新の stable バージョンのカーネル 5.16.4 に上げてみたところ事象は再現しなくなったため、とりあえず解決かしら。
(解決しなかったら realtek社 のドライバ r8168 使ってみるか、と思っていたところ)