←back to thread

508 points zdw | 1 comments | | HN request time: 0.244s | source
Show context
walrus01 ◴[] No.42743231[source]
On the general topic of USB to 1000BASE-T (and now 2.5 GBaseT) dongles, for people who care about performance, it's good to know about the distinction between those that are USB devices and those that are PCI-Express devices.

Basically, what do you get if you hotplug it into a laptop running a current linux kernel and do "sudo lsusb -v" vs "sudo lspci -v"?

The ones that are native PCIE devices offer much better performance, up to 2.5 GBASET line rate, and will communicate with the host over the implementation of thunderbolt over USB.

The ones that are USB only might work okay, but there's a reason they're cheap.

Of course a cheaper laptop also won't have any implementation of thunderbolt on it, so that's something to consider as well.

replies(5): >>42743476 #>>42743639 #>>42744549 #>>42745212 #>>42748111 #
1. black3r ◴[] No.42748111[source]
there is no PCI-e through USB though, other than Thunderbolt/USB4 or is there?

so if you only have USB ports and care about performance the bigger distinction would be if the USB ethernet device implements CDC-NCM or just CDC-ECM, with the distinction being that CDC-ECM sends the frames to the driver one-by-one and the driver has to acknowledge and process them one-by-one which generates ton of CPU work, while the newer CDC-NCM protocol sends frames in batches...,

on my laptop I can still get full gigabit speeds with a 1Gbit ECM dongle but when I do it uses 100% of one CPU core, while a 1Gbit NCM dongle has negligible CPU usage...