# Z690 Motherboard Ethernet Slow/Slugish

## jagdpanther

I am building a new Gentoo box (Intel Z690 chipset on MB)  and the ethernet port  (Intel) on the motherboard is slow.  I have this issue both when booting from  the Gentoo minimal install CDROM (iso) and booting from the kernel that I compiled.  There are no  network errors in /var/log/messages.   I have this issue when the ethernet connection is plugged into a 1Gs  switch (Netgear GS-108E) and when directly connected to another Gentoo box at 1Gbs.   Below is the output from a few network tools that tell me that the connection is 1Gb/s but I am getting about 3 to 5 MB/s  (50 Mb/s).  Also when in a VI session (via ssh) there is occasional half-second lag.  mii-tool does not seem to work against this network device.

```
 # dmesg | grep -i duplex

[   10.670264] igc 0000:07:00.0 enp7s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

[ 1271.286635] igc 0000:07:00.0 enp7s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

[ 1346.336630] igc 0000:07:00.0 enp7s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

# ethtool enp7s0

Settings for enp7s0:

        Supported ports: [  ]

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

                                100baseT/Half 100baseT/Full

                                1000baseT/Full

                                2500baseT/Full

        Supported pause frame use: Symmetric

        Supports auto-negotiation: Yes

        Supported FEC modes: Not reported

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

                                100baseT/Half 100baseT/Full

                                1000baseT/Full

                                2500baseT/Full

        Advertised pause frame use: Symmetric

        Advertised auto-negotiation: Yes

        Advertised FEC modes: Not reported

        Speed: 1000Mb/s

        Duplex: Full

        Auto-negotiation: on

        Port: Twisted Pair

        PHYAD: 0

        Transceiver: internal

        MDI-X: off (auto)

        Supports Wake-on: pumbg

        Wake-on: g

        Current message level: 0x00000007 (7)

                               drv probe link

        Link detected: yes

# mii-tool enp7s0

SIOCGMIIPHY on 'enp7s0' failed: Operation not supported

# ip link

...

2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
```

The motherboard is an Asus ROG Strix Z690-E

Any suggestions on a sluggish network connection?Last edited by jagdpanther on Sat Apr 16, 2022 10:14 pm; edited 1 time in total

----------

## Anon-E-moose

Is it a module or built-in?

----------

## mike155

Any errors or suspicious messages in 'dmesg'? Missing firmware?

----------

## jagdpanther

 *Quote:*   

> Any errors or suspicious messages in 'dmesg'? Missing firmware?

 

None.    I  also 'dmesg | grep -i firm'  and received nothing.

 *Quote:*   

> Is it a module or built-in?

 

The ethernet driver is igc and it is a module.  (I don't need it at boot time so set it as a module.)

----------

## NeddySeagoon

jagdpanther,

What is the Vendor and Device ID of your chipset?

Some early Intel 2.5G NICs were buggy and had firmware patches.

They worked without the firmware.but not very well.

Try the newest testing gentoo-sources, if you are not using that already. 

If you are on the newest testing gentoo-sources, try the current stable.

----------

## Anon-E-moose

Since you're using igc as a module, it does have a debug parm, you could pass it, to see what's going on.

and without a doubt, check on any firmware/bios updates.

( Version 1403 -- 2022/04/01 )

Which kernel version are you on?

And if you've got aspm set on (config) you might set it off (kernel cmd line option) to see if it makes a diff.

----------

## jagdpanther

Thanks Anon-E-moose and NeddySeagoon  for the replies.

 *Quote:*   

> What is the Vendor and Device ID of your chipset?
> 
> Some early Intel 2.5G NICs were buggy and had firmware patches. 

 

The MB is as Asus ROG Strix Z690-E    I have the latest BIOS (as of two days ago when I checked):  1403

 *Quote:*   

> Try the newest testing gentoo-sources, if you are not using that already.
> 
> If you are on the newest testing gentoo-sources, try the current stable.

 

My current OS is 5.16.18-gentoo-r1.   I need to  recompile  the kernel anyway as I can't successfully emerge nvidia-drivers or virtualbox-modules.  (Probably because my current kernel was compiled in the chroot environment of the gentoo minimal install CD and something in gcc  which was re-emerged in my final envrionment,  is not matching to the kernel.)  I think I will try upgrading to 5.16.19-gentoo   and then 5.17.2 if 5.16.19 doesn't work.   (I am always a little behind on the latest gentoo kernel because I want both nvidia and virtual box to work on my mostly "stable" (ie. not ~amd64) system.)

 *Quote:*   

> Since you're using igc as a module, it does have a debug parm, you could pass it, to see what's going on. 

 

I did not know about that debug option.  I'll try it.    

Is there any chance that compiling the igc in the kernel rather than as a kernel module would help?

 *Quote:*   

> And if you've got aspm set on (config) you might set it off (kernel cmd line option) to see if it makes a diff.

 

So I searched for ASPM in /proc/config.gz  on the new system and get:

```
CONFIG_PCIEASPM=y

CONFIG_PCIEASPM_DEFAULT=y

# CONFIG_PCIEASPM_POWERSAVE is not set

# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set

# CONFIG_PCIEASPM_PERFORMANCE is not set
```

Is that what you are talking about?  (I haven't looked at kernel power management in many years.)

----------

## NeddySeagoon

jagdpanther,

The Vendor and Device IDs please. 

```
lspci -nnk
```

OK, I know the Vendor ID is 8086 for Intel but the exact device matters too.

You may have the latest BIOS but it may not include the latest firmware fixes.

----------

## jagdpanther

Here is the Ethernet section from "lspci -nnk"

```
07:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3] (rev 03)

        Subsystem: ASUSTeK Computer Inc. Ethernet Controller I225-V [1043:87d2]

        Kernel driver in use: igc

        Kernel modules: igc
```

----------

## Anon-E-moose

 *jagdpanther wrote:*   

> 
> 
>  *Quote:*   Since you're using igc as a module, it does have a debug parm, you could pass it, to see what's going on.  
> 
> I did not know about that debug option.  I'll try it.    
> ...

 

Yes

```
pcie_aspm=  [PCIE] Forcibly enable or disable PCIe Active State Power Management.

        off      Disable ASPM.

        force   Enable ASPM even on devices that claim not to support it.

        WARNING: Forcing ASPM on may cause system lockups.
```

the igc module only offers one option

MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");

As far as compiling in vs module, I've had better luck with modules, other than filesystems, and a few odds and ends everything else is a module.

Edit to add: are there any options in the bios for controlling ethernet? 

Most mb's only let you turn on/off rom, etc, not much else, but that's a newer product, so who knows.

----------

## NeddySeagoon

jagdpanther,

There is good news and bad news.

Your 8086:15f3 does require firmware. If you buy a plug in card, it can be updated, like your motherboard BIOS.

If its not a plug in card, the firmware will be included in the motherboard BIOS chip, so you cannot update it without doing the entire BIOS.

Startpage.com shows that the chip and firmware is a world of pain. 

There is two things to try. Different motherboard BIOS versions. That's very much a last resort unless it's an update.

Different kernel versions. Even though the driver does not ask for firmware, it can be provided in the driver.

The firmware is unlikely to be run from the FLASH memory as its far too slow.

I've not looked at the igc code to see if it does this or not.

----------

## jagdpanther

 *Quote:*   

> If its not a plug in card, the firmware will be included in the motherboard BIOS chip, so you cannot update it without doing the entire BIOS

 

Well that intel ethernet port is the one supplied on the motherboard and I am already using the latest motherboard BIOS.    So if upgrading to the Gentoo linux 5.17.x series of kernels doesn't work and if the other suggestions  in this  thread don't work , perhaps I'll purchase a 1Gb PCIe network card and "fix" the problem by avoiding it.      Any suggestions for a PCIe network card?

I still need to try turning off ASPM and asking the network module to send debugging info.

The issue still may be a configuration issue.  At https://www.phoronix.com there were some Linux performance reviews using the same motherboard and CPU that I am using without any comment on sluggish network issues.

----------

## jagdpanther

A slightly newer kernel, 5.16.19-gentoo, did not help.  Also turning off ASPM did not affect the network connection.

I tried turning on the network module debug feature but have no idea where the output goes.  (Nothing extra in /var/log/messages.)

----------

## NeddySeagoon

jagdpanther,

How did you turn on debugging?

Is the driver built in or a loadable module?

----------

## jagdpanther

I tried the following with different values from 0 to 16:

```
modprobe igc debug=10
```

Did I need to "modprobe -r igc" first?

----------

## Anon-E-moose

options typically go in a file in /etc/modprobe.d

I have a file /etc/modprobe.d/options that has options for various things, for you I would think

```
options igc debug=16
```

or whatever # you wish, then normal load.

Note: options from file take effect when module is loaded.

----------

## jagdpanther

AAnon-E-moose:  after adding the "options" file as described in you post, I "modprobe -r igc" then "modprobe igc".  The following appeared in /var/log/messages and nothing else.

```
Apr 10 15:39:13 ner-public kernel: Intel(R) 2.5G Ethernet Linux Driver

Apr 10 15:39:13 ner-public kernel: Copyright(c) 2018 Intel Corporation.

Apr 10 15:39:13 ner-public kernel: igc 0000:07:00.0: PCIe PTM not supported by PCIe bus/controller

Apr 10 15:39:13 ner-public kernel: pps pps0: new PPS source ptp0

Apr 10 15:39:13 ner-public kernel: igc 0000:07:00.0 (unnamed net_device) (uninitialized): PHC added

Apr 10 15:39:13 ner-public kernel: igc 0000:07:00.0: 4.000 Gb/s available PCIe bandwidth (5.0 GT/s PCIe x1 link)

Apr 10 15:39:13 ner-public kernel: igc 0000:07:00.0 eth0: MAC: 50:eb:xx:xx:xx:xx

Apr 10 15:39:13 ner-public kernel: igc 0000:07:00.0 enp7s0: renamed from eth0

Apr 10 15:39:13 ner-public /etc/init.d/net.enp7s0[28417]: net.enp7s0: not allowed to be hotplugged

Apr 10 15:40:01 ner-public CROND[28427]: (root) CMD (/usr/lib/sa/sa1 1 1)

Apr 10 15:40:01 ner-public CROND[28426]: (root) CMDEND (/usr/lib/sa/sa1 1 1)

Apr 10 15:40:19 ner-public kernel: igc 0000:07:00.0 enp7s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
```

----------

## Anon-E-moose

https://www.intel.com/content/www/us/en/support/articles/000057261/ethernet-products/gigabit-ethernet-controllers-up-to-2-5gbe.html

*hmm* something to think about.

Also, I assume your network is standard 1Gig, it might be necessary to set the ethernet speed, etc manually rather than letting it auto-detect.

Might be a problem thinking the network will run at 2.5G instead of just 1G. There are some reports, google "intel i225 slow speed"

----------

## jagdpanther

Anon-E-moose,   thanks for finding that link.

Yes my local network is a standard 1G.   I tried connecting to two different devices:  I receive the same result.

I'll try the manual speed set instead of auto-detect even though ethtool shows auto-detect selected the right speed:  " Speed: 1000Mb/s"

Something like the following may also work:

https://www.amazon.com/Intel-Gigabit-Network-Adapter-EXPI9301CTBLK/dp/B001CY0P7G/ref=sr_1_3

----------

## Anon-E-moose

Interesting chit-chat here  https://community.intel.com/t5/Ethernet-Products/Intel-i225V-Onboard-Z490-Slow-download-speeds/td-p/1188301

Edit to add: what cat version are the cables you use to connect to the switch/router?

ETA2: All revs of the chipset seem to have some type problem, couple of settings to try from the link, but you might just pick up either a cheap pci card or a usb3 adapter (gig speeds).

----------

## jagdpanther

 *Quote:*   

> what cat version are the cables you use to connect to the switch/router? 

 

I tired both a cat-5E and cat-6 patch cables.

I am ordering this today:  https://www.amazon.com/dp/B09D3JL14S

(It should use the same driver.)

----------

## Anon-E-moose

 *jagdpanther wrote:*   

>  *Quote:*   what cat version are the cables you use to connect to the switch/router?  
> 
> I tired both a cat-5E and cat-6 patch cables.
> 
> I am ordering this today:  https://www.amazon.com/dp/B09D3JL14S
> ...

 

Some reports of needing to use cat 6a from the intel port to the switch/router to get good speed but who knows.

It's sad that this is the 3rd rev of the chipset and they still have problems with it, according to google.

As far as the card, it looks good, it's a discrete card version of what's on my mb. Shouldn't have any problems with it.

The driver will be igb not igc.

----------

## jagdpanther

Received and installed the discrete network card.  Compiled igb kernel module.

Both ethernet ports the pcie network card work.   However, connection still slow:

Big local rsync transfer on 1Gb (1 gigabit per second) local  network.

nethogs  shows transfer between 3 and 15 MBs.  (mega bytes per second)

I did notice that this transfer rate increased to just about 30 MBs when I am compiling (emerge update ...)

So I am wondering if this is a  clocksource issue.  Years ago I had a sluggish system and solved the issue by switching the clocksource to hpet.   I would try that but  according to /sys/devices/system/clocksource/clocksource0/available_clocksource my only choices are:

```
tsc   acpi_pm
```

and I am using tsc.  Also dmesg states:

```
[    0.144641] hpet: HPET dysfunctional in PC10. Force disabled.
```

I may try acpi_pm.   -->  Guess this is not a clocksource issue:  switching to cloclsource=acpi_pm had no effect on network speed.

I do not know if this new system is "sluggish" yet, as I am still configuring it via ssh and have not yet tried running Xwindows on it.

Any additional suggestions about the slow network?

----------

## Anon-E-moose

CONFIG_HPET_TIMER=y

CONFIG_HPET_EMULATE_RTC=y

CONFIG_HPET=y

CONFIG_HPET_MMAP=y

CONFIG_HPET_MMAP_DEFAULT=y

```
$ cat available_clocksource 

tsc hpet acpi_pm 

$ cat current_clocksource 

tsc
```

Not sure what sets tsc vs hpet, I see hpet in early dmesg, but nothing about changing 

```
 $ grep -i tsc /var/log/dmesg 

[    0.000000] tsc: Fast TSC calibration using PIT

[    0.000000] tsc: Detected 3599.951 MHz processor

[    0.179457] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x33e424f6ff2, max_idle_ns: 440795223189 ns

[    0.540489] clocksource: Switched to clocksource tsc-early

[    1.612470] tsc: Refined TSC clocksource calibration: 3599.999 MHz

[    1.612478] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x33e4525366a, max_idle_ns: 440795257657 ns

[    1.612514] clocksource: Switched to clocksource tsc
```

```
$ grep -i hpet /var/log/dmesg 

[    0.002244] ACPI: HPET 0x00000000CA2F4000 000038 (v01 ALASKA A M I    01072009 AMI  00000005)

[    0.002280] ACPI: Reserving HPET table memory at [mem 0xca2f4000-0xca2f4037]

[    0.075423] ACPI: HPET id: 0x10228201 base: 0xfed00000

[    0.173439] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484873504 ns

[    0.538025] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0

[    0.538029] hpet0: 3 comparators, 32-bit 14.318180 MHz counter

[    0.569688] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
```

I do like to have things set this way

```
$ grep "^[^#].*HZ" .config

CONFIG_NO_HZ_COMMON=y

CONFIG_NO_HZ_IDLE=y

CONFIG_NO_HZ=y

CONFIG_HZ_1000=y

CONFIG_HZ=1000
```

Could be your schedulers?

----------

## jagdpanther

Anon-E-moose, thanks for the reply.

My "*HZ" entries in /usr/src/linux/.config  are  identical to yours.  I added "Y" to CONFIG_HPET in the kernel configuration (make menuconfig), recompiled the kernel and modules then rebooted.     Now for HPET I get:

```
/proc # gunzip -c config.gz | grep HPET

CONFIG_HPET_TIMER=y

CONFIG_HPET_EMULATE_RTC=y

CONFIG_HPET=y

CONFIG_HPET_MMAP=y

CONFIG_HPET_MMAP_DEFAULT=y
```

But I still get

```
 /sys/devices/system/clocksource/clocksource0 # cat available_clocksource 

tsc acpi_pm 
```

I think the issue with hpet  (which probably has nothing to do with my network issue, it was just a shot in the dark)  is the following in dmesg:

```
[ [    0.144633] hpet: HPET dysfunctional in PC10. Force disabled.
```

I think this message is explained by:

https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.15-rc5-x86

and

https://lkml.org/lkml/2021/10/11/608

----------

## Anon-E-moose

From the lkml response, it seems hpet is not needed on the latest intel chips.

When the network gets slow, are there any excessive dropped packets, errors, etc?

----------

## jagdpanther

 *Quote:*   

> When the network gets slow, are there any excessive dropped packets, errors, etc?

 

From ifconfig  a few min. after a reboot. (I use ip for network management but like the output from ifconfig better.)

```
enp3s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

   ...

        RX packets 1019715  bytes 1503830426 (1.4 GiB)

        RX errors 0  dropped 2097  overruns 0  frame 0

        TX packets 283254  bytes 20853566 (19.8 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
```

There seems to be a few dropped packets, but nothing excessive.

----------

## Anon-E-moose

When the network gets slow, is this during a large file transfer, ie writing to disk? 

if disk, is it a real disk or ram.

----------

## jagdpanther

 *Quote:*   

> 
> 
> PostPosted: Sat Apr 23, 2022 1:39 pm    Post subject:
> 
> When the network gets slow, is this during a large file transfer, ie writing to disk?
> ...

 

I have seen the slow network when writing (via rsync jobs) to the three different drives on the system (spinning hdd, ssd and NVMe drive).   The network is sluggish sometimes when VI is open via ssh (local 1Gb network.) and there is no other network activity:  when I start typing in the VI session.   (In this case there is an ocassional  pause (almost a second)   (I experienced a similar  issue on an older Gentoo system and changed the clocktype to HPET which on that older system fixed the sluggish network  issue.)

----------

## Anon-E-moose

A couple of sites to look at

https://www.thegeekdiary.com/troubleshooting-slow-network-communication-or-connection-timeouts-in-linux/

http://www.justthink.it/articles/troubleshoot-slow-network-linux/

I would imagine some settings need to be adjusted, that's where the hints from above might come in handy.

----------

