Thursday, June 2, 2011

Storage Speed on the PandaBoard Revisited

A recent thread on the Fedora arm mailing list had me revisit the storage speed tests I ran recently.  DJ Delorie found that his USB storage speed more than doubled if he pinged the PandaBoard from another host.  The PandaBoard's ethernet is part of the USB smsc95xx chipset, so it makes sense that they're related.

With that in mind, I ran the bonnie++ tests again while pinging the PandaBoard (from the same system running minicom to access the serial console of the PandaBoard). The first row is copied-and-pasted from the last test. The second row holds the new results.

Version 1.96Sequential OutputSequential InputRandom
Seeks
SizePer CharBlockRewritePer CharBlock
K/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPU/sec% CPU
USB HD2G4399901716453863699912357993.96
Latency215ms5849ms5889ms52858us108ms7643ms
USB HD with ping2G38991903839970914364992494721162.711
Latency220ms1714ms1319ms62165us16327us1542ms

That's amazing!  Sequential Writes more than doubled: from 9017 K/sec to 19038 K/sec.  And Sequential Reads doubled: from 12357 K/sec to 24947 K/sec!

There seems to be a bug somewhere, maybe in the smsc95xx driver?  If this can be fixed, using a USB hard drive could greatly improve the storage speeds on the PandaBoard.