You are not logged in.
Hi folks,
my Thinkpad E14 Gen3 with AMD CPU/GPU is running Arch. Pretty smooth so far, but recently I discovered a poor throughput (appr. 6Mb/s, with an equipment that easily handles 100+Mb/s) while connect via ethernet cable. I read a lot about the particular device and its problems, but the issues are usually related to connection losses. I also tried the r8168 package which didn't bring any improvement.
And then I had a surprising discovery while running a Fedora Live USB stick: files were transferred with 70+Mb/s. Does anyone have an idea what Fedora does different in this regard? Here are the outputs of lspci and sysfstool:
Archlinux:
sysfstool -vm r8169
Module = "r8169"
Attributes:
coresize = "106496"
initsize = "0"
initstate = "live"
refcnt = "0"
srcversion = "B6646A5E8E26A2E24415A39"
taint = ""
uevent = <store method only>
Sections:
.data.once = "0xffffffffc0aa1240"
.data = "0xffffffffc0aa1000"
.exit.text = "0xffffffffc0a996eb"
.gnu.linkonce.this_module= "0xffffffffc0aa1280"
.init.text = "0xffffffffc0aa7000"
.note.Linux = "0xffffffffc0aa0064"
.note.gnu.build-id = "0xffffffffc0aa0040"
.note.gnu.property = "0xffffffffc0aa0010"
.orc_unwind = "0xffffffffc0a9d1a8"
.orc_unwind_ip = "0xffffffffc0a9ed80"
.printk_index = "0xffffffffc0aa11c8"
.retpoline_sites = "0xffffffffc0a9d190"
.rodata = "0xffffffffc0a9a000"
.rodata.str1.1 = "0xffffffffc0a9ca80"
.rodata.str1.8 = "0xffffffffc0a9c740"
.smp_locks = "0xffffffffc0a9d144"
.static_call_sites = "0xffffffffc0aa1243"
.strtab = "0xffffffffc0aab2b8"
.symtab = "0xffffffffc0aa8000"
.text = "0xffffffffc0a8c000"
.text.unlikely = "0xffffffffc0a98bfc"
__bug_table = "0xffffffffc0aa1120"
__mcount_loc = "0xffffffffc0a9c1e8"
#########
lspci -vv
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
Subsystem: Lenovo Device 5097
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 68
IOMMU group: 9
Region 0: I/O ports at 3000 [size=256]
Region 2: Memory at fd504000 (64-bit, non-prefetchable) [size=4K]
Region 4: Memory at fd500000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v2) Endpoint, MSI 01
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 75W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 4096 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+
10BitTagComp- 10BitTagReq- OBFF Via message/WAKE#, ExtFmt- EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
AtomicOpsCtl: ReqEn-
LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
Retimer- 2Retimers- CrosslinkRes: unsupported
Capabilities: [b0] MSI-X: Enable+ Count=4 Masked-
Vector table: BAR=4 offset=00000000
PBA: BAR=4 offset=00000800
Capabilities: [d0] Vital Product Data
pcilib: sysfs_read_vpd: read failed: No such device
Not readable
Capabilities: [100 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [140 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Capabilities: [160 v1] Device Serial Number 01-00-00-00-68-4c-e0-00
Capabilities: [170 v1] Latency Tolerance Reporting
Max snoop latency: 1048576ns
Max no snoop latency: 1048576ns
Capabilities: [178 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=150us PortTPowerOnTime=150us
L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
T_CommonMode=0us LTR1.2_Threshold=294912ns
L1SubCtl2: T_PwrOn=150us
Kernel driver in use: r8169
Kernel modules: r8169
Fedora 36 live
sysfstool -vm r8169
Module = "r8169"
Attributes:
coresize = "106496"
initsize = "0"
initstate = "live"
refcnt = "0"
srcversion = "B6646A5E8E26A2E24415A39"
taint = ""
uevent = <store method only>
Sections:
.data.once = "0xffffffffc0aa1240"
.data = "0xffffffffc0aa1000"
.exit.text = "0xffffffffc0a996eb"
.gnu.linkonce.this_module= "0xffffffffc0aa1280"
.init.text = "0xffffffffc0aa7000"
.note.Linux = "0xffffffffc0aa0064"
.note.gnu.build-id = "0xffffffffc0aa0040"
.note.gnu.property = "0xffffffffc0aa0010"
.orc_unwind = "0xffffffffc0a9d1a8"
.orc_unwind_ip = "0xffffffffc0a9ed80"
.printk_index = "0xffffffffc0aa11c8"
.retpoline_sites = "0xffffffffc0a9d190"
.rodata = "0xffffffffc0a9a000"
.rodata.str1.1 = "0xffffffffc0a9ca80"
.rodata.str1.8 = "0xffffffffc0a9c740"
.smp_locks = "0xffffffffc0a9d144"
.static_call_sites = "0xffffffffc0aa1243"
.strtab = "0xffffffffc0aab2b8"
.symtab = "0xffffffffc0aa8000"
.text = "0xffffffffc0a8c000"
.text.unlikely = "0xffffffffc0a98bfc"
__bug_table = "0xffffffffc0aa1120"
__mcount_loc = "0xffffffffc0a9c1e8"
#########
lspci -vv
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
Subsystem: Lenovo Device 5097
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 68
IOMMU group: 9
Region 0: I/O ports at 3000 [size=256]
Region 2: Memory at fd504000 (64-bit, non-prefetchable) [size=4K]
Region 4: Memory at fd500000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v2) Endpoint, MSI 01
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 75W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 4096 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+
10BitTagComp- 10BitTagReq- OBFF Via message/WAKE#, ExtFmt- EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
AtomicOpsCtl: ReqEn-
LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
Retimer- 2Retimers- CrosslinkRes: unsupported
Capabilities: [b0] MSI-X: Enable+ Count=4 Masked-
Vector table: BAR=4 offset=00000000
PBA: BAR=4 offset=00000800
Capabilities: [d0] Vital Product Data
pcilib: sysfs_read_vpd: read failed: No such device
Not readable
Capabilities: [100 v2] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [140 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Capabilities: [160 v1] Device Serial Number 01-00-00-00-68-4c-e0-00
Capabilities: [170 v1] Latency Tolerance Reporting
Max snoop latency: 1048576ns
Max no snoop latency: 1048576ns
Capabilities: [178 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
PortCommonModeRestoreTime=150us PortTPowerOnTime=150us
L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
T_CommonMode=0us LTR1.2_Threshold=294912ns
L1SubCtl2: T_PwrOn=150us
Kernel driver in use: r8169
Kernel modules: r8169
Last edited by two_penguins (2022-05-18 14:40:14)
Offline
It's not necessarily the kernel module, how exactly are you/did you establish the connection? Check with ethtool whether Duplex is set to half instead of full or similar. Are you using TLP or so that might try to enforce power saving for the device?
Last edited by V1del (2022-05-16 10:42:45)
Offline
The connection is established by NetworkManager.
The output of ethtool is:
Settings for enp2s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
netlink error: Operation not permitted
Link detected: yes
Apparently Full Duplex is on at Gigabit speed.
I also checked TLP which I actually have activated. I disabled it and restarted the machine. Unfortunately there was no improvement with regards to the speed.
Offline
files were transferred
How are files transferred? Samba? If so, try 'cache=none' mount option. If using the same server compare the mount options individually on the clients.
Last edited by Maniaxx (2022-05-16 12:11:04)
sys2064
Offline
To generalize that question: how and against what do you measure the speed?
(Notably whether there's DNS and maybe a browser involved)
=> https://bbs.archlinux.org/viewtopic.php … 6#p2017886
Also
ip a
ip r
find /etc/systemd -type l -exec test -f {} \; -print | awk -F'/' '{ printf ("%-40s | %s\n", $(NF-0), $(NF-1)) }' | sort -f
Offline
Okay, I should have been more precise: the testing is simply done by copying a large file (4Gb) with Nautilus from a Samba share on the local network. I rechecked it with scp and got the same behavior (Arch install: 6,5Mb/s; Fedora Live: 90+Mb/s).
The requested information (samba mount option, ip settings and so on):
Arch installation:
########
mount
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
########
ip a
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 84:a9:38:10:e9:df brd ff:ff:ff:ff:ff:ff
inet 192.168.120.40/24 brd 192.168.120.255 scope global dynamic noprefixroute enp2s0
valid_lft 41652sec preferred_lft 41652sec
inet6 fde7:3823:7471::256/128 scope global dynamic noprefixroute
valid_lft 41651sec preferred_lft 41651sec
inet6 fde7:3823:7471:0:aaad:68b4:f169:df71/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::b9fe:f517:d94f:4414/64 scope link noprefixroute
valid_lft forever preferred_lft forever
########
ip r
0.0.0.0/24 via 192.168.120.2 dev enp2s0 proto static metric 100
default via 192.168.120.2 dev enp2s0 proto dhcp metric 100
192.168.120.0/24 via 192.168.120.2 dev enp2s0 proto static metric 100
192.168.120.0/24 dev enp2s0 proto kernel scope link src 192.168.120.40 metric 100
192.168.120.2 dev enp2s0 proto static scope link metric 100
########
find /etc/systemd -type l -exec test -f {} \; -print | awk -F'/' '{ printf ("%-40s | %s\n", $(NF-0), $(NF-1)) }' | sort -f
apparmor.service | multi-user.target.wants
avahi-daemon.service | multi-user.target.wants
avahi-daemon.socket | sockets.target.wants
cups.path | multi-user.target.wants
cups.service | multi-user.target.wants
cups.service | printer.target.wants
cups.socket | sockets.target.wants
dbus-org.freedesktop.Avahi.service | system
dbus-org.freedesktop.nm-dispatcher.service | system
dbus-org.freedesktop.resolve1.service | system
dbus-org.freedesktop.timesync1.service | system
dirmngr.socket | sockets.target.wants
display-manager.service | system
gcr-ssh-agent.socket | sockets.target.wants
getty@tty1.service | getty.target.wants
gpg-agent-browser.socket | sockets.target.wants
gpg-agent-extra.socket | sockets.target.wants
gpg-agent.socket | sockets.target.wants
gpg-agent-ssh.socket | sockets.target.wants
NetworkManager.service | multi-user.target.wants
NetworkManager-wait-online.service | network-online.target.wants
p11-kit-server.socket | sockets.target.wants
pipewire-media-session.service | pipewire.service.wants
pipewire-session-manager.service | user
pipewire.socket | sockets.target.wants
pulseaudio.socket | sockets.target.wants
remote-fs.target | multi-user.target.wants
systemd-resolved.service | multi-user.target.wants
systemd-timesyncd.service | sysinit.target.wants
winbind.service | multi-user.target.wants
xdg-user-dirs-update.service | default.target.wants
Fedora live
########
mount
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
#########
ip a
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 84:a9:38:10:e9:df brd ff:ff:ff:ff:ff:ff
inet 192.168.120.40/24 brd 192.168.120.255 scope global dynamic noprefixroute enp2s0
valid_lft 43003sec preferred_lft 43003sec
inet6 fde7:3823:7471::eb4/128 scope global dynamic noprefixroute
valid_lft 43005sec preferred_lft 43005sec
inet6 fde7:3823:7471:0:e9cd:6b0b:cdcb:d466/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::ba32:f94a:692d:5a07/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#########
ip r
default via 192.168.120.2 dev enp2s0 proto dhcp metric 100
192.168.120.0/24 dev enp2s0 proto kernel scope link src 192.168.120.40 metric 100
Offline
What does iperf3 say on both OSs regarding the connection speed to the same server?
Are you writing the test data from the very same source to the very same location (An old HDD might have worst R/W performance than a new SSD)?
Inofficial first vice president of the Rust Evangelism Strike Force
Offline
Please try the real Samba stack (mount -t cifs) instead of Nautilus/gvfsd-fuse.
sys2064
Offline
Do you know what causes the more elaborate routing table? Some VPN involved?
Offline
Do you know what causes the more elaborate routing table? Some VPN involved?
Right at the spot! There were two routes in NetworkManager which I set for earlier trials with my router. After I finished I just set the routes to "Dynamic" but didn't delete the two static ones. After doing so the speed was at the same level like Fedora.
Thank you very much!
Offline