andrew@brick:~/git/flashbench$ head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$ ==> /sys/block/mmcblk0/device/block <== ==> /sys/block/mmcblk0/device/cid <== 1b534d303030303010592232db00d600 ==> /sys/block/mmcblk0/device/csd <== 400e00325b5900003a917f800a400000 ==> /sys/block/mmcblk0/device/date <== 06/2013 ==> /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 <== 0235000000000000 ==> /sys/block/mmcblk0/device/serial <== 0x592232db ==> /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
andrew@brick:~/git/flashbench$ sudo fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 7861 MB, 7861174272 bytes, 15353856 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 Disk label type: dos Disk identifier: 0x00000000
Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 15353855 7672832 b W95 FAT32
andrew@brick:~/git/flashbench$ factor 7861174272 7861174272: 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 7 7 17
andrew@brick:~/git/flashbench$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 --count=100 align 2147483648 pre 391µs on 476µs post 453µs diff 54.1µs align 1073741824 pre 394µs on 478µs post 454µs diff 54.7µs align 536870912 pre 392µs on 477µs post 454µs diff 54µs align 268435456 pre 391µs on 476µs post 453µs diff 53.3µs align 134217728 pre 383µs on 460µs post 469µs diff 34.3µs align 67108864 pre 366µs on 444µs post 451µs diff 35.4µs align 33554432 pre 366µs on 443µs post 451µs diff 34.8µs align 16777216 pre 366µs on 444µs post 451µs diff 35.7µs align 8388608 pre 374µs on 463µs post 461µs diff 45.1µs align 4194304 pre 373µs on 466µs post 458µs diff 50.6µs align 2097152 pre 385µs on 480µs post 472µs diff 51µs align 1048576 pre 383µs on 481µs post 476µs diff 51.1µs align 524288 pre 383µs on 452µs post 471µs diff 24.5µs align 262144 pre 380µs on 451µs post 475µs diff 23.7µs align 131072 pre 383µs on 451µs post 471µs diff 24µs align 65536 pre 382µs on 451µs post 474µs diff 23.2µs align 32768 pre 384µs on 451µs post 469µs diff 24.6µs align 16384 pre 381µs on 451µs post 475µs diff 23µs align 8192 pre 379µs on 445µs post 465µs diff 22.8µs align 4096 pre 427µs on 422µs post 415µs diff 764ns align 2048 pre 450µs on 445µs post 439µs diff 671ns
## Looks like 1 MiB erase blocks
andrew@brick:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[1024*1024] --blocksize=$[8*1024] --open-au-nr=1 1MiB 2.94M/s 512KiB 4.96M/s 256KiB 7.78M/s 128KiB 8.53M/s 64KiB 4.25M/s 32KiB 3.16M/s 16KiB 6.13M/s 8KiB 4.25M/s
andrew@brick:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[1024*1024] --blocksize=$[8*1024] --open-au-nr=2 1MiB 2.51M/s 512KiB 8.78M/s 256KiB 8.7M/s 128KiB 8.74M/s 64KiB 8.64M/s 32KiB 8.2M/s 16KiB 6.77M/s 8KiB 4.27M/s
andrew@brick:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[1024*1024] --blocksize=$[8*1024] --open-au-nr=3 1MiB 1.67M/s 512KiB 1.63M/s 256KiB 1.07M/s 128KiB 517K/s 64KiB 397K/s 32KiB 366K/s 16KiB 364K/s 8KiB 2.61M/s
## 2 linear open-au
andrew@brick:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[1024*1024] --blocksize=$[8*1024] --random --open-au-nr=1 1MiB 1.51M/s 512KiB 7.85M/s 256KiB 8.61M/s 128KiB 1.66M/s 64KiB 7.54M/s 32KiB 7.97M/s 16KiB 6.51M/s 8KiB 4.09M/s
andrew@brick:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[1024*1024] --blocksize=$[8*1024] --random --open-au-nr=2 1MiB 8.72M/s 512KiB 8.81M/s 256KiB 8.55M/s 128KiB 8.71M/s 64KiB 8.59M/s 32KiB 8.15M/s 16KiB 6.5M/s 8KiB 4.13M/s
andrew@brick:~/git/flashbench$ sudo ./flashbench /dev/mmcblk0 --open-au --erasesize=$[1024*1024] --blocksize=$[8*1024] --random --open-au-nr=3 1MiB 1.7M/s 512KiB 1.31M/s 256KiB 936K/s 128KiB 635K/s 64KiB 384K/s 32KiB 360K/s 16KiB 364K/s 8KiB 2.15M/s
## 2 open-au random
andrew@brick:~/git/flashbench$ sudo ./flashbench --find-fat --erasesize=$[1024*1024] /dev/mmcblk0 1MiB 5.03M/s 4.93M/s 4.92M/s 6.34M/s 7.43M/s 7.46M/s 512KiB 6.91M/s 6.23M/s 6.18M/s 5.04M/s 6.23M/s 6.25M/s 256KiB 5.06M/s 6.2M/s 6.25M/s 4.94M/s 6.14M/s 6.2M/s 128KiB 5.04M/s 6.19M/s 6.19M/s 4.99M/s 6.2M/s 6.23M/s 64KiB 4.95M/s 6.19M/s 6.12M/s 4.99M/s 6.15M/s 6.26M/s 32KiB 4.16M/s 4.89M/s 4.79M/s 5.79M/s 7.63M/s 8.41M/s 16KiB 6.57M/s 6.52M/s 6.57M/s 6.58M/s 6.52M/s 6.45M/s
andrew@brick:~/git/flashbench$ sudo ./flashbench --find-fat --erasesize=$[1024*1024] --fat-nr=16 /dev/mmcblk0 1MiB 5.08M/s 4.94M/s 4.9M/s 6.36M/s 7.45M/s 7.57M/s 6.4M/s 6.03M/s 6.24M/s 5.44M/s 6.27M/s 6.17M/s 5.47M/s 6.25M/s 6.17M/s 5.36M/s 512KiB 6.04M/s 6.21M/s 7.21M/s 4.08M/s 2.82M/s 4.09M/s 4.64M/s 5.3M/s 6.04M/s 6.23M/s 5.46M/s 6.23M/s 6.19M/s 5.39M/s 6.26M/s 6.14M/s 256KiB 5.4M/s 6.27M/s 6.27M/s 3.85M/s 2.84M/s 4.02M/s 4.78M/s 5.17M/s 6.26M/s 6.21M/s 5.47M/s 6.17M/s 6.26M/s 5.4M/s 6.2M/s 6.27M/s 128KiB 4.66M/s 6.27M/s 6.21M/s 3.89M/s 2.79M/s 4.15M/s 4.71M/s 5.31M/s 6.19M/s 6.24M/s 5.46M/s 6.05M/s 6.25M/s 5.51M/s 6.24M/s 6.21M/s 64KiB 5.44M/s 6.24M/s 6.13M/s 3.79M/s 2.82M/s 4.06M/s 4.71M/s 5.26M/s 6.28M/s 6.27M/s 5.42M/s 6.21M/s 6.27M/s 5.45M/s 6.15M/s 6.24M/s 32KiB 4.38M/s 4.71M/s 4.83M/s 6.78M/s 8.47M/s 8.43M/s 8.44M/s 8.14M/s 8.28M/s 8.66M/s 8.85M/s 8.36M/s 3.9M/s 2.77M/s 4.15M/s 4.7M/s 16KiB 2.46M/s 3.57M/s 5.92M/s 6.44M/s 6.43M/s 6.38M/s 6.4M/s 6.43M/s 6.43M/s 6.84M/s 6.83M/s 6.86M/s 4.89M/s 3.35M/s 3.28M/s 4.76M/s
## No special fat area really stands out
On 08/23/13 14:50, Andrew Bradford wrote:
andrew@brick:~/git/flashbench$ sudo ./flashbench --find-fat --erasesize=$[1024*1024] --fat-nr=16 /dev/mmcblk0 1MiB 5.08M/s 4.94M/s 4.9M/s 6.36M/s 7.45M/s 7.57M/s 6.4M/s 6.03M/s 6.24M/s 5.44M/s 6.27M/s 6.17M/s 5.47M/s 6.25M/s 6.17M/s 5.36M/s 512KiB 6.04M/s 6.21M/s 7.21M/s 4.08M/s 2.82M/s 4.09M/s 4.64M/s 5.3M/s 6.04M/s 6.23M/s 5.46M/s 6.23M/s 6.19M/s 5.39M/s 6.26M/s 6.14M/s 256KiB 5.4M/s 6.27M/s 6.27M/s 3.85M/s 2.84M/s 4.02M/s 4.78M/s 5.17M/s 6.26M/s 6.21M/s 5.47M/s 6.17M/s 6.26M/s 5.4M/s 6.2M/s 6.27M/s 128KiB 4.66M/s 6.27M/s 6.21M/s 3.89M/s 2.79M/s 4.15M/s 4.71M/s 5.31M/s 6.19M/s 6.24M/s 5.46M/s 6.05M/s 6.25M/s 5.51M/s 6.24M/s 6.21M/s 64KiB 5.44M/s 6.24M/s 6.13M/s 3.79M/s 2.82M/s 4.06M/s 4.71M/s 5.26M/s 6.28M/s 6.27M/s 5.42M/s 6.21M/s 6.27M/s 5.45M/s 6.15M/s 6.24M/s 32KiB 4.38M/s 4.71M/s 4.83M/s 6.78M/s 8.47M/s 8.43M/s 8.44M/s 8.14M/s 8.28M/s 8.66M/s 8.85M/s 8.36M/s 3.9M/s 2.77M/s 4.15M/s 4.7M/s 16KiB 2.46M/s 3.57M/s 5.92M/s 6.44M/s 6.43M/s 6.38M/s 6.4M/s 6.43M/s 6.43M/s 6.84M/s 6.83M/s 6.86M/s 4.89M/s 3.35M/s 3.28M/s 4.76M/s
## No special fat area really stands out
After review, the 5th erase block is actually slower and is the start of the fat partition, so that could be it. Same for the 4 GB version.
-Andrew
flashbench-results@lists.linaro.org