Re: [Ethernet Onboard-vs-USB-vs-PCIe] I finally found the reason behind my input lag after 6 years
Posted: 11 Feb 2024, 05:43
Does the 10GbE nic's, for example the Intel X520 support RSS?kyube wrote: ↑30 Aug 2023, 09:376yToFindTheAnswer wrote: ↑16 Nov 2022, 22:48Yes, yes, yes, totally agree with you here. Found a friend with a msi Z390 having the i219-v chip, so i asked him (without any previous explanation) to unplug his ethernet cable and see if there is a difference in mouse feeling... guess what? Yep he was losing his mind, as i personally felt on my rig, he felt the same on his; huge difference in mouse movements
I bought a bunch of PCie to ethernet card and one USB-C to ethernet here are my findings :
2nd card : chip : Realtek 8111H : Now this one is a very very good surprise, it was super stable and seems like it handles small packets very well making it a superb chip for competitive online gaming. I got 2ms less ping overall on every servers on it was a VERY stable card.
4th is a USB-C to Ethernet : chip : REALTEK 8153 . I don't know what dark magic went into this one but as soon as i started testing my ping was 3ms lower on every server and it never, lowest amounts of jitter in download / uploads between all the cards. Never seen such a stable chip. My download speed was 2mbp/s slower than on the other cards but i will take it everyday for the stability it provides.
Which adapter and which driver did you use with your RTL8153?
I've recently got Lenovo USB Ethernet adapter with the HWID of USB\VID_17EF&PID_7205&REV_3000 on the 10.54.20.608 driver and It's very lackluster in terms of features and speed.
The adapter doesn't even do a gigabit, at least according to waveform's bufferbloat test (I've seen some slight 184mbps upload spikes, perhaps I've got a dud?)
The adapter doesn't seem to support any kind of interrupt moderation settings, let alone adjusting transmit/receive buffers, RSS etc.
If your adapter behaves similar to my experiences, I don't see a reason to recommend it at all.
The 8111H, however, does support interrupt moderation and is ~2015-16 era. I'm assuming it suffers from the RSS table issue the 8125B does.
UPDATE: 02/2024 - Check below for more information
In general, if anyone sees this, I'd recommend the following LAN chips (listed by speeds)
1GbE → Intel I210-T1, Intel I210-AT, I211-AT, I340, I350 (i217, i218, i219 should be fine too, depending on Windows version)
2.5GbE → 8125B (NOTE: don't get the PCIe adapter version of it, only use it if it's on-board.) (2.5GbE Intel can work too, check below)
10GbE → Aquantia AQC107, Intel X520, X540, X550, Intel X710-T2L, Mellanox or Solarflare NICs (such as the SFN8522, with "sub-microsecond TCP and UDP latency", requires Windows Server however or might not work with Windows entirely)
There are a few LGA1700 mobos which feature the Aquantia AQC113CS, no info on it as the date of writing.
Preferably stick to x1 and x4 PCI-E cards, as a x8 add-on card would gimp the GPU lanes.
UPDATE 02/2024: NOT AN ISSUE ANYMORE FOR 2.5GBE REALTEK, FIX FOUND BELOW
A issue this adapter, found by tharos:RSS off, NIC assigned to core1. yet, ndis.sys DPCs stay on core0. only ISRs move to core1.
While RSS on, NIC not assigned will only spread the DPCs over the rssq cores while ISRs stay on core0
in addition RSS on realtek seems fundamentally ducked as it sometimes just breaks with reboot or nic restart
To adjust core affinities & RSS, you do the following: (thanks to Timecard, Amit, JerkoTAi, Duckling, calc and others)UPDATE 02/2024 - Tried 8156b (USB-to-Ethernet adapter) using ASmedia controllerFor the 8125B & 8111H [steps for this are the same except driver] (fixing RSS and core affinities in particular):
Download this driver (for 8125B)
https://www.realtek.com/en/component/zo ... s-software (in particular, the Win10 Auto Installation Program (NDIS)
In windows, it's shown as
Driver Date: 11/21/2023
Driver Version: 10.69.1121.2023
- Change limit from MSIUtil from 1 to 4
- Gointerruptpolicy - set "Realtek PCIe GbE Family Controller" from "IrqAllCloseProcessor" to "IrqPolicySpreadMessagesAcrossAllprocessors" or "irqPolicySpecifiedProcessors"
- RSS on, which you do by going in Control Panel\Network and Internet\Network Connections\ and right-clicking the adapter, pressing Properties => Configure => Advanced and turning on "Receive Side Scaling"
- Queues to 2
- RSSBaseProcessor on 2 in registry (this in particular)
For the i225/i226, look at this
To change affinities and make them stick for other 1GbE Intel NICS (i217. i218, i219 in particular):
- Disable RSS if you're using older nic driver
- Set rssqueue to 1
- Set rssbaseprocessor to whatever core u want
test scenario: bufferbloat test (probably overkill but was easiest to do, yes ik its tcp)UPLOAD
Total = 25970 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 24257, or 93.40%
Elapsed Time, > 1 usecs AND <= 2 usecs, 1666, or 6.42%
Elapsed Time, > 2 usecs AND <= 4 usecs, 26, or 0.10%
Elapsed Time, > 4 usecs AND <= 8 usecs, 7, or 0.03%
Elapsed Time, > 8 usecs AND <= 16 usecs, 12, or 0.05%
Elapsed Time, > 16 usecs AND <= 32 usecs, 2, or 0.01%
Total, 25970
Total = 199 for module ndis.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 176, or 88.44%
Elapsed Time, > 1 usecs AND <= 2 usecs, 1, or 0.50%
Elapsed Time, > 2 usecs AND <= 4 usecs, 6, or 3.02%
Elapsed Time, > 4 usecs AND <= 8 usecs, 0, or 0.00%
Elapsed Time, > 8 usecs AND <= 16 usecs, 0, or 0.00%
Elapsed Time, > 16 usecs AND <= 32 usecs, 5, or 2.51%
Elapsed Time, > 32 usecs AND <= 64 usecs, 8, or 4.02%
Elapsed Time, > 64 usecs AND <= 128 usecs, 3, or 1.51%
Total, 199
ISR
Total = 25970 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 25887, or 99.68%
Elapsed Time, > 1 usecs AND <= 2 usecs, 59, or 0.23%
Elapsed Time, > 2 usecs AND <= 4 usecs, 13, or 0.05%
Elapsed Time, > 4 usecs AND <= 8 usecs, 10, or 0.04%
Elapsed Time, > 8 usecs AND <= 16 usecs, 1, or 0.00%
Total, 25970
DPC
Total = 1 for module asmthub3.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 0, or 0.00%
Elapsed Time, > 1 usecs AND <= 2 usecs, 1, or 100.00%
Total, 1DOWNLOAD
DPC
Total = 57961 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 57570, or 99.33%
Elapsed Time, > 1 usecs AND <= 2 usecs, 328, or 0.57%
Elapsed Time, > 2 usecs AND <= 4 usecs, 29, or 0.05%
Elapsed Time, > 4 usecs AND <= 8 usecs, 11, or 0.02%
Elapsed Time, > 8 usecs AND <= 16 usecs, 16, or 0.03%
Elapsed Time, > 16 usecs AND <= 32 usecs, 6, or 0.01%
Elapsed Time, > 32 usecs AND <= 64 usecs, 1, or 0.00%
Total, 57961
Total = 27 for module ndis.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 9, or 33.33%
Elapsed Time, > 1 usecs AND <= 2 usecs, 0, or 0.00%
Elapsed Time, > 2 usecs AND <= 4 usecs, 6, or 22.22%
Elapsed Time, > 4 usecs AND <= 8 usecs, 0, or 0.00%
Elapsed Time, > 8 usecs AND <= 16 usecs, 7, or 25.93%
Elapsed Time, > 16 usecs AND <= 32 usecs, 5, or 18.52%
Total,
ISR
Total = 57961 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 57883, or 99.87%
Elapsed Time, > 1 usecs AND <= 2 usecs, 44, or 0.08%
Elapsed Time, > 2 usecs AND <= 4 usecs, 17, or 0.03%
Elapsed Time, > 4 usecs AND <= 8 usecs, 17, or 0.03%
Total,