# [workaround] nfoce forcedeth slow network-speed

## Vrenn

Hello!

I have a strange problem. On my old very relyable machine (build 2007) I used to backup over a 1GB-Ethernet.

Now I saw that the netspeed is only 100Mbit max (sftp/rsync ~9MB)

NIC is nforce motherboard.

```
00:07.0 Bridge: NVIDIA Corporation MCP61 Ethernet (rev a2)

        Subsystem: ASUSTeK Computer Inc. MCP61 Ethernet

        Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 25

        Memory at ddefd000 (32-bit, non-prefetchable) [size=4K]

        I/O ports at d480 [size=8]

        Capabilities: [44] Power Management version 2

        Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit+

        Capabilities: [6c] HyperTransport: MSI Mapping Enable- Fixed+

        Kernel driver in use: forcedeth
```

What I tried:

change cable

change switch (Netgear GS105,direct on AVM-fritz-7590)

change kernel (up to 4.14.15)

(change nic (to a d-link DGE-528T, seems not to supported by r8169 anymore, have no other pci-nic))

I know and I think I was once shortly able to use 1GB mode.

The Netgear switch always shows two LEDs, so 1GB should be used by the hardware, but it is not -> software-problem?

Any ideas?

----------

## bbgermany

Hi,

can you check via ethtool the advertised modes etc?

greets, bb

----------

## Vrenn

```
 # ethtool eth0

Settings for eth0:

        Supported ports: [ MII ]

        Supported link modes:   10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

                                1000baseT/Full 

        Supported pause frame use: No

        Supports auto-negotiation: Yes

        Advertised link modes:  10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

                                1000baseT/Full 

        Advertised pause frame use: No

        Advertised auto-negotiation: Yes

        Speed: 1000Mb/s

        Duplex: Full

        Port: MII

        PHYAD: 1

        Transceiver: internal

        Auto-negotiation: on

        Supports Wake-on: g

        Wake-on: d

        Link detected: yes
```

First used the tool.

In the night I tested Ubuntu-dvd, 12Mbit.

Then I checked installed but sleeping (NIC usually deactivated) Windows Vista with both cables: both 1GB-mode!...

Today (before 10 minutes) my Netgear-swich tells me on that port 100Mbit-connetion. That behaviour is bad for backup but thank you for the ethtool. I'll pull out the whole cable, clean it with the "contact-cleaner spray" (sorry for my bad english), the RJ45-dose too and see what ethtool is telling me about that.

```
# ethtool -S eth0

NIC statistics:

     tx_bytes: 20165157

     tx_zero_rexmt: 278413

     tx_one_rexmt: 0

     tx_many_rexmt: 0

     tx_late_collision: 0

     tx_fifo_errors: 0

     tx_carrier_errors: 0

     tx_excess_deferral: 0

     tx_retry_error: 0

     rx_frame_error: 0

     rx_extra_byte: 0

     rx_late_collision: 0

     rx_runt: 0

     rx_frame_too_long: 0

     rx_over_errors: 0

     rx_crc_errors: 0

     rx_frame_align_error: 0

     rx_length_error: 0

     rx_unicast: 4521482

     rx_multicast: 16

     rx_broadcast: 81

     rx_packets: 4521579

     rx_errors_total: 0

     tx_errors_total: 0

     tx_deferral: 0

     tx_packets: 278413

     rx_bytes: 6811992368

     tx_pause: 0

     rx_pause: 0

     rx_drop_frame: 0
```

This is past a copy from my server to the pc. About 5GB big file. Seems to work now (but did not the past two days...)

Thank you for the tool.

Any tips what to look for specially? (at now I'll look at speed, advertised link modes, tx_fifo/rety/frame_errors and rx_drop_frames)

----------

## bbgermany

Hi,

np about the english, im no native as well. Usually issues on gbit belong to bad cable, bad connections on patch panels or even the wall outlets. Sometimes it is a bad nic or even a misconfigured switch port (if possible).

greets, bb

----------

## NeddySeagoon

Vrenn,

1Gb uses all 8 wires in the network cable.

10/100Mb only uses wires 1, 2, 3 and 6.

It matters to 1Gb about kinks and squashed cables too.

Watch out for 4 wire patch cables.

----------

## Vrenn

Both cable I used are cat6. I cleaned all components, and installed the cable again. If it happens again I'll buy/replace the cable, but as the backup-cable (cat6 too) did show the same, just under Linux for two days I though it was a driver-issue. At least ethtool tells me what my diver is thinking at the moment  :Smile: 

Thank you for the help!

----------

## Vrenn

When the machine is turned off a while I now get 100 mode per default.

```
# ethtool eth0

Settings for eth0:

        Supported ports: [ MII ]

        Supported link modes:   10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

                                1000baseT/Full 

        Supported pause frame use: No

        Supports auto-negotiation: Yes

        Advertised link modes:  10baseT/Half 10baseT/Full 

                                100baseT/Half 100baseT/Full 

        Advertised pause frame use: No

        Advertised auto-negotiation: Yes

        Speed: 100Mb/s

        Duplex: Full

        Port: MII

        PHYAD: 1

        Transceiver: internal

        Auto-negotiation: on

        Supports Wake-on: g

        Wake-on: d

        Link detected: yes
```

Replugging gets me 1GB again.

The other pci-Nic I have is not working anymore, even in ubuntu, a save bet on an USB-nic gives me only 40MB max because of only USB2 available.

Tested setting it with ethtool -s eth0 speed 1000 duplex full.

First I get about 70-80MB, then it lowers to 33, might be the old machine (AMD athlon 5200x2)

But third test (ethtool still tells me its set on 1000 speed) I download with ~4MB...then 16, with pauses I guess looking at the kde systray. ethtool still tells me 1gb!

From my laptop loading the same file from the same server I get stable 70+10MB/s.

There's something bad going on.

I now might blame the nforce-nic on the motherboard, for whatever reason so it might be nothing for gentoo (exept there is a software-workaround made by my gentoo possible  :Wink: 

```
NIC statistics:

     tx_bytes: 59572582

     tx_zero_rexmt: 846959

     tx_one_rexmt: 0

     tx_many_rexmt: 0

     tx_late_collision: 0

     tx_fifo_errors: 0

     tx_carrier_errors: 0

     tx_excess_deferral: 0

     tx_retry_error: 0

     rx_frame_error: 0

     rx_extra_byte: 0

     rx_late_collision: 0

     rx_runt: 0

     rx_frame_too_long: 0

     rx_over_errors: 1

     rx_crc_errors: 0

     rx_frame_align_error: 0

     rx_length_error: 0

     rx_unicast: 19511253

     rx_multicast: 30

     rx_broadcast: 167

     rx_packets: 19511450

     rx_errors_total: 1

     tx_errors_total: 0

     tx_deferral: 0

     tx_packets: 846959

     rx_bytes: 29470238906

     tx_pause: 2

     rx_pause: 0

     rx_drop_frame: 0
```

new errors now. Note-able?

I'll continue looking for an old PCI-NIC on my attic, might buy a usb-nic, at least stable 35-40MB are posssible on USB2.

dmesg gives me nothing (the eth0 up/down was the speed change by ethtool)

```
[    0.796178] forcedeth: Reverse Engineered nForce ethernet driver. Version 0.64.

[    1.320438] forcedeth 0000:00:07.0: ifname eth0, PHY OUI 0x1374 @ 1, addr 00:1a:92:b3:8a:7d

[    1.320489] forcedeth 0000:00:07.0: highdma pwrctl mgmt gbit lnktim msi desc-v3

[   24.444512] forcedeth 0000:00:07.0 eth0: MSI enabled

[ 1658.724179] forcedeth 0000:00:07.0 eth0: link down

[ 1661.481366] forcedeth 0000:00:07.0 eth0: link up
```

(by the way. Tested another almost new cat5e cable, 3 meter, same results)

----------

## Vrenn

Just tried a NIC with Realtec-Chip "RTL8139C"

Didn't know if driver 8139cp or 8139too neede, so I configured both as module.

Both loaded (lspci -v) and openrc told me it got an IP.

But then local network access was not possible. I loaded just one of them, no success. After reboot with ubuntu-dvd, modules were not loaded at all. Back in my genoo ifconfig/lspci -v don't show eth1 either, it's like its dead...

nforce,D-link, Realtek, third card burned?

Now I'm really desperated.

----------

## bbgermany

Hi,

if you have installed a new card, it could be named as enp3s0 or something similiar. eth1 or even ethX is not a must anymore since the new naming scheme of udev.

Did you shut off eth0 (your nforce card) when you tried the 8139C? Accordind to the usb lan adapter, you wont get 35-40MB/s if you buy a USB2.0 card, since these usually connect with 100Mbit/s only and if you buy a USB3.0 based card, im not sure how well they perform on USB2.0

If you can, you should try to get a PCI Ethernet adapter from ebay or even amazon, based on an Intel card if possible.

oh and btw, the 3m cable is direct attached to the switch, or to another computer or is it connected to the wall outlet?

greets, bb

----------

## Vrenn

Hello.

ifconfig first showed the new card, but it disappeared after some minutes of use. First both modules loaded and bind on the card by themselves. Then after restart modules were not loaded anymore, modprobe them didn't made any change.

Seems like the cars have not been found by linux anymore, even ubuntu-livedvd did not get them up.

Current setup: problemPC-3mcable-NetgearGBswith-router-anotherNetgearSwitch-Server/laptop

What about a powerunit/motherboard-fault? CPU run stable compiling kdeplasma or libreoffice. But it might harm the cards I installed in the last slot? Or why they are visible as eth1 first with loaded modules and IP, and after a short time not even found any more by the gentoo or ubunu-kernel?

An USB-NIC might be more motherboard/powerunit-independent. I already tried two Realtec/D-link PCI cards on it.

Thanks for the intel-tip. I might check the cable-connetions on the board first.

----------

## NeddySeagoon

Vrenn,

Post your lspci output and put your dmesg onto a pastebin site.

We need dmesg from the very start, so you may need to reboot to get that.

USB2 provides at best 440Mbit/sec but its only half duplex.

You won't get 40MB/sec of user data over that, even if the USB root hub is not driving anything else.

There is USB overhead, TCP overhead, half duplex ... so you lose over 10% of the theoretical  440Mbit/sec that USB2 provides.

A 33MHz PCI bus won't quite do 1Gbit/sec either.

----------

## bbgermany

Can you post the output of "lspci -v" and maybe the output of dmesg?

greets, bb

----------

## Vrenn

I now hat time to test:

(rarely used pastebin so put all test in one text file and marked them with original filenames where protocol started, and yes, please look at lsCPi..., files are wrong named by me...)

https://pastebin.com/HGAkXbmh

1. I recorded dmesg and lspci of the buildin nforce-nic showing up (sometimes) with 1GB: Search for dmesg_only_nforceNIC.txt lscpi_only_nforceNIC.txt

2. I recorded dmesg and lspci of the buildin nforce-nic after a cold stard, seems to always be at 100Mbit: Search for dmesg_only_nforceNIC_coldstart.txt lscpi_only_nforceNIC_coldstart.txt

3. Applied the 1GB D-Link card to only free PCI slot.

4. I recorded dmesg of the 1Gbit DGE-528T D-Link card, not appearing: dmesg_DGE-528T_1GB_asETH1_firsttry.txt

5. Removed the 1GB D-Link card from the only free PCI slot for the other card.

6. I remembered forgetting lspci, ramming it back in its slot, notice that eth1 comeing up with the r8169 driver and in 1GB mode: dmesg_DGE-528T_1GB_asETH1_secondtry.txt lscpi_DGE-528T_1GB_asETH1_secondtry.txt

No call me getting insane, I would believe you.

I now think its a hardware-problem with the nforce NIC, not knowing anything about it except its behaving bad (Speed/instable).

The two other NICs, at least the D-Link is now showing up after being rammed in the dam slot at about 5 times. Might the time of some years not using the slot may lead to connection-problems insulting the kernel-drivers in some way?

It works today and I'll look at it the next days. I copied several GB-big files, no disconnet and coming always up with 1GB mode.

(ps: I controlled the right fit of the PCI-cards each time in good light before powering up, its frustrating somehow)

The machine was rockstable for so many years (with gentoo) but nvidia/kde/nouveau-fight and now the NICs are forcing their tribute.

Anyway I am learning from you, thanks for that.

----------

## Vrenn

I now tested the "new" card for one week. Seems I have to blame the old PCI-slot that it didn't work in the first tries.

No Idea why the nforce-NIC doesnt use 1GB-mobe at cold startup and is unstable at replugging.

The 1GB D-Link card now works. Sometimes the speed goes down even to 7 GB after some minutes, but NIC-mode still stays in 1GBmode.

This, so seems to be a different thing, but at least it stays stable.

Thank you for your help.

----------

