VMware Communities
HappyCactus
Contributor
Contributor

Workstation 15 USB transfer performances

Hello,

I'm working on an external USB device that talks to the pc using USB Bulk Transfers. The device use a special protocol with two data endpoints, one for reads and one for writes (0x01 and 0x82).

The device and the pc software work perfectly in any physical O.S., either linux, MacOS or Windows.

When working on a virtual machine, on VMWare Workstation PRO 15.5, either Windows or Linux (guest), the transfer are extremely slow.

In a test we made, transferring around 5000 records between the pc and the device, we had the following results:

native Linux: Test completed in 2.0 to 2.9 seconds (release/debug)

native Windows 10: Test completed in 2.9 to 3.0 seconds (32 / 64bit)

Windows 10 VM, Windows 10 Host: Test completed in 120seconds (64 bit)

Linux VM (Mint 19.2), Windows 10 Host: Test completed in 500s

Windows 10 VM, Linux Host (Ubuntu 18.04): Test completed in 15s

As you see, performances are poor to awful in VM, regardless of the Guest and Host o.s.

The VM are similar, USB mode always set to 2.0, O.S. are always up to date. test software is always the same, compiled in VS 2019 or gcc 8 for linux, and works without any issue except for the performances.

Does anyone know of anything I can do to diagnose and hopefully fix this issue?

Thank you in advance and kind regards

Federico

0 Kudos
1 Reply
HappyCactus
Contributor
Contributor

Just found an interesting point.

I have a speed test that tries to send as many packets as possible to the board.

It runs for 5 seconds, count the number of packets and the size.

Here are the results:

[   INFO   ] <info> Test Results with 64 bytes block: 10.2 packets/sec, 652.8 bytes/sec

[   INFO   ] <info> Test Results with 256 bytes block: 10.2 packets/sec, 2.6112 kbytes/s

[   INFO   ] <info> Test Results with 4096 bytes block: 10.2 packets/sec, 41.7792 kbytes/s

[   INFO   ] <info> Test Results with 8192 bytes block: 10.2 packets/sec, 83.5584 kbytes/s

[   INFO   ] <info> Test Results with 32768 bytes block: 10.2 packets/sec, 334.234 kbytes/s

[   INFO   ] <info> Test Results with 65520 bytes block: 10.2 packets/sec, 668.304 kbytes/s

it seems the USB packets rate is limited to 10/seconds.

Any thought?

Thanks

0 Kudos