Excerpts from Arnd Bergmann's message of Thu Apr 07 16:23:05 +0200 2011:
- It is possible that this card has a fully log-structured approach,
which would mean that there actually is no cut-off but that it simply gets gradually slower with more open AUs. I have no programmatic way to find these yet.
A quick test with logarithmic scale suggests this might indeed be the case:
flashtest@flatty:~$ for NUMAU in 2 2 4 4 8 8 16 16 32 32 64 64 128 128 256 256 ; do echo Trying $NUMAU open AUs: ; ~/flashbench/flashbench --open-au --open-au-nr=$NUMAU --erasesize=1572864 --blocksize=1572864 --random /dev/mmcblk[0-9] ; done Trying 2 open AUs: 1.5MiB 6.42M/s Trying 2 open AUs: 1.5MiB 5.97M/s Trying 4 open AUs: 1.5MiB 6.23M/s Trying 4 open AUs: 1.5MiB 4.93M/s Trying 8 open AUs: 1.5MiB 5.07M/s Trying 8 open AUs: 1.5MiB 5.03M/s Trying 16 open AUs: 1.5MiB 3.65M/s Trying 16 open AUs: 1.5MiB 3.78M/s Trying 32 open AUs: 1.5MiB 2.59M/s Trying 32 open AUs: 1.5MiB 2.86M/s Trying 64 open AUs: 1.5MiB 2.33M/s Trying 64 open AUs: 1.5MiB 2.51M/s Trying 128 open AUs: 1.5MiB 2.35M/s Trying 128 open AUs: 1.5MiB 2.36M/s Trying 256 open AUs: 1.5MiB 2.33M/s Trying 256 open AUs: 1.5MiB 2.33M/s
For runtime reasons I've restricted the test to full EBS writes and only two runs per number. I can do a more extensive test if you think it might be worth it (e.g. to do a plot with error bars).
BTW, is there a way to ensure that the individual tests are independent (other than mechanically ejecting and reinserting the card which I was too lazy to do so far)?
Sascha