SDCard Testing

From OLPC

Jump to: navigation, search

This page discusses additional tests for SD Cards. The 'base' tests are described in NAND_Testing.

Contents

[edit] Flashbench random I/O test procedure

[edit] Preparations

  1. On an XO with the latest stable OS release installed
  2. 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 )
  3. 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

[edit] Procedure

  1. When booting the test bench machine, ensure no SD cards are present in the external slot
  2. Insert uSD card with adapter in the external slot
  3. Open a Sugar Terminal or GNOME Terminal
  4. run flashbench_sdtest.sh /dev/mmcblk1
  5. Copy output

Note: unfortunately as of May 2011 flashbench has a bug that prevents writing output to a file.

[edit] Cards tested

"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

[edit] Results

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
4MiB 8.86M/s 3.14M/s 3.51M/s 5.84M/s 4.19M/s 15M/s
2MiB 6.3M/s 4.09M/s 2.9M/s 3.6M/s 2.59M/s 9.47M/s
1MiB 5.02M/s 2.84M/s 2.84M/s 2.21M/s 1.35M/s 4.47M/s
512KiB 5.16M/s 1.33M/s 2.45M/s 1.3M/s 649K/s 1.61M/s
256KiB 4.69M/s 868K/s 2.3M/s 701K/s 353K/s 849K/s
128KiB 3.78M/s 556K/s 2.02M/s 363K/s 180K/s 441K/s
64KiB 4.62M/s 297K/s 1.71M/s 186K/s 90.6K/s 226K/s
32KiB 2.71M/s 155K/s 1.29M/s 92K/s 45.7K/s 115K/s
16KiB 2.38M/s 76K/s 1.48M/s 47K/s 23.1K/s 57K/s
8KiB 1.24M/s 38K/s 923K/s 23K/s 11.7K/s 23K/s
4KiB 907K/s 19K/s 919K/s 11.8K/s 5.95K/s 8K/s

[edit] Technical discussion

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.

Personal tools
  • Log in / create account
  • Login with OpenID
About OLPC
About the XO
Projects
OLPC wiki
Toolbox