root@netboot:~# (cd /sys/block/mmcblk0/device/ ; for i in * ; do if [
-f $i ] ; then echo -n "$i: " ; cat $i ; fi ; done)
cid: 02544d534431364760dcbf359a00a800
csd: 400e00325b590000777f7f800a400000
date: 08/2010
fwrev: 0x0
hwrev: 0x6
manfid: 0x000002
name: SD16G
oemid: 0x544d
scr: 02b5800026027102
serial: 0xdcbf359a
type: SD
uevent: DRIVER=mmcblk
MMC_TYPE=SD
MMC_NAME=SD16G
MODALIAS=mmc:block
root@netboot:~# ~/flashbench/flashbench -a /dev/mmcblk0 --blocksize=1024
align 536870912 pre 838µs on 1.12ms post 960µs diff
222µs
align 268435456 pre 859µs on 1.09ms post 955µs diff
186µs
align 134217728 pre 860µs on 1.1ms post 957µs diff
196µs
align 67108864 pre 861µs on 1.11ms post 957µs diff
203µs
align 33554432 pre 860µs on 1.11ms post 960µs diff
197µs
align 16777216 pre 861µs on 1.11ms post 953µs diff
203µs
align 8388608 pre 859µs on 1.11ms post 961µs diff
198µs
align 4194304 pre 863µs on 1.1ms post 925µs diff
211µs
align 2097152 pre 862µs on 1.11ms post 965µs diff
199µs
align 1048576 pre 954µs on 978µs post 970µs diff
15.8µs
align 524288 pre 951µs on 977µs post 973µs diff
14.8µs
align 262144 pre 947µs on 977µs post 967µs diff
19.8µs
align 131072 pre 947µs on 983µs post 969µs diff
25.5µs
align 65536 pre 951µs on 981µs post 956µs diff
26.9µs
align 32768 pre 948µs on 977µs post 963µs diff
21.6µs
align 16384 pre 950µs on 978µs post 950µs diff
27.7µs
align 8192 pre 963µs on 960µs post 963µs diff
-3106ns
align 4096 pre 962µs on 969µs post 956µs diff
10.1µs
align 2048 pre 963µs on 953µs post 951µs diff
-3893ns
>From which I guess 2M erase block size. Not sure how to interpret the
last 4 rows.
Only 1 open allocation unit by the look of the following :-(
root@netboot:~# ~/flashbench/flashbench --open-au --open-au-nr=1
--erasesize=$[2 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/mmcblk0
2MiB 3.68M/s
1MiB 3.16M/s
512KiB 3.06M/s
256KiB 3.33M/s
root@netboot:~# ~/flashbench/flashbench --open-au --open-au-nr=2
--erasesize=$[2 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/mmcblk0
2MiB 3.09M/s
1MiB 2.01M/s
512KiB 1.43M/s
256KiB 618K/s
root@netboot:~# ~/flashbench/flashbench -f /dev/mmcblk04MiB 2.51M/s
2.46M/s 3.73M/s 3.72M/s 3.72M/s 3.72M/s
2MiB 3.7M/s 2.46M/s 3.73M/s 3.73M/s 3.72M/s 3.72M/s
1MiB 3.7M/s 2.46M/s 3.73M/s 3.74M/s 3.72M/s 3.72M/s
512KiB 3.7M/s 2.45M/s 3.72M/s 3.7M/s 3.73M/s 3.73M/s
256KiB 3.71M/s 2.63M/s 3.72M/s 3.73M/s 3.72M/s 3.72M/s
128KiB 3.71M/s 2.82M/s 3.73M/s 3.72M/s 3.72M/s 3.72M/s
64KiB 3.71M/s 3.01M/s 3.72M/s 3.72M/s 3.72M/s 3.72M/s
32KiB 3.58M/s 2.73M/s 3.57M/s 3.57M/s 3.58M/s 3.57M/s
16KiB 2.95M/s 2.25M/s 2.94M/s 2.95M/s 2.94M/s 2.95M/s
The --scatter-order=<n> --scatter-span=<m> arguments are
not really documented, so I didn't know how I should be using them, so
I didn't. There are some strange outliers on the plot, most of which
seem to end up consistently in the same place.
This card has had an HD image file copied over it (with dd) prior to
any of these results being generated.