I have a build with some low-end hardware (Celeron D 340, 2GB RAM, SiS191 Gigabit ethernet adapter on the motherboard and 2x Realtek 8139 PCI-cards). ISP connection is 100/100M fiber (straight DHCP from fiber converter). WAN(red) is connected to the SiS191, green and blue are the Realtek cards.
Out-of-the-box the performance was …underwhelming at the least. I could get maybe 30Mbps before CPU maxing out on software interrupts. Things got better when I changed the WAN card MTU from 1500 to 1492. Now I’m getting about 70Mbps when the CPU is maxed out. My older build was even slower 32-bit machine and it could route the full 100M no problem, so I think this too should be able to do it.
I noticed that ethtool output doesn’t even say that the 1000Mbit speed is supported?
Settings for red0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/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
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
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Auto-negotiation: on
Port: MII
PHYAD: 1
Transceiver: internal
Current message level: 0x00000037 (55)
drv probe link ifdown ifup
Link detected: yes
And yes, I have SiS191, not 190, output from “cat bootlog | grep SiS”
[ 5.312344] sis190 0000:00:04.0 eth0: 0000:00:04.0: SiS 191 PCI Gigabit Ethernet adapter at 00000000bc3db2a5 (IRQ: 19)
Modinfo shows that version for the SiS driver is 1.4, which should be the latest.
ilename: /lib/modules/6.1.45-ipfire/kernel/drivers/net/ethernet/sis/sis190.ko.xz
license: GPL
version: 1.4
author: K.M. Liu <kmliu@sis.com>, Ueimor <romieu@fr.zoreil.com>
description: SiS sis190/191 Gigabit Ethernet driver
srcversion: 532DDE5630B09E58CEF4E60
alias: pci:v00001039d00000191sv*sd*bc*sc*i*
alias: pci:v00001039d00000190sv*sd*bc*sc*i*
depends: mii
retpoline: Y
intree: Y
name: sis190
vermagic: 6.1.45-ipfire SMP preempt mod_unload modversions
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: 31:79:76:E9:23:3E:10:54:73:7D:A6:B0:EA:22:B8:7E:38:FE:19:50
sig_hashalgo: sha512
signature: 30:66:02:31:00:82:E2:CA:03:45:C5:A4:F2:EC:15:CE:97:A3:41:C5:
83:01:72:B0:D6:3A:05:BB:A1:76:2C:C9:B8:57:81:21:78:06:FB:0A:
72:56:15:BA:65:77:B1:63:9C:2D:19:3B:02:02:31:00:A0:7F:D9:03:
BE:A9:00:F5:18:03:80:D9:ED:DA:4A:CA:98:65:60:19:C8:FC:40:02:
B7:4E:5F:34:07:F0:01:94:88:BD:D5:26:D8:B0:63:5E:A6:D5:3E:B3:
4D:95:15:51
parm: rx_copybreak:Copy breakpoint for copy-only-tiny-frames (int)
parm: debug:Debug verbosity level (0=none, ..., 16=all) (int)
ethtool -k red0 shows that the offload options are in a disabled state
Features for red0:
rx-checksumming: off [fixed]
tx-checksumming: off
tx-checksum-ipv4: off [fixed]
tx-checksum-ip-generic: off [fixed]
tx-checksum-ipv6: off [fixed]
tx-checksum-fcoe-crc: off [fixed]
tx-checksum-sctp: off [fixed]
scatter-gather: off
tx-scatter-gather: off [fixed]
tx-scatter-gather-fraglist: off [fixed]
tcp-segmentation-offload: off
tx-tcp-segmentation: off [fixed]
tx-tcp-ecn-segmentation: off [fixed]
tx-tcp-mangleid-segmentation: off [fixed]
tx-tcp6-segmentation: off [fixed]
generic-segmentation-offload: off [requested on]
generic-receive-offload: on
large-receive-offload: off [fixed]
rx-vlan-offload: off [fixed]
tx-vlan-offload: off [fixed]
ntuple-filters: off [fixed]
receive-hashing: off [fixed]
highdma: off [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-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]
fcoe-mtu: 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]
But nothing non-fixed cannot be enabled or disabled. “ethtool -K red0 tx-checksumming on” yields this
Actual changes:
tx-checksum-ipv4: off [requested on]
tx-checksum-ip-generic: off [requested on]
tx-checksum-ipv6: off [requested on]
tx-checksum-fcoe-crc: off [requested on]
tx-checksum-sctp: off [requested on]
Could not change any device features
Any ideas? (beside the obvious “use the realtek card”)