evaluating xhci usb controller performance

Everything about latency. This section is mainly user/consumer discussion. (Peer-reviewed scientific discussion should go in Laboratory section). Tips, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
User avatar
kyube
Posts: 524
Joined: 29 Jan 2018, 12:03

Re: evaluating xhci usb controller performance

Post by kyube » 23 Sep 2023, 14:46

Slender wrote:
23 Sep 2023, 13:20
thanks for this thread!
im test some controllers (and im order pci 1x asm controller).
Im write my conclusions about it:

1) MCS9990 - usb 2.0 controller with 4 usb 1.1 hubs, and 4 usb 2.0 hubs. This controller use old line-based interrupts and it good to use with mouse only. DPC / ISR is worse then default intel / amd usb, but moustester stability is same.
Im prefer use that controller only for usb 1.1 mouse (1000hz), because i have instant dpc / isr spikes with usb 2.0 mode (idk, maybe it only with my msi z790). For simple is good controller for old motherboards like z390/z490. It work good with my old asus z690, but worse with my new msi z790. Bad for sound (a lot of dpc / isr).

2) NEC v1/v2 -
nec v1 is good for mouse, but you have 996hz-1004hz jitter on mouse (default wdf), and 1000-500-1000-500 drops with renesans driver.
(500hz work perfect with driver), 495-505 with def wdf.
nec v2 - bad for mouse (high jitter), 970-1030, same with driver. This controller is good for audio devices, but intel controller have little less dpc vs nec (v1/v2). Basically use MSI-X and work on all cores on your pc (you can use interrupt affinity to lock driver to 1 core).

3) VIA - this is like nec, but for my test it have jitter 1000-500-1000-500 (with / without driver)
maybe good for audio, but im dont test it.

Best way for now - use Internal GL usb 2.0 chip for mouse and use usb intel chipset for audio / keyboard.

im review asm soon.

I also want to say that there are usb controllers that connect via the m2 line, in theory you can use this on intel motherboards instead of nvme (to bypass the chipset), but all I found was VIA and NEC v2, which do not work well with the mouse. We need a usb m2 controller on an ASM chip, but I can't find it.
I'm assuming with NEC v1, you mean the uPD720200F?
That would align with my experiences with the uPD720202 (which is considered gen 2, along with the uPD720201 and they both use the same driver)

Interesting, so it behaves the same as gen2 in terms of IMOD on the Renesas drivers. I liked the Renesas controller for audio & keyboard devices, that's where they excel imo.

Thank you for contributing to the collection!

Hopefully, someone with the mentioned chipsets in OP will chime in on his experiences.

kamilff32
Posts: 10
Joined: 24 Jan 2024, 11:23

Re: evaluating xhci usb controller performance

Post by kamilff32 » 08 Feb 2024, 11:17

kyube wrote:
20 Sep 2023, 13:35
Main goal of this thread is to evaluate polling stability, DPC/interrupt latency and interrupt count of modern USB controllers.
I'll list my previous findings from a different thread first

Today, we're tackling the ASM3142.


Card name: On-board XHCI USB controller on Z690 Dark
System: Win10 Server 2022 (debloated)
Drivers: Tested Microsoft stock drivers & ASMedia
Driver has been manually installed through devmgmt, as per Winraid guide.
I have not messed with IMOD during the testing in this instance.
The ASMedia drivers have MSI-X capabilities.
hey, i installed drivers from winraid, but its not even close as good as yours.
I have win11 debloated.
Can win11 be the reason why its so bad?
b450 tomahawk
amd 5 5600x
Attachments
asmedia.png
asmedia.png (132.96 KiB) Viewed 4996 times

User avatar
kyube
Posts: 524
Joined: 29 Jan 2018, 12:03

Re: evaluating xhci usb controller performance

Post by kyube » 08 Feb 2024, 18:21

kamilff32 wrote:
08 Feb 2024, 11:17
hey, i installed drivers from winraid, but its not even close as good as yours.
I have win11 debloated.
Can win11 be the reason why its so bad?
b450 tomahawk
amd 5 5600x
A ton of things affect polling stability, such as PC stability (stability of CPU, GPU, RAM OC), Windows bloat (background services can affect mousetester graphs, as well as not putting things on the proper core and leaving everything on core 0 etc.), proper USB port choice (not all ports behave the same, usually CPU-routed ports are preferred on Ryzen), electricity quality (EMI can affect graphs), drivers & their DPC latency (tackled in this topic), mouse itself.
It's hard to pinpoint what exactly can be the issue without further, deeper evaluation.
I wouldn't put much weight on MouseTester graphs either, as it's not a absolute measurement of performance.

Ferr0
Posts: 31
Joined: 26 Jan 2021, 10:40

Re: evaluating xhci usb controller performance

Post by Ferr0 » 18 Feb 2024, 03:16

Have you done any testing with PCIE cards that use a sata adapter for extra power? Wondering how much it would improve/harm performance if at all to have it plugged in vs not plugged in.

1000WATT
Posts: 557
Joined: 22 Jul 2018, 05:44

Re: evaluating xhci usb controller performance

Post by 1000WATT » 21 Feb 2025, 01:55

kyube wrote: This is a old bug with the V8K that Razer knows about but hasn't fixed, as far as I know.
I have my right side buttons bound to polling rate changes (1k, 2k, 4k, 8k) and that's how I get around it.
I wanted to change the DPI button into that, but I haven't bothered with trying it out.
thx :)

z370 asm3142

finalmouse 1khz

Intel(R) USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
USBXHCI.SYS (Version: 10.0.22621.3672 Date: 2024-08-30)
DPC Info
Total = 10127 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 0, or 0.00%
Elapsed Time, > 1 usecs AND <= 2 usecs, 0, or 0.00%
Elapsed Time, > 2 usecs AND <= 4 usecs, 9029, or 89.16%
Elapsed Time, > 4 usecs AND <= 8 usecs, 1073, or 10.60%
Elapsed Time, > 8 usecs AND <= 16 usecs, 25, or 0.25%
Total, 10127

Interrupt Info
Total = 10127 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 10117, or 99.90%
Elapsed Time, > 1 usecs AND <= 2 usecs, 8, or 0.08%
Elapsed Time, > 2 usecs AND <= 4 usecs, 2, or 0.02%
Total, 10127
--------------------------------------------------------------------------------------
ASMedia USB 3.1 eXtensible Host Controller - 1.10 (Microsoft)
USBXHCI.SYS (Version: 10.0.22621.3672 Date: 2024-08-30)
DPC Info
Total = 10080 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 0, or 0.00%
Elapsed Time, > 1 usecs AND <= 2 usecs, 0, or 0.00%
Elapsed Time, > 2 usecs AND <= 4 usecs, 9241, or 91.68%
Elapsed Time, > 4 usecs AND <= 8 usecs, 815, or 8.09%
Elapsed Time, > 8 usecs AND <= 16 usecs, 23, or 0.23%
Elapsed Time, > 16 usecs AND <= 32 usecs, 1, or 0.01%
Total, 10080

Interrupt Info
Total = 10080 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 10070, or 99.90%
Elapsed Time, > 1 usecs AND <= 2 usecs, 8, or 0.08%
Elapsed Time, > 2 usecs AND <= 4 usecs, 2, or 0.02%
Total, 10080
--------------------------------------------------------------------------------------
ASMedia USB3.1 eXtensible Host Controller
asmtxhci.sys (Version: 1.16.61.1 Date: 2020-05-29)
DPC Info
Total = 10070 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 10062, or 99.92%
Elapsed Time, > 1 usecs AND <= 2 usecs, 8, or 0.08%
Total, 10070

Interrupt Info
Total = 10070 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 10060, or 99.90%
Elapsed Time, > 1 usecs AND <= 2 usecs, 7, or 0.07%
Elapsed Time, > 2 usecs AND <= 4 usecs, 3, or 0.03%
Total, 10070
--------------------------------------------------------------------------------------

V8K 4khz

Intel(R) USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
USBXHCI.SYS (Version: 10.0.22621.3672 Date: 2024-08-30)
DPC Info
Total = 40310 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 0, or 0.00%
Elapsed Time, > 1 usecs AND <= 2 usecs, 0, or 0.00%
Elapsed Time, > 2 usecs AND <= 4 usecs, 33127, or 82.18%
Elapsed Time, > 4 usecs AND <= 8 usecs, 6733, or 16.70%
Elapsed Time, > 8 usecs AND <= 16 usecs, 446, or 1.11%
Elapsed Time, > 16 usecs AND <= 32 usecs, 1, or 0.00%
Elapsed Time, > 32 usecs AND <= 64 usecs, 3, or 0.01%
Total, 40310

Interrupt Info
Total = 40310 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 40278, or 99.92%
Elapsed Time, > 1 usecs AND <= 2 usecs, 26, or 0.06%
Elapsed Time, > 2 usecs AND <= 4 usecs, 5, or 0.01%
Elapsed Time, > 4 usecs AND <= 8 usecs, 1, or 0.00%
Total, 40310
--------------------------------------------------------------------------------------
ASMedia USB 3.1 eXtensible Host Controller - 1.10 (Microsoft)
USBXHCI.SYS (Version: 10.0.22621.3672 Date: 2024-08-30)
DPC Info
Total = 40394 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 0, or 0.00%
Elapsed Time, > 1 usecs AND <= 2 usecs, 0, or 0.00%
Elapsed Time, > 2 usecs AND <= 4 usecs, 31193, or 77.22%
Elapsed Time, > 4 usecs AND <= 8 usecs, 8522, or 21.10%
Elapsed Time, > 8 usecs AND <= 16 usecs, 661, or 1.64%
Elapsed Time, > 16 usecs AND <= 32 usecs, 5, or 0.01%
Elapsed Time, > 32 usecs AND <= 64 usecs, 12, or 0.03%
Elapsed Time, > 64 usecs AND <= 128 usecs, 1, or 0.00%
Total, 40394

Interrupt Info
Total = 40394 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 40362, or 99.92%
Elapsed Time, > 1 usecs AND <= 2 usecs, 27, or 0.07%
Elapsed Time, > 2 usecs AND <= 4 usecs, 4, or 0.01%
Elapsed Time, > 4 usecs AND <= 8 usecs, 0, or 0.00%
Elapsed Time, > 8 usecs AND <= 16 usecs, 1, or 0.00%
Total, 40394
--------------------------------------------------------------------------------------
ASMedia USB3.1 eXtensible Host Controller
asmtxhci.sys (Version: 1.16.61.1 Date: 2020-05-29)
DPC Info
Total = 40527 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 40493, or 99.92%
Elapsed Time, > 1 usecs AND <= 2 usecs, 18, or 0.04%
Elapsed Time, > 2 usecs AND <= 4 usecs, 16, or 0.04%
Total, 40527

Interrupt Info
Total = 40527 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 40497, or 99.93%
Elapsed Time, > 1 usecs AND <= 2 usecs, 21, or 0.05%
Elapsed Time, > 2 usecs AND <= 4 usecs, 8, or 0.02%
Elapsed Time, > 4 usecs AND <= 8 usecs, 1, or 0.00%
Total, 40527
--------------------------------------------------------------------------------------

V8K 8khz

Intel(R) USB 3.0 eXtensible Host Controller - 1.0 (Microsoft)
USBXHCI.SYS (Version: 10.0.22621.3672 Date: 2024-08-30)
DPC Info
Total = 66937 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 0, or 0.00%
Elapsed Time, > 1 usecs AND <= 2 usecs, 0, or 0.00%
Elapsed Time, > 2 usecs AND <= 4 usecs, 55671, or 83.17%
Elapsed Time, > 4 usecs AND <= 8 usecs, 10918, or 16.31%
Elapsed Time, > 8 usecs AND <= 16 usecs, 341, or 0.51%
Elapsed Time, > 16 usecs AND <= 32 usecs, 2, or 0.00%
Elapsed Time, > 32 usecs AND <= 64 usecs, 4, or 0.01%
Elapsed Time, > 64 usecs AND <= 128 usecs, 1, or 0.00%
Total, 66937

Interrupt Info
Total = 66937 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 66902, or 99.95%
Elapsed Time, > 1 usecs AND <= 2 usecs, 33, or 0.05%
Elapsed Time, > 2 usecs AND <= 4 usecs, 1, or 0.00%
Elapsed Time, > 4 usecs AND <= 8 usecs, 1, or 0.00%
Total, 66937
--------------------------------------------------------------------------------------
ASMedia USB 3.1 eXtensible Host Controller - 1.10 (Microsoft)
USBXHCI.SYS (Version: 10.0.22621.3672 Date: 2024-08-30)
DPC Info
Total = 66590 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 0, or 0.00%
Elapsed Time, > 1 usecs AND <= 2 usecs, 0, or 0.00%
Elapsed Time, > 2 usecs AND <= 4 usecs, 52790, or 79.28%
Elapsed Time, > 4 usecs AND <= 8 usecs, 12984, or 19.50%
Elapsed Time, > 8 usecs AND <= 16 usecs, 806, or 1.21%
Elapsed Time, > 16 usecs AND <= 32 usecs, 4, or 0.01%
Elapsed Time, > 32 usecs AND <= 64 usecs, 5, or 0.01%
Elapsed Time, > 64 usecs AND <= 128 usecs, 1, or 0.00%
Total, 66590

Interrupt Info
Total = 66590 for module Wdf01000.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 66555, or 99.95%
Elapsed Time, > 1 usecs AND <= 2 usecs, 28, or 0.04%
Elapsed Time, > 2 usecs AND <= 4 usecs, 5, or 0.01%
Elapsed Time, > 4 usecs AND <= 8 usecs, 0, or 0.00%
Elapsed Time, > 8 usecs AND <= 16 usecs, 1, or 0.00%
Elapsed Time, > 16 usecs AND <= 32 usecs, 1, or 0.00%
Total, 66590
--------------------------------------------------------------------------------------
ASMedia USB3.1 eXtensible Host Controller
asmtxhci.sys (Version: 1.16.61.1 Date: 2020-05-29)
DPC Info
Total = 65066 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 65033, or 99.95%
Elapsed Time, > 1 usecs AND <= 2 usecs, 23, or 0.04%
Elapsed Time, > 2 usecs AND <= 4 usecs, 10, or 0.02%
Total, 65066

Interrupt Info
Total = 65066 for module asmtxhci.sys
Elapsed Time, > 0 usecs AND <= 1 usecs, 65032, or 99.95%
Elapsed Time, > 1 usecs AND <= 2 usecs, 29, or 0.04%
Elapsed Time, > 2 usecs AND <= 4 usecs, 4, or 0.01%
Elapsed Time, > 4 usecs AND <= 8 usecs, 1, or 0.00%
Total, 65066
--------------------------------------------------------------------------------------
Last edited by 1000WATT on 21 Feb 2025, 14:25, edited 1 time in total.
I often do not clearly state my thoughts. google translate is far from perfect. And in addition to the translator, I myself am mistaken. Do not take me seriously.

vq35dett
Posts: 4
Joined: 14 Feb 2025, 06:43

Re: evaluating xhci usb controller performance

Post by vq35dett » 21 Feb 2025, 02:51

Does the PCI-e Controller Card issue you mentioned actually make a difference in real life, or is it just based on synthetic tests?

User avatar
kyube
Posts: 524
Joined: 29 Jan 2018, 12:03

Re: evaluating xhci usb controller performance

Post by kyube » 21 Feb 2025, 08:05

vq35dett wrote:
21 Feb 2025, 02:51
Does the PCI-e Controller Card issue you mentioned actually make a difference in real life, or is it just based on synthetic tests?
This isn't a "synthetic test", this was just me moving the mouse and Windows capturing how the driver behaves while doing so without introducing overhead like LatencyMon does.
If you want to be even more direct, one can always run xperf or xtw while in a game of choice.
I haven't done this type of testing extensively yet, as I haven't had the time.
I do think having a 2nd USB controller helps, because of the ability to plug it into the CPU directly (through a free PCIe lane) and the ability to plug in 1 USB device per controller, thus alleviating potential overhead
1000WATT wrote:
21 Feb 2025, 01:55
test data
I assume you've wanted to compare stock MS drivers (Intel in your case), Asmedia (using stock Windows drivers) and Asmedia vendor specific drivers.
Have you spun around your mouse in circles in your testing? Did you have any other device plugged into the controllers?

1000WATT
Posts: 557
Joined: 22 Jul 2018, 05:44

Re: evaluating xhci usb controller performance

Post by 1000WATT » 21 Feb 2025, 13:22

kyube wrote: I assume you've wanted to compare stock MS drivers (Intel in your case), Asmedia (using stock Windows drivers) and Asmedia vendor specific drivers.
That's all correct.
kyube wrote: Have you spun around your mouse in circles in your testing?
Yes, I tried to make them uniform. For 1khz it turned out to be ~10000 interrupts, for 4khz ~40000. But for 8khz it turned out to be ~65000 instead of ~80000. Perhaps the rotation speed was not enough.
kyube wrote: Did you have any other device plugged into the controllers?
2 keyboards, usb hub and usb microphone. Were connected to the intel 3.0 controller.
asm 3.1 one mouse.
I often do not clearly state my thoughts. google translate is far from perfect. And in addition to the translator, I myself am mistaken. Do not take me seriously.

petergase
Posts: 12
Joined: 25 Jul 2021, 09:37

Re: evaluating xhci usb controller performance

Post by petergase » 01 Sep 2025, 12:59

z690 tomahawk 12700k
Renesas uPD720202 is way better than intels xhci, using microsoft default driver
less usb coescalling? feels like rweverything imod

StarTech.com 4 Port USB 3.0 PCIe UASP - SATA / LP4 Power (PEXUSB3S44V)

User avatar
kyube
Posts: 524
Joined: 29 Jan 2018, 12:03

Re: evaluating xhci usb controller performance

Post by kyube » 03 Sep 2025, 18:07

petergase wrote:
01 Sep 2025, 12:59
z690 tomahawk 12700k
Renesas uPD720202 is way better than intels xhci, using microsoft default driver
less usb coescalling? feels like rweverything imod

StarTech.com 4 Port USB 3.0 PCIe UASP - SATA / LP4 Power (PEXUSB3S44V)
It's a bit difficult to give a concrete assessment on the DPC/ISR performance of Renesas drivers vs Intel XHCI ones.
My sample data is small and I've only tested in a very rudimental way (Idle @ desktop, didn't profile entire thread path to calculate total execution time with Microsoft's Media eXperience Analyzer)
I plan on re-doing this data once I finish my AM5 build, with greatly expanded visualization & more explanations.
I doubt this will occur anytime soon tho :p

However, I do think that having a Asmedia-based & Renesas-based USB card can be good to have (not mandatory) in the chase of minimising jitter caused by wasted CPU cycles on DPC/ISR driver execution.

Post Reply