Research into the slow storage speeds on the PandaBoard (and other Cortex-ARM9 systems) has continued and a patch set developed to hopefully improve the situation. David Marlin built a 2.6.40.3-2.02.fc13.armv7l.omap kernel with the patch set, so I downloaded a copy and ran bonnie++ again.
The results were mixed for the SD card. Sequential reads had a nice improvement, but sequential output and random seeks took a big hit. The random seek times are particularly worrisome with an increase from 663ms to 76023ms! Something doesn't seem right.
The USB hard drive, though, saw some nice improvements overall. Sequential write latencies dropped from 5.8 seconds down to 0.38 seconds and throughput more than doubled: 9 MiB/s vs 23 MiB/s! Sequential reads latencies increased a bit, but throughput again more than doubled: 12 MiB/s vs 27 MiB/s! Random seeks also saw a nice improvement from 7.6s down to 4.9s.
Version 1.96 | Sequential Output | Sequential Input | Random Seeks | ||||||||||
Size | Per Char | Block | Rewrite | Per Char | Block | ||||||||
K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | /sec | % CPU | ||
SD Card 2.6.35-g6d019da-dirty | 2G | 41 | 93 | 3125 | 5 | 3371 | 4 | 336 | 99 | 17598 | 15 | 27.4 | 1 |
Latency | 1168ms | 33487ms | 32391ms | 44466us | 2628ms | 663ms | |||||||
SD Card 2.6.40.3-2.02.fc13.armv7l.omap | 2G | 22 | 65 | 1862 | 4 | 2544 | 3 | 339 | 99 | 19626 | 16 | 15.6 | 1 |
Latency | 2793ms | 29928ms | 39111ms | 50446us | 665ms | 76023ms | |||||||
USB HD 2.6.35-g6d019da-dirty | 2G | 43 | 99 | 9017 | 16 | 4538 | 6 | 369 | 99 | 12357 | 9 | 93.9 | 6 |
Latency | 215ms | 5849ms | 5889ms | 52858us | 108ms | 7643ms | |||||||
USB HD 2.6.40.3-2.02.fc13.armv7l.omap | 2G | 39 | 99 | 23519 | 26 | 11118 | 15 | 327 | 99 | 27314 | 18 | 150.6 | 12 |
Latency | 322ms | 383ms | 341ms | 54567us | 697ms | 4910ms |
I also tried a simple test with hdparm as shown on lwn.net:
[root@fedora-arm ~]# uname -r
2.6.40.3-2.02.fc13.armv7l.omap
[root@fedora-arm ~]# hdparm -t /dev/mmcblk0p4
/dev/mmcblk0p4:
Timing buffered disk reads: 50 MB in 3.10 seconds = 16.11 MB/sec
[root@fedora-arm ~]# hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 66 MB in 3.05 seconds = 21.64 MB/sec
Compared to the older kerrnel:
[root@fedora-arm ~]# uname -r
2.6.35-g6d019da-dirty
[root@fedora-arm ~]# hdparm -t /dev/mmcblk0p4
/dev/mmcblk0p4:
Timing buffered disk reads: 50 MB in 3.09 seconds = 16.20 MB/sec
[root@fedora-arm ~]# hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 26 MB in 3.04 seconds = 8.56 MB/sec
The SD card's performance is about the same, but the USB hard drive is much faster with the new patch!
SD Card Duplication, Buy bulk USBs, Promotional USBs drives and flash memory drives at custom-promotional-usb-sticks.com.
ReplyDeleteYour results show the performance of USB_interface+hard_disk versus MMC_interface+SD_flash. It would be interesting to also see the results of testing a USB flash drive, to try and establish the performance difference at the actual transfer protocol layer (USB vs MMC).
ReplyDelete