e1000 driver hang

namelessx

New Member
May 2, 2020
18
4
3
31
Oh man, I just run into many problems after applying this workaround. Really, big time.
I don't know what might happened but my VM's, especially the one with smart home instance (Home Assistant) got messed. I was loosing connectivity to this VM (Web UI wasn't responding or loading), I also experienced some problems with connectivity between it's internal network interfaces, I guess. It literally gave me a bad headache.

Was it because I applied post-up to vmbr0? What should I do then to keep workaround but not mess VM's NIC at the same time?
 

Taylan

Member
Oct 19, 2020
62
15
8
52
Oh man, I just run into many problems after applying this workaround. Really, big time.
I don't know what might happened but my VM's, especially the one with smart home instance (Home Assistant) got messed. I was loosing connectivity to this VM (Web UI wasn't responding or loading), I also experienced some problems with connectivity between it's internal network interfaces, I guess. It literally gave me a bad headache.

Was it because I applied post-up to vmbr0? What should I do then to keep workaround but not mess VM's NIC at the same time?
You have to restart networking in the VMs or LXCs as well, better restart them, after changing /etc/networking/interfaces
 

Taylan

Member
Oct 19, 2020
62
15
8
52
Here is the working config for me (just set to physical interface "eno2" which serves the pve host):
Code:
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

iface eno2 inet manual
    post-up /usr/sbin/ethtool -K $IFACE tso off gso off 2> /dev/null

iface eno1 inet manual

iface enp0s20f0u5u2c2 inet manual

auto vmbr0
iface vmbr0 inet static
    address 10.0.0.20/24
    gateway 10.0.0.1
    bridge-ports eno2
    bridge-stp off
    bridge-fd 0
After editing, I did run
Code:
systemctl restart networking.service
and restart all my containers:
Code:
for i in $(lxc-ls); do echo "$i"; lxc-stop "$i"; lxc-start "$i"; done
 
Last edited:

namelessx

New Member
May 2, 2020
18
4
3
31
You have to restart networking in the VMs or LXCs as well, better restart them, after changing /etc/networking/interfaces
Yup, I noticed that after a while. But even after restarting the VM's and containers I did notice really strange behaviour in Home Assistant VM. Maybe that was not related to this issue or workaround, just a coincidence.
Right now I rolled back because of lack of time. I will try again tomorrow and come back with the result.


Here is the working config for me (just set to physical interface "eno2" which serves the pve host)
I don't have any other interface like that. Should I just create a new one, and that's it? No other configuration for newly created interface is needed? Just add following two lines?
Code:
iface eno2 inet manual
    post-up /usr/sbin/ethtool -K $IFACE tso off gso off 2> /dev/null

Sorry for asking that kind of noobish question. Honestly, I don't have pretty much idea what I'm doing right now ;) This stuff is pretty advanced for me yet. I also don't want to suddenly break connection to my host. As I mentioned before, I run NUC in headless setup.
 

Taylan

Member
Oct 19, 2020
62
15
8
52
I don't have any other interface like that. Should I just create a new one, and that's it? No other configuration for newly created interface is needed? Just add following two lines?
No, it doesn't work like that. I just have more than 2 physical NICs.

I just added that post-up to one interface, that I use for Proxmox host.
 
Last edited:
  • Like
Reactions: namelessx

namelessx

New Member
May 2, 2020
18
4
3
31
No, it doesn't work like that. I just have more than 2 physical NICs.

I just added that post-up to one interface, that I use for Proxmox host.
Ok, I misunderstood your post – my fault.

I tried that once more – applied the line only to eno1 interface.
Code:
auto lo
iface lo inet loopback

iface eno1 inet manual
        post-up /usr/sbin/ethtool -K $IFACE tso off gso off 2> /dev/null

auto vmbr0
iface vmbr0 inet static
        address 192.168.8.101
        netmask 255.255.255.0
        gateway 192.168.8.1
        bridge_ports eno1
        bridge_stp off
        bridge_fd 0

Unfortunately, when I run "ethtool -k eno1" I don't see any changes applied. I did run "ifdown -a && ifup -a" afterwards. I also tried rebooting the host.
 

Taylan

Member
Oct 19, 2020
62
15
8
52
Ok, I misunderstood your post – my fault.

I tried that once more – applied the line only to eno1 interface.
Code:
auto lo
iface lo inet loopback

iface eno1 inet manual
        post-up /usr/sbin/ethtool -K $IFACE tso off gso off 2> /dev/null

auto vmbr0
iface vmbr0 inet static
        address 192.168.8.101
        netmask 255.255.255.0
        gateway 192.168.8.1
        bridge_ports eno1
        bridge_stp off
        bridge_fd 0

Unfortunately, when I run "ethtool -k eno1" I don't see any changes applied. I did run "ifdown -a && ifup -a" afterwards. I also tried rebooting the host.
PVE tries to read / hold on to that file. Try "
systemctl restart networking.service
" instead of if down and if up.

Edit: P.S. you use &&, it means it won't run the second part, if the first one fails. That may be the issue here.
 
Last edited:

namelessx

New Member
May 2, 2020
18
4
3
31
PVE tries to read / hold on to that file. Try "
systemctl restart networking.service
" instead of if down and if up.

Edit: P.S. you use &&, it means it won't run the second part, if the first one fails. That may be the issue here.
Thanks for explanation. Tried that now, but the result is the same :/
 

namelessx

New Member
May 2, 2020
18
4
3
31
Not here, unfortunately :( I did exactly the same as you did (just applied to eno1 instead of eno2). Even now just repeated the steps that you did and the result of diff is blank (nothing).
 

Taylan

Member
Oct 19, 2020
62
15
8
52
Not here, unfortunately :( I did exactly the same as you did (just applied to eno1 instead of eno2). Even now just repeated the steps that you did and the result of diff is blank (nothing).
Does it work, if you set the post-up to both (the virtual as well) interfaces?
 

namelessx

New Member
May 2, 2020
18
4
3
31
Does it work, if you set the post-up to both (the virtual as well) interfaces?
Strangely, when I apply post-up to both interfaces only 'tx-tcp-mangleid-segmentation: off' line changes.


Code:
root@pve:~# ethtool -k eno1
Features for eno1:
rx-checksumming: on
tx-checksumming: on
        tx-checksum-ipv4: off [fixed]
        tx-checksum-ip-generic: on
        tx-checksum-ipv6: off [fixed]
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: off [fixed]
scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
        tx-tcp-segmentation: on
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]


Code:
root@pve:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback


iface eno1 inet manual
#       post-up /usr/sbin/ethtool -K eno1 tso off gso off 2> /dev/null
        post-up /usr/sbin/ethtool -K $IFACE tso off gso off 2> /dev/null


auto vmbr0
iface vmbr0 inet static
        address 192.168.8.101
        netmask 255.255.255.0
        gateway 192.168.8.1
        bridge_ports eno1
        bridge_stp off
        bridge_fd 0
#       post-up /usr/sbin/ethtool -K eno1 tso off gso off 2> /dev/null
        post-up /usr/sbin/ethtool -K $IFACE tso off gso off 2> /dev/null

I did 'systemctl restart networking.service' as well as full reboot.
 

Taylan

Member
Oct 19, 2020
62
15
8
52
Strangely, when I apply post-up to both interfaces only 'tx-tcp-mangleid-segmentation: off' line changes.


Code:
root@pve:~# ethtool -k eno1
Features for eno1:
rx-checksumming: on
tx-checksumming: on
        tx-checksum-ipv4: off [fixed]
        tx-checksum-ip-generic: on
        tx-checksum-ipv6: off [fixed]
        tx-checksum-fcoe-crc: off [fixed]
        tx-checksum-sctp: off [fixed]
scatter-gather: on
        tx-scatter-gather: on
        tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: on
        tx-tcp-segmentation: on
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off [fixed]
receive-hashing: on
highdma: on [fixed]
rx-vlan-filter: off [fixed]
vlan-challenged: off [fixed]
tx-lockless: off [fixed]
netns-local: off [fixed]
tx-gso-robust: off [fixed]
tx-fcoe-segmentation: off [fixed]
tx-gre-segmentation: off [fixed]
tx-gre-csum-segmentation: off [fixed]
tx-ipxip4-segmentation: off [fixed]
tx-ipxip6-segmentation: off [fixed]
tx-udp_tnl-segmentation: off [fixed]
tx-udp_tnl-csum-segmentation: off [fixed]
tx-gso-partial: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
fcoe-mtu: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off
rx-all: off
tx-vlan-stag-hw-insert: off [fixed]
rx-vlan-stag-hw-parse: off [fixed]
rx-vlan-stag-filter: off [fixed]
l2-fwd-offload: off [fixed]
hw-tc-offload: off [fixed]
esp-hw-offload: off [fixed]
esp-tx-csum-hw-offload: off [fixed]
rx-udp_tunnel-port-offload: off [fixed]
tls-hw-tx-offload: off [fixed]
tls-hw-rx-offload: off [fixed]
rx-gro-hw: off [fixed]
tls-hw-record: off [fixed]


Code:
root@pve:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback


iface eno1 inet manual
#       post-up /usr/sbin/ethtool -K eno1 tso off gso off 2> /dev/null
        post-up /usr/sbin/ethtool -K $IFACE tso off gso off 2> /dev/null


auto vmbr0
iface vmbr0 inet static
        address 192.168.8.101
        netmask 255.255.255.0
        gateway 192.168.8.1
        bridge_ports eno1
        bridge_stp off
        bridge_fd 0
#       post-up /usr/sbin/ethtool -K eno1 tso off gso off 2> /dev/null
        post-up /usr/sbin/ethtool -K $IFACE tso off gso off 2> /dev/null

I did 'systemctl restart networking.service' as well as full reboot.
On the vmbr0 post up, you used eno1, that can't work. $IFACE should do it.
Maybe your hardware or firmware doesn't support it...
 

Taylan

Member
Oct 19, 2020
62
15
8
52
That's just the comment :)
I mean, if you can't turn off the features with
Code:
ethtool -K eno1 tso off gso off
changing interface settings won't do much.

Edit: Maybe take a look at "dmesg" after you try the command above.
 
Last edited:

namelessx

New Member
May 2, 2020
18
4
3
31
I mean, if you can't turn off the features with
Code:
ethtool -K eno1 tso off gso off
changing interface settings won't do much.

Edit: Maybe take a look at "dmesg" after you try the command above.
If I run "ethtool -K eno1 tso off gso off" manually I get following changes:

Code:
tcp-segmentation-offload: off
        tx-tcp-segmentation: off
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: off
udp-fragmentation-offload: off
generic-segmentation-offload: off

How about this post: https://forum.proxmox.com/threads/e1000-driver-hang.58284/post-303500 ?
What should I do then?
 

Taylan

Member
Oct 19, 2020
62
15
8
52
If I run "ethtool -K eno1 tso off gso off" manually I get following changes:

Code:
tcp-segmentation-offload: off
        tx-tcp-segmentation: off
        tx-tcp-ecn-segmentation: off [fixed]
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: off
udp-fragmentation-offload: off
generic-segmentation-offload: off

How about this post: https://forum.proxmox.com/threads/e1000-driver-hang.58284/post-303500 ?
What should I do then?
That it works (without auto eno2) on my hardware contradicts his assumption.
If the command above seems to change the settings, you could build a systemd service around it and let it run on the boot.
 

namelessx

New Member
May 2, 2020
18
4
3
31
That it works (without auto eno2) on my hardware contradicts his assumption.
If the command above seems to change the settings, you could build a systemd service around it and let it run on the boot.
Ok, many thanks for patience and explanation. I will try and test what I can achieve.

Anyways, maybe someone will stumble upon this topic and provide definite solution. That is pretty frustrating experience TBH ;)
 
  • Like
Reactions: Taylan

Tekno-man

New Member
Mar 1, 2021
3
0
1
35
Hi all, I am super new to proxmox and have read through most of this thread but was still a little unsure. If I run
Code:
ethtool -K enp0s25 tso off gso off
my network stops reseting and everything is great but every time a restart the server I have to run the same command. What is the best practice to make this command run each time on network or system start up?
 

arteck

New Member
Jul 3, 2020
12
0
1
46
Hi all, I am super new to proxmox and have read through most of this thread but was still a little unsure. If I run
Code:
ethtool -K enp0s25 tso off gso off
my network stops reseting and everything is great but every time a restart the server I have to run the same command. What is the best practice to make this command run each time on network or system start up?

edit your /etc/network/interfaces
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get your own in 60 seconds.

Buy now!