Testing OdroidXU4 4.8 and 4.9 Kernels with and without UAS Support
Considering following test setup:
- cpufreq-set to performance both A7&A15 cores
- MicroSDHC 32GB EVO Plus UHS-I Grade 1 Class 10, date: 07/2016
- SSD Samsung 850 EVO 500GB, Firmware Revision EMT02B6Q
- USB3/SATA6 enclousure:
idProduct ASMT1051
(0x55aa ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
) - UAS Module enabled (m/y) inside default odroidxu4 kernel configuration file, which is
odroidxu4_defconfig
. To enable it:CONFIG_USB_UAS=y
Tested OdroidXU4 branches and kernels:
- Kernel:
ioft/linux
branch ||Kernel 4.8-rc5
|| defaultodroidxu4_defconfig
with UAS Support - Kernel:
tobetter/linux
branch ||kernel 4.8-rc5+
|| defaultodroidxu4_defconfig
without UAS - Kernel:
mdjr/linux
branch ||kernel 4.9.17-g99d8f52
|| defaultodroidxu4_defconfig
with UAS Support
1) Performance on SSD:
Command line tests:
1.- iozone -e -I -a -s 100M -r 4k -r 16k -r 32k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
- Results without uas (usb-storage modus in 4.8-rc5+@tobetter/linux):
KB | reclen | write | rewrite | read | reread | random read | random write |
---|---|---|---|---|---|---|---|
102400 | 4 | 15085 | 14353 | 16074 | 16183 | 14223 | 14199 |
102400 | 16 | 44326 | 52025 | 49768 | 49678 | 48749 | 51244 |
102400 | 32 | 76708 | 77953 | 80884 | 78109 | 78348 | 84464 |
102400 | 512 | 192734 | 200385 | 169273 | 172458 | 177746 | 209328 |
102400 | 1024 | 188233 | 207142 | 176447 | 176386 | 176189 | 211852 |
102400 | 16384 | 163030 | 215054 | 178055 | 178316 | 178484 | 215469 |
- Results with with uas (4.8-rc5@ioft/linux):
KB | reclen | write | rewrite | read | reread | random read | random write |
---|---|---|---|---|---|---|---|
102400 | 4 | 15919 | 18279 | 22359 | 22342 | 17333 | 21088 |
102400 | 16 | 60395 | 63605 | 71811 | 71835 | 57757 | 64621 |
102400 | 32 | 98007 | 104145 | 104709 | 104633 | 87834 | 105577 |
102400 | 512 | 211427 | 229984 | 188341 | 188498 | 185005 | 238125 |
102400 | 1024 | 255740 | 259705 | 226446 | 226927 | 224105 | 269753 |
102400 | 16384 | 260751 | 333293 | 317813 | 317566 | 317351 | 334061 |
- Results with with uas (4.9.17@mdjr/linux):
KB | reclen | write | rewrite | read | reread | random read | random write |
---|---|---|---|---|---|---|---|
102400 | 4 | 16145 | 17987 | 17981 | 17988 | 16053 | 18199 |
102400 | 16 | 48094 | 50741 | 64120 | 64052 | 53454 | 51044 |
102400 | 32 | 80912 | 84197 | 96651 | 96109 | 83531 | 85322 |
102400 | 512 | 214920 | 216673 | 182670 | 182768 | 179920 | 223095 |
102400 | 1024 | 239156 | 239520 | 215364 | 215577 | 213541 | 247872 |
102400 | 16384 | 250283 | 311905 | 300084 | 299229 | 299426 | 305817 |
2.- dd if=/dev/zero of=test oflag=direct bs=8M count=64 && dd if=test of=/dev/null iflag=direct bs=8M && rm test
- Results tobetter 4.8-rc5 Kernel:
536870912 bytes (537 MB, 512 MiB) copied, 3,40853 s, 158 MB/s
for Write
536870912 bytes (537 MB, 512 MiB) copied, 2,85195 s, 188 MB/s
for Read
- Results ioft 4.8-rc5 Kernel:
536870912 bytes (537 MB, 512 MiB) copied, 1,98129 s, 271 MB/s
for Write
536870912 bytes (537 MB, 512 MiB) copied, 1,86621 s, 288 MB/s
for Read
- Results mdjr 4.9.17 Kernel:
536870912 bytes (537 MB, 512 MiB) copied, 2,14228 s, 251 MB/s
for Write
536870912 bytes (537 MB, 512 MiB) copied, 2,03682 s, 264 MB/s
for Read
3.- hdparm -tT /dev/sda1
and hdparm -t --direct /dev/sda1
- Results tobetter 4.8-rc5 Kernel:
Timing cached reads: 872 MB in 2.00 seconds = 435.31 MB/sec
Timing buffered disk reads: 596 MB in 3.00 seconds = 198.48 MB/sec
Timing O_DIRECT disk reads: 514 MB in 3.00 seconds = 171.30 MB/sec
- Results ioft 4.8-rc5 Kernel:
Timing cached reads: 856 MB in 2.00 seconds = 427.38 MB/sec
Timing buffered disk reads: 806 MB in 3.01 seconds = 268.12 MB/sec
Timing O_DIRECT disk reads: 652 MB in 3.00 seconds = 217.14 MB/sec
- Results mdjr 4.9.17 Kernel:
Timing cached reads: 2114 MB in 2.00 seconds = 1058.35 MB/sec
Timing buffered disk reads: 844 MB in 3.01 seconds = 280.79 MB/sec
Timing O_DIRECT disk reads: 688 MB in 3.00 seconds = 229.18 MB/sec
4.- HELIOS LanTest (SAMBA):
- Results tobetter 4.8-rc5 Kernel:
- Results ioft 4.8-rc5 Kernel:
- Results mdjr 4.9.17 Kernel:
5.- Windows Client (Windows 10 x64 + SSD + 1GBE) to OdroidXU4 acting like a NAS:
- Results mdjr 4.9.17 Kernel:
2) Performance on MicroSDHC
Command line tests:
1.- iozone -e -I -a -s 100M -r 4k -r 16k -r 32k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
- Results tobetter 4.8-rc5 Kernel with awesome UHS-I patch:
KB | reclen | write | rewrite | read | reread | random read | random write |
---|---|---|---|---|---|---|---|
102400 | 4 | 4252 | 4209 | 12177 | 12176 | 12131 | 4330 |
102400 | 16 | 19081 | 20295 | 31904 | 31571 | 32115 | 20364 |
102400 | 32 | 30360 | 30919 | 38230 | 38046 | 37685 | 31072 |
102400 | 512 | 57890 | 58322 | 65399 | 65356 | 65384 | 58563 |
102400 | 1024 | 59893 | 59565 | 67419 | 67416 | 67378 | 60509 |
102400 | 16384 | 58663 | 63522 | 75495 | 75465 | 75496 | 63752 |
- Results ioft 4.8-rc5 Kernel:
KB | reclen | write | rewrite | read | reread | random read | random write |
---|---|---|---|---|---|---|---|
102400 | 4 | 2159 | 2746 | 8168 | 8100 | 8166 | 2845 |
102400 | 16 | 10498 | 11342 | 15344 | 15277 | 15579 | 11504 |
102400 | 32 | 13997 | 14942 | 17800 | 17840 | 17729 | 14593 |
102400 | 512 | 19671 | 19739 | 21763 | 21764 | 21756 | 20550 |
102400 | 1024 | 19020 | 19938 | 21965 | 21982 | 21980 | 20705 |
102400 | 16384 | 20199 | 21383 | 22791 | 22776 | 22791 | 21413 |
- Results mdjr 4.9.17 Kernel:
KB | reclen | write | rewrite | read | reread | random read | random write |
---|---|---|---|---|---|---|---|
102400 | 4 | 1733 | 4212 | 12403 | 12193 | 12360 | 4188 |
102400 | 16 | 10258 | 13938 | 31158 | 30802 | 31003 | 19497 |
102400 | 32 | 30364 | 30841 | 38515 | 38699 | 38930 | 30155 |
102400 | 512 | 60132 | 59926 | 67157 | 67281 | 67149 | 59403 |
102400 | 1024 | 62171 | 62157 | 69224 | 69231 | 69253 | 62689 |
102400 | 16384 | 62102 | 64792 | 74879 | 74996 | 75005 | 65017 |
2.- dd if=/dev/zero of=test oflag=direct bs=8M count=64 && dd if=test of=/dev/null iflag=direct bs=8M && rm test
- Results tobetter 4.8-rc5 Kernel (has UHS-I patch. dmesg like ultra high speed):
536870912 bytes (537 MB, 512 MiB) copied, 25,1051 s, 21,4 MB/s
for Write
536870912 bytes (537 MB, 512 MiB) copied, 6,92232 s, 77,6 MB/s
for Read
- Results ioft 4.8-rc5 Kernel (it doesn’t have UHS-I patch. dmesg like high speed):
536870912 bytes (537 MB, 512 MiB) copied, 35,2372 s, 15,2 MB/s
for Write
536870912 bytes (537 MB, 512 MiB) copied, 23,0035 s, 23,3 MB/s
for Read
- Results mdjr 4.9.17 Kernel (has UHS-I patch. dmesg like ultra high speed):
536870912 bytes (537 MB, 512 MiB) copied, 19,3599 s, 27,7 MB/s
for Write
536870912 bytes (537 MB, 512 MiB) copied, 7,06025 s, 76,0 MB/s
for Read
3.- hdparm -tT /dev/mmcblk1p2
and hdparm -t --direct /dev/mmcblk1p2
- Results tobetter 4.8-rc5 Kernel:
Timing cached reads: 854 MB in 2.00 seconds = 426.94 MB/sec
Timing buffered disk reads: 180 MB in 3.02 seconds = 59.55 MB/sec
Timing O_DIRECT disk reads: 178 MB in 3.02 seconds = 59.02 MB/sec
- Results ioft 4.8-rc5 Kernel:
Timing cached reads: 814 MB in 2.00 seconds = 406.69 MB/sec
Timing buffered disk reads: 64 MB in 3.04 seconds = 21.03 MB/sec
Timing O_DIRECT disk reads: 64 MB in 3.01 seconds = 21.29 MB/sec
- Results mdjr 4.9.17 Kernel:
Timing cached reads: 2078 MB in 2.00 seconds = 1039.53 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.81 MB/sec
Timing O_DIRECT disk reads: 178 MB in 3.03 seconds = 58.79 MB/sec
4.- HELIOS LanTest (SAMBA):
- Results tobetter 4.8-rc5 Kernel:
- Results ioft 4.8-rc5 Kernel:
- Results mdjr 4.9.17 Kernel:
Having:
1. Samba configuration
Some performance numbers with JMS567, JMS578 and ASM1153 and latest 4.9 LTS kernel and appropriate settings. And also some numbers with JMS578 on HC1 (no USB3 hub in between SoC and disk): https://forum.odroid.com/viewtopic.php?f=146&t=27548&start=50#p201175