I'm working on a minor problem here, and I think having some additional diagnostic info about the USB bandwidth that is available to each port would be highly useful.
I currently have UVCView.x86, but that only reports on USB descriptor information...not bandwidth information.
I'm mostly concerned about getting it via a legit source...
-
-
USB bandwidth available? It's negotiated at run-time along with other devices on the same controller. If you can figure out which ports are connected to which controller (usually all of them on a laptop are on the same controller), then that should have the theoretical maximum bandwidth available.
-
So yeah, I basically want to flood all my ports with the maximum amount of useless data to just get an idea of how much bandwidth I can push though. For some reason I cannot see any information about the allocated bandwidth, but I do see that some of my USB external drive have always been unusually slow. -
It could be that there are 7 ports that just aren't enabled or even physically there. All kinds of weird things happen in hardware land. Do you have other devices plugged in at all to the same hub, even if you aren't using them? How slow is unusually slow for your USB drives? Are you sure they're getting enough power and not running in a low-power mode? Are they defragged?
Just a rough FYI, I used dd to transfer one drive to another over a USB2 bus, to a USB powered external drive, and that copied at ~30MB/s. But that was a raw, linear access data stream, and not a file copy.
You could always use multiple runs of dd from, say, /dev/urandom or even /dev/zero blasting out to whatever devices you want to get an accurate measure of speed. But that's hardware running under Linux, which may not be applicable to Windows, as they have different USB stacks. -
Most of the stuff I use once or twice a day, and most of it doesn't need too much bandwidth (TV tuner, HDDs are exceptions)...
Most likely part of the problem is that each port has another 4 port hub on it...
The thing that really KILLS me is that if I plug another drive directly into a notebook USB port, which I know for a fact is on a different USB controller, I still get similar speeds so it seems to be a system-wide issue. A single drive plugged in with nothing else can do about 30-35MB/s -
It depends on the USB implementation. Since USB is built to share bandwidth, in an "easy" USB implementation could just split the bandwidth when any device is plugged in, which may explain your issues. But that's just idle speculation on my part.
-
Either way, late this weekend I'm probably going to experiment around a little bit and I'll probably have more benchmarks then.
You know, I never do notice this problem with non-hard drive peripherals. They are probably getting starved as well, but so far it doesn't impact their functionality. The next highest bandwidth-hogging device is my HDTV tuner, whose bandwidth should top out at about 2.4-2.5MB/s (19.2Mbps...aka 1080i bandwidth requirements and then a little more for overhead). You would think that if all the bandwidth is shared, at least my PC would be smart enough to allocate it properly :\.
Maybe I should just look at PCMCIA eSata and call it a day...
Tool to test USB bandwidth???
Discussion in 'Windows OS and Software' started by Greg, Jun 20, 2007.