Problem
If you are running proxmox (e.g. proxmox v 8.4.14) on a Intel NUC and it sporadically crashes with the following entries in the log:
Dec 24 17:16:04 proxmox1 kernel: e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang:
TDH <db>
TDT <d>
next_to_use <d>
next_to_clean <d9>
buffer_info[next_to_clean]:
time_stamp <7245b20af>
next_to_watch <db>
jiffies <7245b3080>
next_to_watch.status <0>
MAC Status <40080083>
PHY Status <796d>
PHY 1000BASE-T Status <3800>
PHY Extended Status <3000>
PCI Status <10>
Dec 24 17:16:06 proxmox1 kernel: e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang:
TDH <db>
TDT <d>
next_to_use <d>
next_to_clean <d9>
buffer_info[next_to_clean]:
time_stamp <7245b20af>
next_to_watch <db>
jiffies <7245b3840>
next_to_watch.status <0>
MAC Status <40080083>
PHY Status <796d>
PHY 1000BASE-T Status <3800>
PHY Extended Status <3000>
PCI Status <10>
Dec 24 17:16:07 proxmox1 kernel: e1000e 0000:00:1f.6 eno1: NETDEV WATCHDOG: CPU: 4: transmit queue 0 timed out 6480 ms
Dec 24 17:16:07 proxmox1 kernel: e1000e 0000:00:1f.6 eno1: Reset adapter unexpectedly
Dec 24 17:16:07 proxmox1 kernel: vmbr0: port 1(eno1) entered disabled state
Dec 24 17:16:11 proxmox1 kernel: e1000e 0000:00:1f.6 eno1: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
Dec 24 17:16:11 proxmox1 kernel: vmbr0: port 1(eno1) entered blocking state
Dec 24 17:16:11 proxmox1 kernel: vmbr0: port 1(eno1) entered forwarding state
Dec 24 17:16:13 proxmox1 kernel: e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang:
TDH <0>
TDT <1>
next_to_use <1>
next_to_clean <0>
buffer_info[next_to_clean]:
time_stamp <7245b4a01>
next_to_watch <0>
jiffies <7245b5381>
next_to_watch.status <0>
MAC Status <40080083>
PHY Status <796d>
PHY 1000BASE-T Status <3800>
PHY Extended Status <3000>
PCI Status <10>
Solution
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/nic-offloading-fix.sh)"
_ ____________ ____ __________ ___ ____ _ __ __
/ | / / _/ ____/ / __ \/ __/ __/ /___ ____ _____/ (_)___ ____ _ / __ \(_)________ _/ /_ / /__ _____
/ |/ // // / / / / / /_/ /_/ / __ \/ __ `/ __ / / __ \/ __ `/ / / / / / ___/ __ `/ __ \/ / _ \/ ___/
/ /| // // /___ / /_/ / __/ __/ / /_/ / /_/ / /_/ / / / / / /_/ / / /_/ / (__ ) /_/ / /_/ / / __/ /
/_/ |_/___/\____/ \____/_/ /_/ /_/\____/\__,_/\__,_/_/_/ /_/\__, / /_____/_/____/\__,_/_.___/_/\___/_/
/____/
Enhanced version supporting both e1000e and e1000 drivers
ℹ️ Searching for Intel e1000e and e1000 interfaces...
✔️ Found 1 Intel e1000e/e1000 interfaces
✔️ Selected interface: eno1 (e1000e)
ℹ️ Creating systemd service for interface: eno1 (e1000e)...
✔️ Service for eno1 (e1000e) created and enabled!
ℹ️ Service: disable-nic-offload-eno1.service...
ℹ️ Status: Active...
ℹ️ Start on boot: Enabled...
✔️ Intel e1000e/e1000 optimization complete for 1 interface(s)!
ℹ️ Verification commands:...
ethtool -k eno1 # Check offloading status
systemctl status disable-nic-offload-eno1.service # Check service status
root@proxmox1:~#
root@proxmox1:~#
The script creats a new systemd service "disable-nic-offload-eno1.service":
root@proxmox1:~#
root@proxmox1:~# systemctl status disable-nic-offload-eno1.service
● disable-nic-offload-eno1.service - Disable NIC offloading for Intel e1000e interface eno1
Loaded: loaded (/etc/systemd/system/disable-nic-offload-eno1.service; enabled; preset: enabled)
Active: active (exited) since Tue 2025-12-30 21:15:19 CET; 3 days 1h ago
Main PID: 498493 (code=exited, status=0/SUCCESS)
CPU: 22ms
Dec 30 21:15:18 proxmox1 systemd[1]: Starting disable-nic-offload-eno1.service - Disable NIC offloading for Intel e1000e interface eno1...
Dec 30 21:15:19 proxmox1 systemd[1]: Finished disable-nic-offload-eno1.service - Disable NIC offloading for Intel e1000e interface eno1.
root@proxmox1:~#
root@proxmox1:~#

No comments:
Post a Comment