Hi,
I grabbed a new flash drive yesterday, so I'm trying to sort out the eraseblock size to format it properly. I grabbed this one because it was on sale and has a small form factor. I'm planning to format half of it as swap so that I can plug it in to my tegra 2 tablet while compiling software that requires additional RAM (seamonkey and firefox at least require extra RAM for linking libxul and I don't want to swap a lot on my internal flash or sdcard).
Anyway, here's what I got from fdisk and flashbench:
Disk /dev/sdc: 8166 MB, 8166703104 bytes 256 heads, 63 sectors/track, 989 cylinders, total 15950592 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 identifier: 0xc3072e18
Device Boot Start End Blocks Id System /dev/sdc1 * 56 15950591 7975268 c W95 FAT32 (LBA)
root@porteus:~/Downloads/flashbench-2e30b19# ./flashbench -a /dev/sdc --blocksize=1024 align 2147483648 pre 494µs on 491µs post 494µs diff -2812ns align 1073741824 pre 487µs on 491µs post 491µs diff 1.68µs align 536870912 pre 491µs on 492µs post 493µs diff 204ns align 268435456 pre 507µs on 528µs post 511µs diff 19.4µs align 134217728 pre 507µs on 526µs post 510µs diff 17.5µs align 67108864 pre 508µs on 524µs post 505µs diff 17.8µs align 33554432 pre 508µs on 547µs post 507µs diff 39.3µs align 16777216 pre 494µs on 510µs post 494µs diff 16.5µs align 8388608 pre 511µs on 531µs post 508µs diff 21.6µs align 4194304 pre 505µs on 530µs post 507µs diff 24µs align 2097152 pre 507µs on 526µs post 508µs diff 17.8µs align 1048576 pre 509µs on 534µs post 513µs diff 22.9µs align 524288 pre 508µs on 529µs post 507µs diff 21.5µs align 262144 pre 508µs on 527µs post 508µs diff 19µs align 131072 pre 510µs on 525µs post 512µs diff 13.9µs align 65536 pre 511µs on 531µs post 512µs diff 19.1µs align 32768 pre 509µs on 530µs post 506µs diff 22.1µs align 16384 pre 506µs on 531µs post 507µs diff 24.4µs align 8192 pre 505µs on 509µs post 511µs diff 1.13µs align 4096 pre 506µs on 509µs post 504µs diff 4.08µs align 2048 pre 509µs on 508µs post 506µs diff 882ns
root@porteus:~/Downloads/flashbench-2e30b19# ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc 4MiB 26.1M/s 2MiB 22.6M/s 1MiB 22.9M/s 512KiB 21M/s 256KiB 19.9M/s root@porteus:~/Downloads/flashbench-2e30b19# ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc --open-au-nr=2 4MiB 22.8M/s 2MiB 22.8M/s 1MiB 22.8M/s 512KiB 21.7M/s 256KiB 19.8M/s root@porteus:~/Downloads/flashbench-2e30b19# ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc --open-au-nr=3 4MiB 10.4M/s 2MiB 10.2M/s 1MiB 23.3M/s 512KiB 21.2M/s 256KiB 20.2M/s root@porteus:~/Downloads/flashbench-2e30b19# ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc --open-au-nr=4 4MiB 4.28M/s 2MiB 2.05M/s 1MiB 2.94M/s 512KiB 2.56M/s 256KiB 2.97M/s root@porteus:~/Downloads/flashbench-2e30b19#
root@porteus:/mnt/sdb2/flashbench-2e30b19# ./flashbench -O --erasesize=$[2 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc --open-au-nr=4 --random 2MiB 2.19M/s 1MiB 1.29M/s 512KiB 1.75M/s ^C^[[A root@porteus:/mnt/sdb2/flashbench-2e30b19# ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc --open-au-nr=4 --random 4MiB 2.53M/s 2MiB 2.11M/s 1MiB 2.97M/s 512KiB 2.6M/s 256KiB 1.44M/s root@porteus:/mnt/sdb2/flashbench-2e30b19# ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc --open-au-nr=3 --random 4MiB 4.27M/s 2MiB 6.6M/s 1MiB 10.6M/s 512KiB 6.56M/s 256KiB 10.1M/s root@porteus:/mnt/sdb2/flashbench-2e30b19# ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc --open-au-nr=2 --random 4MiB 4.9M/s 2MiB 8.12M/s 1MiB 8.43M/s 512KiB 4.91M/s 256KiB 21.5M/s root@porteus:/mnt/sdb2/flashbench-2e30b19# ./flashbench -O --erasesize=$[4 * 1024 * 1024] --blocksize=$[256 * 1024] /dev/sdc --open-au-nr=1 --random 4MiB 5.1M/s 2MiB 4.82M/s 1MiB 26.7M/s 512KiB 5.01M/s 256KiB 4.72M/s root@porteus:/mnt/sdb2/flashbench-2e30b19#
I had a hard time determining the eraseblock size from the '-a' test; the numbers seemed to keep jumping around on me. I assumed that I was dealing with 4mb eraseblocks (but was kind of a guess on my part, since most of my other devices are 4mb), and testing the open-au's seemed to confirm this (in my mind anyway) as going to 8, 16, or 32 MB erasesizes slowed down quite a bit, even with only one au.
I'd consider myself a novice at all of this; if you'd like me to run some additional testing with different parameters, just let me know. For now, I'm assuming 4mb eraseblocks, with no offset (not sure how to confirm that), 16kb page size, with 2 linear and 2 or 3 random au's.
Thanks!
flashbench-results@lists.linaro.org