USB3 performance

Moderators: mdrjr, odroid

USB3 performance

Unread postby uDude » Mon Aug 24, 2015 1:18 am

Referring to the "USB 3 Prformance"/SSD speed test posted by @odroid:

http://forum.odroid.com/viewtopic.php?f=54&t=14897

The numbers are not that good. The resulT @odroid posted was about 150 MB/s which, after multiplying by 8, is 1200 Mb/s. This is only about 1.2Gbps.

The harddrive tested has a sequential read speed of 500MB/s or about 4Gb/s.
The Superspeed USB 3 spec [url]usb.org][/url] is 10Gb/s.
Teh Gensys bridge chip claims to sonform to sata 3 speeds which is 6 Gb/s.

The actual from @odroid si 1.2Gb/s while the expected is 3x that at 4Gb/s.

Where is the bottleneck?

Please test other bridge chips to see if the speed is still this low. If so, the limitation is on the XU4.

Note: I do not have an XU4 -- I am just interpreting the numbers posted by @odroid.
uDude
 
Posts: 59
Joined: Mon Sep 15, 2014 7:32 am
languages_spoken: english
ODROIDs: 3 U3's,
2 XU3's,
5 C1's,
26 XU4's,
3 HC-1s

Re: USB3 performance

Unread postby odroid » Mon Aug 24, 2015 9:42 am

The bottleneck is caused by internal bus architecture in the Exynos5422.
BTW, USB 3.0 is 5Gbps while USB 3.1 is 10Gbps.
User avatar
odroid
Site Admin
 
Posts: 24345
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID

Re: USB3 performance

Unread postby crashoverride » Mon Aug 24, 2015 2:45 pm

The Odroid XU4 numbers are comparable to full desktop PC's using USB3.0. As shown in the benchmarks, PCs also get 150MB/s throughput over USB3.0.
http://www.tomshardware.com/reviews/usb-3-uas-turbo,3215-2.html

[Edit]
USB Attached SCSI improves the protocol overhead bottleneck.
https://en.wikipedia.org/wiki/USB_Attached_SCSI

[Edit2]
The UAS driver seems to be present in the kernel source code, but I did not see the module on my XU4. Perhaps the kernel config for it (CONFIG_USB_UAS) needs to be enabled.
https://github.com/hardkernel/linux/blob/odroidxu3-3.10.y/drivers/usb/storage/uas.c

[Edit3]
It seems UAS requires special hardware in the host controller as well as the device, so it may not work on XU4.
https://github.com/hardkernel/linux/blob/odroidxu3-3.10.y/drivers/usb/storage/uas.c#L866
crashoverride
 
Posts: 3060
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1

Re: USB3 performance

Unread postby odroid » Mon Aug 24, 2015 3:40 pm

Right. The UAS has not been available on the embedded ARM processors yet.
User avatar
odroid
Site Admin
 
Posts: 24345
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID

Re: USB3 performance

Unread postby tkaiser » Mon Nov 09, 2015 12:57 am

I had to learn recently that this is not true. Using mainline kernel and a USB-to-SATA bridge in the enclosure that's not blacklisted you can benefit from UASP even with USB 2.0. I wrote my experiences and some performance numbers in the linux-sunxi wiki: http://linux-sunxi.org/USB/UAS#Testing_ ... enclosures

Now it would be interesting how fast the XU4's SoC really is. I would love to see a test with mainline kernel (CONFIG_USB_UAS=m), reasonable host settings, an USB-to-SATA bridge that is known to work with UASP (I would recommend a JMS567 since it's both UASP and SAT -- SCSI/ATA translation -- capable and I can confirm that it's able to reach 400 MB/s [1]) and a SSD that is fast enough for the test scenario (Samsung EVO 840/850 with only 128GB capacity aren't fast enough since their TurboWrite buffer is just 3GB small and when testing you should use twice as much data as available RAM so you end up with the SSD's write speed being limited to 150 MB/s).

With reasonable host settings I mean setting the cpufreq governor to 'performance' and assign USB3 IRQs to another CPU than CPU0:

Code: Select all
echo performance >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 2 >/proc/irq/$(awk -F":" '/xhci/ {print $1}' </proc/interrupts)/smp_affinity


Are you able to do such a benchmark? Using the iozone calls from the first link above? If so it would also be great if you could have a look whether it's possible to query the SSD's S.M.A.R.T. values using smartmontools/smartctl (this is prerequisit for us aquiring an XU4 since otherwise it's not possible to query SMART values and to trigger selftests of USB connected disks/SSDs).

Thx, Thomas

[1] See the test result BX100-JMS567-10gbit.png here: http://kaiser-edv.de/tmp/3zK9lI/BX100-JMS567-10gbit.png
tkaiser
 
Posts: 94
Joined: Mon Nov 09, 2015 12:30 am
languages_spoken: english
ODROIDs: C1+, C2, XU4, HC1


Return to General Chat

Who is online

Users browsing this forum: No registered users and 3 guests