arnd@klappe2:~/git/flashbench$ sudo head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$ ==> /sys/block/mmcblk0/device/block <== ==> /sys/block/mmcblk0/device/cid <== 744a4555534420201005402e0500b700 ==> /sys/block/mmcblk0/device/csd <== 400e00325b5900003bbd7f800a400000 ==> /sys/block/mmcblk0/device/date <== 07/2011 ==> /sys/block/mmcblk0/device/driver <== ==> /sys/block/mmcblk0/device/erase_size <== 512 ==> /sys/block/mmcblk0/device/fwrev <== 0x0 ==> /sys/block/mmcblk0/device/hwrev <== 0x1 ==> /sys/block/mmcblk0/device/manfid <== 0x000074 ==> /sys/block/mmcblk0/device/name <== USD ==> /sys/block/mmcblk0/device/oemid <== 0x4a45 # ==> "JE" ==> /sys/block/mmcblk0/device/power <== ==> /sys/block/mmcblk0/device/preferred_erase_size <== 4194304 ==> /sys/block/mmcblk0/device/scr <== 0235800000000000 ==> /sys/block/mmcblk0/device/serial <== 0x05402e05 ==> /sys/block/mmcblk0/device/subsystem <== ==> /sys/block/mmcblk0/device/type <== SD ==> /sys/block/mmcblk0/device/uevent <== DRIVER=mmcblk MMC_TYPE=SD MMC_NAME=USD MODALIAS=mmc:block
arnd@klappe2:~/git/flashbench$ sudo fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 8018 MB, 8018460672 bytes
# > 7,830,528 KB
arnd@klappe2:~/git/flashbench$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 12582912 pre 391µs on 729µs post 624µs diff 222µs align 8388608 pre 391µs on 741µs post 641µs diff 225µs align 6291456 pre 413µs on 697µs post 671µs diff 154µs align 4194304 pre 359µs on 741µs post 649µs diff 236µs align 3145728 pre 408µs on 701µs post 654µs diff 170µs align 2097152 pre 405µs on 700µs post 655µs diff 170µs align 1572864 pre 402µs on 701µs post 660µs diff 170µs
# --> 4 MB erase block
align 32768 pre 389µs on 678µs post 640µs diff 164µs align 24576 pre 386µs on 670µs post 641µs diff 157µs align 16384 pre 391µs on 680µs post 641µs diff 164µs align 12288 pre 535µs on 538µs post 496µs diff 22.9µs align 8192 pre 386µs on 676µs post 646µs diff 160µs align 6144 pre 460µs on 459µs post 422µs diff 17.8µs align 4096 pre 533µs on 532µs post 495µs diff 17.9µs
# --> 8 KB page size
# linear access in one 4MB erase block: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --open-au-nr=1 4MiB 12M/s 2MiB 10.5M/s 1MiB 10.4M/s 512KiB 10.5M/s 256KiB 9.93M/s 128KiB 10.2M/s 64KiB 10.1M/s 32KiB 6.79M/s 16KiB 4.44M/s
# random access, almost as fast: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --open-au-nr=1 --random 4MiB 8.28M/s 2MiB 8.15M/s 1MiB 8.24M/s 512KiB 8.12M/s 256KiB 8.15M/s 128KiB 8.31M/s 64KiB 8.3M/s 32KiB 6.71M/s 16KiB 4.35M/s
# across 4 erase blocks, still fast: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --open-au-nr=4 --random 4MiB 10.9M/s 2MiB 7.1M/s 1MiB 9.77M/s 512KiB 9.71M/s 256KiB 9.65M/s 128KiB 9.45M/s 64KiB 9.37M/s 32KiB 6.5M/s 16KiB 4.2M/s
# 8 erase blocks, very slow: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --open-au-nr=8 --random 4MiB 9.39M/s 2MiB 3.57M/s 1MiB 2M/s ...
# 6 erase blocks, very slow: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --open-au-nr=6 --random 4MiB 9.38M/s 2MiB 4.47M/s 1MiB 2M/s ^C
# 5 erase blocks, fast: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --open-au-nr=5 --random 4MiB 8.7M/s 2MiB 10.5M/s 1MiB 10.4M/s 512KiB 10.4M/s 256KiB 10.3M/s 128KiB 10.2M/s 64KiB 9.99M/s 32KiB 6.44M/s 16KiB 4.2M/s # page size! 8KiB 1.62M/s 4KiB 803K/s 2KiB 396K/s 1KiB 189K/s 512B 97B/s
# 5 erase blocks linear, same thing but slightly faster: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --open-au-nr=5 --blocksize=512 4MiB 5.98M/s 2MiB 9.52M/s 1MiB 9.41M/s 512KiB 9.45M/s 256KiB 9.35M/s 128KiB 9.2M/s 64KiB 9.1M/s 32KiB 6.47M/s 16KiB 4.1M/s 8KiB 2.15M/s 4KiB 1.23M/s 2KiB 663K/s 1KiB 340K/s
# 6 erase blocks linear, also slow: arnd@klappe2:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --open-au-nr=6 --blocksize=512 4MiB 8.79M/s 2MiB 3.62M/s 1MiB 1.94M/s ^C
flashbench-results@lists.linaro.org