andrew@piglet:~/git/flashbench$ head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$ ==> /sys/block/mmcblk0/device/block <== ==> /sys/block/mmcblk0/device/cid <== 1b534d303030303010f88257e100fa00 ==> /sys/block/mmcblk0/device/csd <== 400e00325b590000773b7f800a404000 ==> /sys/block/mmcblk0/device/date <== 10/2015 ==> /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 <== 0x00001b ==> /sys/block/mmcblk0/device/name <== 00000 ==> /sys/block/mmcblk0/device/oemid <== 0x534d ==> /sys/block/mmcblk0/device/power <== ==> /sys/block/mmcblk0/device/preferred_erase_size <== 4194304 ==> /sys/block/mmcblk0/device/scr <== 02b5800200000000 ==> /sys/block/mmcblk0/device/serial <== 0xf88257e1 ==> /sys/block/mmcblk0/device/subsystem <== ==> /sys/block/mmcblk0/device/type <== SD ==> /sys/block/mmcblk0/device/uevent <== DRIVER=mmcblk MMC_TYPE=SD MMC_NAME=00000 MODALIAS=mmc:block
root@piglet:~# cat /sys/kernel/debug/mmc0/* 2>/dev/null | grep -v ^$ 33000000 clock: 33000000 Hz actual clock: 33000000 Hz vdd: 21 (3.3 ~ 3.4 V) bus mode: 2 (push-pull) chip select: 0 (don't care) power mode: 2 (on) bus width: 2 (4 bits) timing spec: 2 (sd high-speed) signal voltage: 0 (3.30 V) driver type: 0 (driver type B)
andrew@piglet:~/git/flashbench$ sudo fdisk -l /dev/mmcblk0 Disk /dev/mmcblk0: 14.9 GiB, 16003366912 bytes, 31256576 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 8192 31256575 31248384 14.9G c W95 FAT32 (LBA)
andrew@piglet:~/git/flashbench$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 --count=100 align 4294967296 pre 398µs on 610µs post 398µs diff 212µs align 2147483648 pre 397µs on 617µs post 397µs diff 220µs align 1073741824 pre 397µs on 617µs post 398µs diff 220µs align 536870912 pre 397µs on 618µs post 397µs diff 221µs align 268435456 pre 396µs on 616µs post 397µs diff 220µs align 134217728 pre 372µs on 591µs post 398µs diff 206µs align 67108864 pre 388µs on 563µs post 350µs diff 194µs align 33554432 pre 390µs on 563µs post 351µs diff 193µs align 16777216 pre 349µs on 539µs post 351µs diff 189µs align 8388608 pre 346µs on 575µs post 400µs diff 203µs align 4194304 pre 343µs on 521µs post 343µs diff 178µs align 2097152 pre 342µs on 521µs post 344µs diff 178µs align 1048576 pre 343µs on 521µs post 344µs diff 177µs align 524288 pre 343µs on 521µs post 344µs diff 178µs align 262144 pre 343µs on 521µs post 343µs diff 178µs align 131072 pre 343µs on 520µs post 341µs diff 178µs align 65536 pre 343µs on 521µs post 343µs diff 178µs align 32768 pre 342µs on 519µs post 342µs diff 177µs align 16384 pre 343µs on 509µs post 342µs diff 166µs align 8192 pre 342µs on 342µs post 341µs diff -30ns align 4096 pre 344µs on 344µs post 343µs diff 709ns align 2048 pre 342µs on 342µs post 342µs diff 175ns
## 8 MiB eraseblocks, probably
andrew@piglet:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[8*1024*1024] --blocksize=$[16*1024] --open-au-nr=1 8MiB 16.1M/s 4MiB 16.4M/s 2MiB 16.3M/s 1MiB 16.1M/s 512KiB 16.2M/s 256KiB 16M/s 128KiB 16M/s 64KiB 15.5M/s 32KiB 12.5M/s 16KiB 7.14M/s
andrew@piglet:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[8*1024*1024] --blocksize=$[16*1024] --open-au-nr=10 8MiB 16.4M/s 4MiB 16.5M/s 2MiB 16.3M/s 1MiB 16.3M/s 512KiB 16.2M/s 256KiB 16M/s 128KiB 15.9M/s 64KiB 15.6M/s 32KiB 11.8M/s 16KiB 6.73M/s
andrew@piglet:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[8*1024*1024] --blocksize=$[16*1024] --open-au-nr=20 8MiB 16.4M/s 4MiB 16.2M/s 2MiB 9.37M/s 1MiB 7.06M/s ^C
andrew@piglet:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[8*1024*1024] --blocksize=$[16*1024] --open-au-nr=15 8MiB 16.3M/s 4MiB 15.8M/s 2MiB 9.87M/s 1MiB 7.01M/s 512KiB 4.77M/s 256KiB 2.94M/s ^C
andrew@piglet:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[8*1024*1024] --blocksize=$[16*1024] --open-au-nr=12 8MiB 16.4M/s 4MiB 16.3M/s 2MiB 16.4M/s 1MiB 16.3M/s 512KiB 16.4M/s ^C
andrew@piglet:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[8*1024*1024] --blocksize=$[16*1024] --open-au-nr=14 8MiB 16.4M/s 4MiB 16.4M/s 2MiB 16.4M/s 1MiB 16.4M/s 512KiB 16.3M/s 256KiB 16.3M/s 128KiB 16.1M/s ^C
## 14 open-au
andrew@piglet:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[8*1024*1024] --blocksize=$[16*1024] --random --open-au-nr=1 8MiB 16.6M/s 4MiB 16.1M/s 2MiB 16.4M/s 1MiB 16.4M/s 512KiB 16.4M/s 256KiB 16.1M/s 128KiB 16.1M/s 64KiB 15.7M/s 32KiB 12.1M/s 16KiB 6.32M/s
andrew@piglet:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[8*1024*1024] --blocksize=$[16*1024] --random --open-au-nr=14 8MiB 16.4M/s 4MiB 16.4M/s 2MiB 16.3M/s 1MiB 16.4M/s 512KiB 16.3M/s 256KiB 16.2M/s 128KiB 16.1M/s 64KiB 15.8M/s 32KiB 12.4M/s 16KiB 6.56M/s
## 14 open-au random, too
Not quite as good as the older top of the line Samsung controllers, but still quite good and clearly better than the "evo" version.
-Andrew
flashbench-results@lists.linaro.org