Proxmox VE update to 9.1.5, now the network card is slow

alia80

Member
Sep 21, 2021
22
2
23
56
Hello,
I recently did an in place upgrade to PVE 9, everything seems to be working fine but now the network card seems to be slow. I run pfSense in a VM with a couple of network interfaces passed through. I have not made any changes to the VM recently and no hardware change to the system but the internet through put on the WAN is down to 25% the normal bandwidth. I have ruled out the ISP by checking the bandwidth directly using a laptop and used iperf3 to test the connection between the PC and the router. Everything seems to be working fine, the only thing that changed was the PVE upgrade to version 9.

Does anyone have any suggestions as to what could have caused this issue?

Thanks.
 
Additional info:

Bash:
lspci | grep -i ethernet
01:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe
01:00.1 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe
02:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe
02:00.1 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe

ethtool vmbr2
Settings for vmbr2:
        Supported ports: [  ]
        Supported link modes:   Not reported
        Supported pause frame use: No
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Unknown! (255)
        Auto-negotiation: off
        Port: Other
        PHYAD: 0
        Transceiver: internal
        Link detected: yes
 
Hi,
could you please post the ethtool output of the underlying physical interface instead of the bridge? Get the physical interface with bridge link show master vmbr2 and then post ethtool <interface>, ethtool -k <interface> and ethtool -i <interface>. Thanks!
 
Hi,
could you please post the ethtool output of the underlying physical interface instead of the bridge? Get the physical interface with bridge link show master vmbr2 and then post ethtool <interface>, ethtool -k <interface> and ethtool -i <interface>. Thanks!
Bash:
ethtool eno4
Settings for eno4:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 2
        Transceiver: internal
        MDI-X: off
        Supports Wake-on: g
        Wake-on: d
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes

ethtool -k eno4

Features for eno4:
rx-checksumming: on
tx-checksumming: on
        tx-checksum-ipv4: on
        tx-checksum-ip-generic: off [fixed]
        tx-checksum-ipv6: on
        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: on
        tx-tcp-mangleid-segmentation: off
        tx-tcp6-segmentation: on
        tx-tcp-accecn-segmentation: off [fixed]
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: on [fixed]
tx-vlan-offload: on [fixed]
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: on
rx-vlan-filter: off [fixed]
vlan-challenged: 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-tunnel-remcsum-segmentation: off [fixed]
tx-sctp-segmentation: off [fixed]
tx-esp-segmentation: off [fixed]
tx-udp-segmentation: off [fixed]
tx-gso-list: off [fixed]
tx-nocache-copy: off
loopback: off [fixed]
rx-fcs: off [fixed]
rx-all: off [fixed]
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]
rx-gro-list: off
macsec-hw-offload: off [fixed]
rx-udp-gro-forwarding: off
hsr-tag-ins-offload: off [fixed]
hsr-tag-rm-offload: off [fixed]
hsr-fwd-offload: off [fixed]
hsr-dup-offload: off [fixed]

ethtool -i eno4

driver: tg3
version: 6.17.9-1-pve
firmware-version: FFV21.60.2 bc 5720-v1.39
expansion-rom-version:
bus-info: 0000:02:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
 
Is the slowdown from inside of the VM to the router or also from the host to the router?

Some other stuff to check:
Code:
# check ring-buffer utilization
ethtool -g eno4
# check interrupt coalescing
ethtool -c eno4

# check if there are any driver/interface errors
dmesg | grep -i tg3
dmesg | grep -i eno4

# if the packets go over iptables (shouldn't be the case on pve9.1, but maybe it got enabled?)
sysctl net.bridge.bridge-nf-call-iptables
sysctl net.bridge.bridge-nf-call-ip6tables
 
Is the slowdown from inside of the VM to the router or also from the host to the router?

Some other stuff to check:
Code:
# check ring-buffer utilization
ethtool -g eno4
# check interrupt coalescing
ethtool -c eno4

# check if there are any driver/interface errors
dmesg | grep -i tg3
dmesg | grep -i eno4

# if the packets go over iptables (shouldn't be the case on pve9.1, but maybe it got enabled?)
sysctl net.bridge.bridge-nf-call-iptables
sysctl net.bridge.bridge-nf-call-ip6tables
No sure how to interpret the first two, but I don't see any obvious errors using dmesg (output too long to post) and it does not seem like packets are going over iptables. Here is the output:

Bash:
ethtool -g eno4

Ring parameters for eno4:
Pre-set maximums:
RX:                     2047
RX Mini:                n/a
RX Jumbo:               n/a
TX:                     511
TX push buff len:       n/a
Current hardware settings:
RX:                     200
RX Mini:                n/a
RX Jumbo:               n/a
TX:                     511
RX Buf Len:             n/a
CQE Size:               n/a
TX Push:                off
RX Push:                off
TX push buff len:       n/a
TCP data split:         n/a

ethtool -c eno4

Coalesce parameters for eno4:
Adaptive RX: n/a  TX: n/a
stats-block-usecs:      0
sample-interval:        n/a
pkt-rate-low:           n/a
pkt-rate-high:          n/a

rx-usecs:       20
rx-frames:      5
rx-usecs-irq:   0
rx-frames-irq:  5

tx-usecs:       72
tx-frames:      53
tx-usecs-irq:   0
tx-frames-irq:  5

rx-usecs-low:   n/a
rx-frame-low:   n/a
tx-usecs-low:   n/a
tx-frame-low:   n/a

rx-usecs-high:  n/a
rx-frame-high:  n/a
tx-usecs-high:  n/a
tx-frame-high:  n/a

CQE mode RX: n/a  TX: n/a

tx-aggr-max-bytes:      n/a
tx-aggr-max-frames:     n/a
tx-aggr-time-usecs:     n/a

sysctl net.bridge.bridge-nf-call-iptables

net.bridge.bridge-nf-call-iptables = 0

sysctl net.bridge.bridge-nf-call-ip6tables

net.bridge.bridge-nf-call-ip6tables = 0