Merge lp:~sylvain-pineau/checkbox/usb_version_check into lp:checkbox
Proposed by
Sylvain Pineau
Status: | Merged |
---|---|
Merged at revision: | 1532 |
Proposed branch: | lp:~sylvain-pineau/checkbox/usb_version_check |
Merge into: | lp:checkbox |
Diff against target: |
134 lines (+71/-3) 4 files modified
debian/changelog (+6/-0) jobs/usb.txt.in (+18/-0) scripts/block_device_resource (+33/-2) scripts/disk_read_performance_test (+14/-1) |
To merge this branch: | bzr merge lp:~sylvain-pineau/checkbox/usb_version_check |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel Manrique (community) | Approve | ||
Review via email:
|
Description of the change
This MR modifies the existing block_device_
A new read performance test has been added to usb.txt.in specific for usb3 devices.
For relevant results, USB3 devices must be plugged in before checkbox starts.
To post a comment you must log in.
I tested this by merging and building a test checkbox package, adding the tests to whitelists, and doing a checkbox run with a USB 3.0 device inserted.
The test passed and the device (a hard disk) returned a throughput of 84 MB/s, just above the required threshold of 80.
I even looked at the very nice checkbox report with this information.
I have the following comments/requests for information:
1- On the test selection screen, the "Verify USB3 external storage" tests created by the usb/usb3_ read_performanc e job don't appear below the usb category, which looks ugly :( can this be fixed somehow?
2- The test ran on /dev/sda (internal harddisk), even though it had block_device. state== 'internal' and block_device. usb3==' unsupported' . I think this relates to bug 1027849, which is being worked on, so we may end up having to wait for that to get fixed.
3- Is it possible to determine whether the motherboard/ controller supports USB3 without plugging in a USB3 device? This test will mainly be used for certification, but if we need to plug in a USB3 device into systems before the tests start, this means we can only test as many systems as we have USB3 devices. Compare this with how the existing usb tests work: if the system supports usb2, then you get prompted to insert a compatible device to test, if you have no device you can skip the test.
One possible way of detecting this is looking for xhci initialization in the kernel log:
[ 1.150592] calling xhci_hcd_ init+0x0/ 0x29 @ 1 bandwidth called for root hub bandwidth called for root hub init+0x0/ 0x29 returned 0 after 46671 usecs
[ 1.150608] xhci_hcd 0000:06:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 1.150622] xhci_hcd 0000:06:00.0: setting latency timer to 64
[ 1.150626] xhci_hcd 0000:06:00.0: xHCI Host Controller
[ 1.150658] xhci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 3
[ 1.150818] xhci_hcd 0000:06:00.0: irq 16, io mem 0xca100000
[ 1.150878] xhci_hcd 0000:06:00.0: irq 42 for MSI/MSI-X
[ 1.150882] xhci_hcd 0000:06:00.0: irq 43 for MSI/MSI-X
[ 1.150885] xhci_hcd 0000:06:00.0: irq 44 for MSI/MSI-X
[ 1.150889] xhci_hcd 0000:06:00.0: irq 45 for MSI/MSI-X
[ 1.150892] xhci_hcd 0000:06:00.0: irq 46 for MSI/MSI-X
[ 1.151030] xHCI xhci_add_endpoint called for root hub
[ 1.151032] xHCI xhci_check_
[ 1.151101] xhci_hcd 0000:06:00.0: xHCI Host Controller
[ 1.151130] xhci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 4
[ 1.154277] xHCI xhci_add_endpoint called for root hub
[ 1.154279] xHCI xhci_check_
[ 1.198284] initcall xhci_hcd_
Compare to what happens on a non-USB3.0 system: init+0x0/ 0x49 @ 1 init+0x0/ 0x49 returned 0 after 13 usecs
[ 0.577014] calling xhci_hcd_
[ 0.577031] initcall xhci_hcd_