Change the way we test usb 3.0 superspeed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Checkbox Provider - Base |
Fix Released
|
High
|
Taihsiang Ho |
Bug Description
The way to check if USB is running in SuperSpeed mode is not by testing bandwidth (that depends in too many factors), but actually check dmesg for SuperSpeed mode.
This is what Gavin told us in an email:
I think the speed 60MB/s is not reasonable. As you said that different
devices may have various speeds. The factors to determine the speed
according to the following:
* flash quality used in the USB stick
* system bus loading
* USB host controller design
* quality of connector
* quality of cable
* file system used in creating the USB stick
* number of devices used in the same time
Even the SuperSpeed USB compliance testing[1] also shows that there
are no speed standard requirement but electrical compliance and
interoperability test.
Currently, we software developer recognize the dmesg like following to
see if the device is running in SuperSpeed or high-speed.
[4869642.458563] usb 4-2: new SuperSpeed USB device number 6 using xhci_hcd
[4869642.475076] usb 4-2: New USB device found, idVendor=125f, idProduct=312b
[4869642.475086] usb 4-2: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[4869642.475091] usb 4-2: Product: ADATA USB Flash Drive
[4869642.475096] usb 4-2: Manufacturer: ADATA
[4869642.475101] usb 4-2: SerialNumber: 2361514350020024
We can see high-speed instead of SuperSpeed if the device is not
running in USB 3.0. Actually, I would suggest adding a test item to
recognize if the device is running in SuperSpeed, the test item has
more readiness than measuring the speed which will have various
results.
The USB 3.0 driver used in Ubuntu kernel comes from the default Linux
kernel. We only backported the upstream bug fixes. So, this may not
cause the USB stick fail in the test item.
I've used the Sandisk Extreme 32G to test read/write speed by Disk
Utility. You can see from the attached files that even if the disk is
the same the speed results will differ with different file systems.
And even the speed results are different when using EXT4.
Related branches
- Zygmunt Krynicki (community): Needs Fixing
-
Diff: 232 lines (+77/-28)4 files modifiedcheckbox-support/checkbox_support/udev.py (+17/-0)
providers/plainbox-provider-checkbox/bin/removable_storage_test (+54/-20)
providers/plainbox-provider-checkbox/jobs/suspend.txt.in (+3/-4)
providers/plainbox-provider-checkbox/jobs/usb.txt.in (+3/-4)
- Zygmunt Krynicki (community): Approve
-
Diff: 232 lines (+77/-28)4 files modifiedcheckbox-support/checkbox_support/udev.py (+17/-0)
providers/plainbox-provider-checkbox/bin/removable_storage_test (+54/-20)
providers/plainbox-provider-checkbox/jobs/suspend.txt.in (+3/-4)
providers/plainbox-provider-checkbox/jobs/usb.txt.in (+3/-4)
Changed in plainbox-provider-checkbox: | |
assignee: | nobody → Taihsiang Ho (taihsiangho) |
Changed in plainbox-provider-checkbox: | |
status: | New → In Progress |
Changed in plainbox-provider-checkbox: | |
status: | In Progress → Fix Committed |
milestone: | none → 0.5 |
Changed in plainbox-provider-checkbox: | |
status: | Fix Committed → Fix Released |