On Wednesday 28 March 2012, Santiago Castillo Oli wrote:
With this results i'm not sure about the 30 erase blocks.
what do you think?
I think the 4MB test pretty clearly shows that 30 erase blocks is right.
However, I think the erase block size might still be wrong: By default, flashbench just uses every fourth erase block, so if the actual size is 8MB or larger, testing with 31 1MB blocks each 4MB apart will only use 16 erase blocks in the end.
Can you try with the patch below applied? If you use this, you should see the same (drastic) effect that the 4MB test showed for smaller sizes, too.
When you run the test with "--random", you should be able to find out the actual erase block size. E.g. assuming that 8MB is right, you will see the cutoff between 30 and 31 erase blocks when testing 8MB, but between 15 and 16 when testing 16 MB blocks.
Arnd
--- a/flashbench.c +++ b/flashbench.c @@ -538,7 +544,7 @@ static int try_open_au(struct device *dev, unsigned int erasesize, { (random ? O_OFF_RAND : O_OFF_LIN), erasesize / blocksize, -1}, {O_REDUCE, .aggregate = A_AVERAGE}, - {O_OFF_RAND, count, 4 * erasesize}, {O_WRITE_RAND}, + {O_OFF_RAND, count, 192 * erasesize}, {O_WRITE_RAND}, {O_NEWLINE}, {O_END}, {O_END},