This page discusses additional tests for SD Cards. The 'base' tests are described in NAND_Testing.
Flashbench random I/O test procedure
- On an XO with the latest stable OS release installed
- Download and compile flashbench from git://git.linaro.org/people/arnd/flashbench.git (or fetch a precompiled x86 version from http://dev.laptop.org/~martin/flashbench/flashbench )
- Download the flashbench wrapper script from http://dev.laptop.org/~martin/flashbench/run_test.sh , place it in the same directory as the flashbench executable
- When booting the test bench machine, ensure no SD cards are present in the external slot
- Insert uSD card with adapter in the external slot
- Open a Sugar Terminal or GNOME Terminal
- Copy output
Note: unfortunately as of May 2011 flashbench has a bug that prevents writing output to a file.
"A" SanDisk C2 4GB uSD NAME=SU04G OEMID=0x5344 MANFID=0x000003 HWREV=0x8 FWREV=0x0 "A1" SanDisk C2 4GB uSD (mislabelled batch?) NAME=SU04G OEMID=0x5344 MANFID=0x000003 HWREV=0x8 FWREV=0x0 "B" Toshiba (?) C4 4GB uSD NAME=SD OEMID=0x4144 MANFID=0x00001d HWREV=0x1 FWREV=0x0 "C" SanDisk C2 8GB uSD== NAME=SA08G OEMID=0x5344 MANFID=0x000002 HWREV=0x0 FWREV=0x6
Segment size vs throughput.
The first and last examples are based on numbers provided by Arnd Bergmann \
|Size||Sample High perf card||A (C2-4GB)||A1 (C2-4GB)||B (C4-4GB)||C (C2-8GB)||Unusable card|
Flashbench is useful to experimentally establish the operating parameters of the FTL embedded in an SD card. See https://wiki.linaro.org/WorkingGroups/Kernel/Projects/FlashCardSurvey for the author's own SD card survey.
In our case, we want to evaluate the suitability of an SD card for usage as the root filesystem of our Linux-powered laptops. The key factor is write/read performance in 4KB blocks as used by ext3/4, btrfs and other modern linux filesystems.
So the 4KiB row results are the strongest indicators of whether a particular SD card will be responsive under Linux.