Hi!
I've started using that great tool to figure out how I should partition some cards but I'm not sure how to continue after the first results I've got and I'd like some guidance.
Also I'd like to know if the card reader can influence the results since I've tested with 2 different laptops internal SD card readers and noticed differences in the times. I also checked with 'dd' the speeds and found the writing speed limited up to less than 10 MiB/s and a reading speed limited up to 14 MiB/s or so with chunks of 32 kiB and 4 MiB. Eventually I checked on an Android phone and got the writing speed limited up to 11 MiB/s or so and the reading speed limited up to less than 20 MiB/s. To make sure I compiled flashbench to run on the phone and also found different times than on the laptops.
# # Product Page #
http://www.transcend-info.com/products/Catlist.asp?LangNo=0&modno=320
# # Details #
$ head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$ ==> /sys/block/mmcblk0/device/block <== ==> /sys/block/mmcblk0/device/cid <== 1b534d30303030301078944a9000c100 ==> /sys/block/mmcblk0/device/csd <== 400e00325b590000e9e57f800a404000 ==> /sys/block/mmcblk0/device/date <== 01/2012 ==> /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 ## i.e. "SM" ==> /sys/block/mmcblk0/device/power <== ==> /sys/block/mmcblk0/device/preferred_erase_size <== 4194304 ==> /sys/block/mmcblk0/device/scr <== 02b5800200000000 ==> /sys/block/mmcblk0/device/serial <== 0x78944a90 ==> /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
# # Size #
$ cat /sys/block/mmcblk0/device/block/mmcblk0/size 61315072
# # Factor #
$ factor 61315072 61315072: 2 2 2 2 2 2 2 2 2 2 2 7 7 13 47
Does it mean that the erase block size could be 7 MiB?
# # Guess erase block and page sizes #
## on Dell E6400
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 198µs on 210µs post 199µs diff 11.3µs align 4294967296 pre 185µs on 202µs post 187µs diff 15.6µs align 2147483648 pre 184µs on 197µs post 184µs diff 12.9µs align 1073741824 pre 187µs on 202µs post 187µs diff 15.7µs align 536870912 pre 184µs on 197µs post 184µs diff 13.5µs align 268435456 pre 217µs on 234µs post 187µs diff 32.1µs align 134217728 pre 218µs on 247µs post 200µs diff 38.7µs align 67108864 pre 219µs on 251µs post 202µs diff 40.5µs align 33554432 pre 219µs on 267µs post 216µs diff 48.9µs align 16777216 pre 208µs on 256µs post 216µs diff 43.7µs align 8388608 pre 203µs on 242µs post 208µs diff 36.5µs align 4194304 pre 212µs on 260µs post 216µs diff 45.8µs align 2097152 pre 205µs on 242µs post 207µs diff 36.1µs align 1048576 pre 212µs on 257µs post 217µs diff 42.4µs align 524288 pre 203µs on 240µs post 206µs diff 36.1µs align 262144 pre 211µs on 257µs post 217µs diff 43.2µs align 131072 pre 205µs on 241µs post 207µs diff 35.5µs align 65536 pre 209µs on 257µs post 217µs diff 43.7µs align 32768 pre 201µs on 239µs post 207µs diff 35.3µs align 16384 pre 213µs on 235µs post 210µs diff 23.9µs ## align 8192 pre 211µs on 213µs post 214µs diff 868ns align 4096 pre 212µs on 212µs post 217µs diff -2843ns align 2048 pre 214µs on 212µs post 214µs diff -1985ns
## on Lenovo T400
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 307µs on 737µs post 358µs diff 405µs align 4294967296 pre 283µs on 724µs post 348µs diff 409µs align 2147483648 pre 300µs on 712µs post 371µs diff 377µs align 1073741824 pre 331µs on 857µs post 353µs diff 515µs align 536870912 pre 340µs on 872µs post 354µs diff 525µs align 268435456 pre 342µs on 843µs post 359µs diff 493µs align 134217728 pre 292µs on 839µs post 364µs diff 511µs align 67108864 pre 316µs on 843µs post 357µs diff 507µs align 33554432 pre 344µs on 832µs post 367µs diff 476µs align 16777216 pre 323µs on 862µs post 370µs diff 515µs align 8388608 pre 324µs on 855µs post 365µs diff 510µs align 4194304 pre 308µs on 772µs post 340µs diff 448µs align 2097152 pre 334µs on 861µs post 367µs diff 510µs align 1048576 pre 301µs on 794µs post 355µs diff 466µs align 524288 pre 325µs on 830µs post 352µs diff 492µs align 262144 pre 319µs on 795µs post 353µs diff 459µs align 131072 pre 314µs on 863µs post 389µs diff 511µs align 65536 pre 317µs on 813µs post 339µs diff 485µs align 32768 pre 311µs on 845µs post 364µs diff 507µs ## align 16384 pre 323µs on 464µs post 346µs diff 130µs ## align 8192 pre 331µs on 338µs post 330µs diff 7.52µs align 4096 pre 350µs on 357µs post 344µs diff 10.1µs align 2048 pre 359µs on 354µs post 352µs diff -1566ns
## on Samsung GT-I8150
# ./flashbench -a /dev/block/mmcblk1 --blocksize=1024 align 8589934592 pre 222µs on 318µs post 283µs diff 65.4µs align 4294967296 pre 227µs on 318µs post 279µs diff 65.4µs align 2147483648 pre 231µs on 318µs post 275µs diff 65.4µs align 1073741824 pre 279µs on 440µs post 405µs diff 98.1µs align 536870912 pre 231µs on 340µs post 371µs diff 39.2µs align 268435456 pre 240µs on 353µs post 288µs diff 89.4µs align 134217728 pre 253µs on 506µs post 344µs diff 207µs align 67108864 pre 231µs on 458µs post 292µs diff 196µs align 33554432 pre 257µs on 475µs post 305µs diff 194µs align 16777216 pre 235µs on 475µs post 318µs diff 198µs align 8388608 pre 218µs on 453µs post 310µs diff 190µs align 4194304 pre 248µs on 458µs post 296µs diff 185µs align 2097152 pre 231µs on 445µs post 296µs diff 181µs align 1048576 pre 244µs on 501µs post 327µs diff 216µs align 524288 pre 240µs on 449µs post 301µs diff 179µs align 262144 pre 231µs on 453µs post 310µs diff 183µs align 131072 pre 227µs on 453µs post 301µs diff 190µs align 65536 pre 253µs on 453µs post 310µs diff 172µs align 32768 pre 244µs on 453µs post 327µs diff 168µs ## align 16384 pre 253µs on 371µs post 318µs diff 85µs ## align 8192 pre 283µs on 257µs post 240µs diff -4359ns align 4096 pre 270µs on 262µs post 253µs diff 1ns align 2048 pre 275µs on 275µs post 275µs diff 0ns
Should I understand that it has 16 kiB pages with multi-plane accesses to read two pages simultaneously?
What do you suggest? How should I continue and with which device?
Thanks and regards,
Victor
On Monday 25 June 2012, Victor wrote:
Hi!
I've started using that great tool to figure out how I should partition some cards but I'm not sure how to continue after the first results I've got and I'd like some guidance.
Also I'd like to know if the card reader can influence the results since I've tested with 2 different laptops internal SD card readers and noticed differences in the times. I also checked with 'dd' the speeds and found the writing speed limited up to less than 10 MiB/s and a reading speed limited up to 14 MiB/s or so with chunks of 32 kiB and 4 MiB.
The exact numbers are not what flashbench is interested in. What you should see with each of your card readers is the behavior of the card when applying different write patterns with the --open-au test.
Eventually I checked on an Android phone and got the writing speed limited up to 11 MiB/s or so and the reading speed limited up to less than 20 MiB/s. To make sure I compiled flashbench to run on the phone and also found different times than on the laptops.
Right, this is expected.
==> /sys/block/mmcblk0/device/date <== 01/2012 ==> /sys/block/mmcblk0/device/manfid <== 0x00001b ==> /sys/block/mmcblk0/device/name <== 00000 ==> /sys/block/mmcblk0/device/oemid <== 0x534d ## i.e. "SM"
This is very useful data point, it indicates that the controller was made by Samsung. Transcend is known to have a number of suppliers, but Samsung is a frequent one.
# # Size #
$ cat /sys/block/mmcblk0/device/block/mmcblk0/size 61315072
# # Factor #
$ factor 61315072 61315072: 2 2 2 2 2 2 2 2 2 2 2 7 7 13 47
Does it mean that the erase block size could be 7 MiB?
I don't think there are any cards with an erase block size of 7 MB, so I don't know what's going on here.
However, this is the same size that I have seen on one of the best cards ever a Samsung 32GB class 10 microsdhc, so I would assume that this one is very similar.
Can you copy the exact writing on the backside (serial number, made-in korea, ...) here so we can compare those?
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 198µs on 210µs post 199µs diff 11.3µs align 4294967296 pre 185µs on 202µs post 187µs diff 15.6µs align 2147483648 pre 184µs on 197µs post 184µs diff 12.9µs align 1073741824 pre 187µs on 202µs post 187µs diff 15.7µs align 536870912 pre 184µs on 197µs post 184µs diff 13.5µs align 268435456 pre 217µs on 234µs post 187µs diff 32.1µs align 134217728 pre 218µs on 247µs post 200µs diff 38.7µs align 67108864 pre 219µs on 251µs post 202µs diff 40.5µs align 33554432 pre 219µs on 267µs post 216µs diff 48.9µs align 16777216 pre 208µs on 256µs post 216µs diff 43.7µs align 8388608 pre 203µs on 242µs post 208µs diff 36.5µs align 4194304 pre 212µs on 260µs post 216µs diff 45.8µs align 2097152 pre 205µs on 242µs post 207µs diff 36.1µs align 1048576 pre 212µs on 257µs post 217µs diff 42.4µs align 524288 pre 203µs on 240µs post 206µs diff 36.1µs align 262144 pre 211µs on 257µs post 217µs diff 43.2µs align 131072 pre 205µs on 241µs post 207µs diff 35.5µs align 65536 pre 209µs on 257µs post 217µs diff 43.7µs align 32768 pre 201µs on 239µs post 207µs diff 35.3µs align 16384 pre 213µs on 235µs post 210µs diff 23.9µs ## align 8192 pre 211µs on 213µs post 214µs diff 868ns align 4096 pre 212µs on 212µs post 217µs diff -2843ns align 2048 pre 214µs on 212µs post 214µs diff -1985ns
## on Lenovo T400
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 307µs on 737µs post 358µs diff 405µs align 4294967296 pre 283µs on 724µs post 348µs diff 409µs align 2147483648 pre 300µs on 712µs post 371µs diff 377µs align 1073741824 pre 331µs on 857µs post 353µs diff 515µs align 536870912 pre 340µs on 872µs post 354µs diff 525µs align 268435456 pre 342µs on 843µs post 359µs diff 493µs align 134217728 pre 292µs on 839µs post 364µs diff 511µs align 67108864 pre 316µs on 843µs post 357µs diff 507µs align 33554432 pre 344µs on 832µs post 367µs diff 476µs align 16777216 pre 323µs on 862µs post 370µs diff 515µs align 8388608 pre 324µs on 855µs post 365µs diff 510µs align 4194304 pre 308µs on 772µs post 340µs diff 448µs align 2097152 pre 334µs on 861µs post 367µs diff 510µs align 1048576 pre 301µs on 794µs post 355µs diff 466µs align 524288 pre 325µs on 830µs post 352µs diff 492µs align 262144 pre 319µs on 795µs post 353µs diff 459µs align 131072 pre 314µs on 863µs post 389µs diff 511µs align 65536 pre 317µs on 813µs post 339µs diff 485µs align 32768 pre 311µs on 845µs post 364µs diff 507µs ## align 16384 pre 323µs on 464µs post 346µs diff 130µs ## align 8192 pre 331µs on 338µs post 330µs diff 7.52µs align 4096 pre 350µs on 357µs post 344µs diff 10.1µs align 2048 pre 359µs on 354µs post 352µs diff -1566ns
## on Samsung GT-I8150
# ./flashbench -a /dev/block/mmcblk1 --blocksize=1024 align 8589934592 pre 222µs on 318µs post 283µs diff 65.4µs align 4294967296 pre 227µs on 318µs post 279µs diff 65.4µs align 2147483648 pre 231µs on 318µs post 275µs diff 65.4µs align 1073741824 pre 279µs on 440µs post 405µs diff 98.1µs align 536870912 pre 231µs on 340µs post 371µs diff 39.2µs align 268435456 pre 240µs on 353µs post 288µs diff 89.4µs align 134217728 pre 253µs on 506µs post 344µs diff 207µs align 67108864 pre 231µs on 458µs post 292µs diff 196µs align 33554432 pre 257µs on 475µs post 305µs diff 194µs align 16777216 pre 235µs on 475µs post 318µs diff 198µs align 8388608 pre 218µs on 453µs post 310µs diff 190µs align 4194304 pre 248µs on 458µs post 296µs diff 185µs align 2097152 pre 231µs on 445µs post 296µs diff 181µs align 1048576 pre 244µs on 501µs post 327µs diff 216µs align 524288 pre 240µs on 449µs post 301µs diff 179µs align 262144 pre 231µs on 453µs post 310µs diff 183µs align 131072 pre 227µs on 453µs post 301µs diff 190µs align 65536 pre 253µs on 453µs post 310µs diff 172µs align 32768 pre 244µs on 453µs post 327µs diff 168µs ## align 16384 pre 253µs on 371µs post 318µs diff 85µs ## align 8192 pre 283µs on 257µs post 240µs diff -4359ns align 4096 pre 270µs on 262µs post 253µs diff 1ns align 2048 pre 275µs on 275µs post 275µs diff 0ns
Should I understand that it has 16 kiB pages with multi-plane accesses to read two pages simultaneously?
That would be a reasonable assumption, but the test you did so far is only the (non-destructive) read-only test. Doing the write tests using --open-au is the much more interesting one, but that will overwrite any data you have on the card, so don't do it if you need the data.
What do you suggest? How should I continue and with which device?
It's definitely interesting that you see big differences between the three card readers but in the end that is not the most interesting result, so any one would do.
What I'd like to see is the result of this test:
sudo ./flashbench --open-au --open-au-nr=1 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] sudo ./flashbench --open-au --open-au-nr=30 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] sudo ./flashbench --open-au --open-au-nr=31 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024]
The similar card that I have can handle 30 erase blocks being written concurrently, it would be good to know if the same is true for your card.
Arnd
Hi Arnd,
Thank you for your quick reply and guidance.
I don't think there are any cards with an erase block size of 7 MB, so I don't know what's going on here.
However, this is the same size that I have seen on one of the best cards ever a Samsung 32GB class 10 microsdhc, so I would assume that this one is very similar.
Are you referring to the "essential" microSDHC 32GB (MB-MSBGA) that you mentioned in some previous post in the mailing list?
What should be the the erase block size then? 1.5 MiB or some multiple?
Can you copy the exact writing on the backside (serial number, made-in korea, ...) here so we can compare those?
Indeed it was made in Korea! Here is what is written on its backside:
MMBTR32GUBCA - AB S N3TVDD9I 203 Made in KOREA
It's definitely interesting that you see big differences between the three card readers but in the end that is not the most interesting result, so any one would do.
I'm continuing with the phone then...
What I'd like to see is the result of this test:
sudo ./flashbench --open-au --open-au-nr=1 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] sudo ./flashbench --open-au --open-au-nr=30 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] sudo ./flashbench --open-au --open-au-nr=31 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024]
The similar card that I have can handle 30 erase blocks being written concurrently, it would be good to know if the same is true for your card.
While doing the first series of tests I noticed a change in the speeds for the bigger blocks that became faster so did a second series for which those speeds seem more consistent. I also included the time that 2nd one. Note that after I did 2 additional tests with the --open-au-nr=1 and it seems that what I observed in the first series looks to be some singularity since I continued having consistency in the speeds in continuation with the 2nd series with values staying at around 8M/s for the 64KiB one and 9M/s or even more for the bigger ones.
The test with 31 open erase blocks seems to show a neat degradation, doesn't it? (slower speed for the small blocks and more than 4 minutes to complete)
Could we conclude that the indeed it can handle 30 concurrent open erase blocks even though it took more than 1 minute and a half?
# # First series #
# ./flashbench --open-au --open-au-nr=1 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 706K/s 256KiB 3.57M/s 128KiB 3.48M/s 64KiB 3.41M/s 32KiB 3.27M/s 16KiB 894K/s 8KiB 456K/s 4KiB 226K/s 2KiB 363K/s 1KiB 335K/s
# ./flashbench --open-au --open-au-nr=30 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 1.2M/s 256KiB 4.38M/s 128KiB 10.8M/s 64KiB 9.44M/s 32KiB 8.44M/s 16KiB 3.48M/s 8KiB 2.44M/s 4KiB 1.54M/s 2KiB 414K/s 1KiB 342K/s
# ./flashbench --open-au --open-au-nr=31 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 8.53M/s 256KiB 7.68M/s 128KiB 6.91M/s 64KiB 5.51M/s 32KiB 3.7M/s 16KiB 2.22M/s 8KiB 993K/s 4KiB 523K/s 2KiB 263K/s ^C ## I interrupted it since it was taking too long time...
# # Second series with time #
# time ./flashbench --open-au --open-au-nr=1 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 9.39M/s 256KiB 9.21M/s 128KiB 9.6M/s 64KiB 8.01M/s 32KiB 6.3M/s 16KiB 4.58M/s 8KiB 2.68M/s 4KiB 1.32M/s 2KiB 544K/s 1KiB 321K/s
real 0m 5.68s user 0m 0.47s sys 0m 1.06s
# time ./flashbench --open-au --open-au-nr=30 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 8.89M/s 256KiB 8.54M/s 128KiB 9.37M/s 64KiB 8.07M/s 32KiB 6.01M/s 16KiB 5.23M/s 8KiB 3.14M/s 4KiB 1.49M/s 2KiB 723K/s 1KiB 344K/s
real 1m 39.40s user 0m 0.63s sys 0m 1.87s
# time ./flashbench --open-au --open-au-nr=31 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 8.78M/s 256KiB 8.76M/s 128KiB 7.46M/s 64KiB 5.47M/s 32KiB 3.74M/s 16KiB 2.24M/s 8KiB 999K/s 4KiB 519K/s 2KiB 264K/s 1KiB 133K/s
real 4m 15.09s user 0m 1.12s sys 0m 2.02s
Thanks,
Victor
On Wednesday 27 June 2012, Victor wrote:
Hi Arnd,
Thank you for your quick reply and guidance.
I don't think there are any cards with an erase block size of 7 MB, so I don't know what's going on here.
However, this is the same size that I have seen on one of the best cards ever a Samsung 32GB class 10 microsdhc, so I would assume that this one is very similar.
Are you referring to the "essential" microSDHC 32GB (MB-MSBGA) that you mentioned in some previous post in the mailing list?
Yes, that's the one.
What should be the the erase block size then? 1.5 MiB or some multiple?
I think it's 8 GB, but it's trying very hard to hide this.
Can you copy the exact writing on the backside (serial number, made-in korea, ...) here so we can compare those?
Indeed it was made in Korea! Here is what is written on its backside:
MMBTR32GUBCA - AB S N3TVDD9I 203 Made in KOREA
Mine is:
MMBTR32GUBCA-AB S 32GBUSD1 132 Made in Korea
This probably means that the first row is the product line, which is identical, but the second line seems to be OEM specific. It's a name for the samsung one (32 GB µSD 1) followed by what looks like a batch number, while the Transcend card has some completely different text, followed by that batch number.
What I'd like to see is the result of this test:
sudo ./flashbench --open-au --open-au-nr=1 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] sudo ./flashbench --open-au --open-au-nr=30 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] sudo ./flashbench --open-au --open-au-nr=31 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024]
The similar card that I have can handle 30 erase blocks being written concurrently, it would be good to know if the same is true for your card.
While doing the first series of tests I noticed a change in the speeds for the bigger blocks that became faster so did a second series for which those speeds seem more consistent. I also included the time that 2nd one. Note that after I did 2 additional tests with the --open-au-nr=1 and it seems that what I observed in the first series looks to be some singularity since I continued having consistency in the speeds in continuation with the 2nd series with values staying at around 8M/s for the 64KiB one and 9M/s or even more for the bigger ones.
The test with 31 open erase blocks seems to show a neat degradation, doesn't it? (slower speed for the small blocks and more than 4 minutes to complete)
Could we conclude that the indeed it can handle 30 concurrent open erase blocks even though it took more than 1 minute and a half?
Yes.
# # First series #
# ./flashbench --open-au --open-au-nr=1 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 706K/s 256KiB 3.57M/s 128KiB 3.48M/s 64KiB 3.41M/s 32KiB 3.27M/s 16KiB 894K/s 8KiB 456K/s 4KiB 226K/s 2KiB 363K/s 1KiB 335K/s
# ./flashbench --open-au --open-au-nr=30 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 1.2M/s 256KiB 4.38M/s 128KiB 10.8M/s 64KiB 9.44M/s 32KiB 8.44M/s 16KiB 3.48M/s 8KiB 2.44M/s 4KiB 1.54M/s 2KiB 414K/s 1KiB 342K/s
# ./flashbench --open-au --open-au-nr=31 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 8.53M/s 256KiB 7.68M/s 128KiB 6.91M/s 64KiB 5.51M/s 32KiB 3.7M/s 16KiB 2.22M/s 8KiB 993K/s 4KiB 523K/s 2KiB 263K/s ^C ## I interrupted it since it was taking too long time...
Very nice results for the 30 and 31 numbers. For comparison, this is what I get with my thinkpad:
$ sudo ./flashbench --open-au --open-au-nr=30 --erasesize=$[512 * 1024] --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] 512KiB 7.77M/s 256KiB 8.01M/s 128KiB 8.03M/s 64KiB 8.05M/s 32KiB 6.57M/s 16KiB 3.85M/s 8KiB 3.3M/s 4KiB 2.46M/s 2KiB 1.52M/s 1KiB 854K/s
$ sudo ./flashbench --open-au --open-au-nr=31 --erasesize=$[512 * 1024] --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] 512KiB 7.54M/s 256KiB 7.24M/s 128KiB 6.68M/s 64KiB 5.6M/s 32KiB 3.86M/s 16KiB 2.16M/s 8KiB 981K/s 4KiB 511K/s ^C
Again, I think this card is definitely a winner, it seems to be doing all the right things that you need to put an ext4 or btrfs file system on it.
I would still recommend buying the card with the Samsung label, which is a little bit cheaper in Germany (22€ instead of 27€) and is more likely to still be the same model when you buy another one. I've seen Transcend CF cards with identical labelling and production date in the past that have wildly different controllers in them, so I would not be surprised if the next one you buy in the same place was a Toshiba controller instead of the Samsung one. Anything that says "Made in Korea" is quite likely to actually be Samsung though.
Arnd
flashbench-results@lists.linaro.org