No announcement yet.

USB 2.0 Throughput, large diff btw Linux/Win

  • Filter
  • Time
  • Show
Clear All
new posts

  • USB 2.0 Throughput, large diff btw Linux/Win

    Please forgive if this has been previously addressed, but I could not find the topic in a Forum search.
    I recently purchased a set of USB 2.0 loopback devices and I am trying to get rough estimates of USB bulk transfer speeds in Win7 and Ubuntu 10.04, using the identical underlying host PC hardware (Intel ICH9 host controller, pentium dual-core 2.93 Ghz, 2G Ram).

    In win7-32bit, I see average benchmark transfer speeds of 295 Mbit/s which seems normal. In Linux (2.6.32 kernel), I see the same hardware producing only 6 Mbit/s using the BurnInTest v3.1 software. I would like to understand why the results are so different and what I am possibly misconfiguring between these tests.

    PM from Indianapolis

  • #2
    The plug function in two modes.

    Benchmark mode: Fast, but no actually looping or verification of the data is done.

    Loopback mode: Slow, but data is looped in the plug and sent back to the PC and compared with the data sent for correctness. Remember that USB2 is uni-directional. So you can't send and receive at the same time. There is also latency in the plug copying the data from the receive buffer to the send buffer, and more latency on the PC's side checking the data before next block is sent.

    So my guess is that you are comparing benchmark mode speeds to loopback mode speeds.

    For our new USB3 plugs the microcontroller (CPU) in the plug is faster and USB3 is also bi-directional. So loopback mode is faster.


    • #3
      That is correct, I was comparing the USB2 standalone benchmark test (win7) against the BurnInTest (USB only) available in Linux. When running the BiT in Linux using the USB2 loopback devices, I noticed that the test window was updating the "Throughput" of the device which I (mistakenly) thought was the same bandwidth test. Does there exist a USB2 benchmarking test from PassMark that runs in linux? I notice that in the Linux API programming guide there is:

      #define BENCHMARK 2 *not currently supported in Linux

      Is this a limitation of the USB2 loopback device, or libusb? Would we still be able to benchmark USB2 connections on our mainboards if we upgraded to the USB3 loopback devices?



      • #4
        Technically I think it could be implmented.

        The Linux market is small, so demand is low. So we never got around to looking at it as no one asked for it (and we didn't need this function for our BurnIntest for Linux software).

        We are going to try and support more in Linux for USB3.