Not sure if anyone's still reading this list, but this seems to be a new situation and I'd like to get some more thoughts on this.
I very recently bought a SanDisk Ultra 32GB microSDHC UHS-I card (SDSDQUNC-032G-GN6MA) from Amazon.com (directly, not a third-party seller on Amazon). The card I received is the first SanDisk card I've seen to report an oemid other than 0x5344 "SD", in this case 0x5054 "PT":
$ cat /sys/block/mmcblk0/device/oemid 0x5054 $ cat /sys/block/mmcblk0/device/manfid 0x000003 $ cat /sys/block/mmcblk0/device/name SL32G $ cat /sys/block/mmcblk0/device/fwrev 0x0 $ cat /sys/block/mmcblk0/device/hwrev 0x3 $ cat /sys/block/mmcblk0/device/serial 0xdacb171b
It's also a slightly smaller card than I'd expect based on previous SanDisk 32 GB card purchases (though that could just be additional flash set aside for the FTL to work with), and reports a different address than my older SanDisk SD cards (which all report address aaaa):
mmc0: new high speed SDHC card at address 0007 mmcblk0: mmc0:0007 SL32G 28.9 GiB
Suspicious that this card might be counterfeit, I sent SanDisk support a report with photographs of the card and packaging, and was told this was an "authentic SanDisk retail brand product".
flashbench -a reports the following results, which I interpret as a 4 MB eraseblock size and 16 KB pages:
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 650µs on 1.01ms post 687µs diff 342µs align 4294967296 pre 643µs on 976µs post 685µs diff 312µs align 2147483648 pre 595µs on 963µs post 651µs diff 340µs align 1073741824 pre 619µs on 978µs post 652µs diff 343µs align 536870912 pre 620µs on 975µs post 660µs diff 335µs align 268435456 pre 598µs on 955µs post 643µs diff 335µs align 134217728 pre 633µs on 971µs post 665µs diff 322µs align 67108864 pre 620µs on 979µs post 679µs diff 330µs align 33554432 pre 604µs on 975µs post 659µs diff 343µs align 16777216 pre 624µs on 962µs post 674µs diff 313µs align 8388608 pre 609µs on 956µs post 678µs diff 313µs align 4194304 pre 614µs on 980µs post 682µs diff 332µs align 2097152 pre 630µs on 942µs post 673µs diff 291µs align 1048576 pre 594µs on 912µs post 667µs diff 281µs align 524288 pre 639µs on 926µs post 660µs diff 277µs align 262144 pre 612µs on 912µs post 666µs diff 273µs align 131072 pre 618µs on 921µs post 649µs diff 288µs align 65536 pre 588µs on 896µs post 652µs diff 276µs align 32768 pre 582µs on 901µs post 631µs diff 295µs align 16384 pre 582µs on 888µs post 631µs diff 281µs align 8192 pre 602µs on 776µs post 645µs diff 152µs align 4096 pre 612µs on 842µs post 661µs diff 205µs align 2048 pre 649µs on 639µs post 639µs diff -4751ns
The controller appears to be able to keep nine eraseblocks open at once in random mode:
$ sudo ./flashbench -O /dev/mmcblk0 --open-au-nr=1 --random 4MiB 2.12M/s 2MiB 2.32M/s 1MiB 7.58M/s 512KiB 2.18M/s 256KiB 2.25M/s 128KiB 2.17M/s 64KiB 2.18M/s 32KiB 2.04M/s 16KiB 1.79M/s
$ sudo ./flashbench -O /dev/mmcblk0 --open-au-nr=2 --random 4MiB 2.13M/s 2MiB 2.76M/s 1MiB 9.07M/s 512KiB 2.67M/s 256KiB 2.73M/s 128KiB 2.58M/s 64KiB 2.6M/s 32KiB 2.36M/s 16KiB 2.04M/s
$ sudo ./flashbench -O /dev/mmcblk0 --open-au-nr=4 --random 4MiB 2.3M/s 2MiB 2.53M/s 1MiB 8.97M/s 512KiB 2.43M/s 256KiB 2.45M/s 128KiB 2.34M/s 64KiB 2.34M/s 32KiB 2.15M/s 16KiB 1.88M/s
$ sudo ./flashbench -O /dev/mmcblk0 --open-au-nr=8 --random 4MiB 2.3M/s 2MiB 2.41M/s 1MiB 8.98M/s 512KiB 2.31M/s 256KiB 2.34M/s 128KiB 2.24M/s 64KiB 2.24M/s 32KiB 2.07M/s 16KiB 1.82M/s
$ sudo ./flashbench -O /dev/mmcblk0 --open-au-nr=9 --random 4MiB 2.31M/s 2MiB 2.39M/s 1MiB 9.39M/s 512KiB 2.3M/s 256KiB 2.34M/s 128KiB 2.23M/s 64KiB 2.22M/s 32KiB 2.06M/s 16KiB 1.81M/s
$ sudo ./flashbench -O /dev/mmcblk0 --open-au-nr=10 --random 4MiB 2.36M/s 2MiB 2.43M/s 1MiB 2.73M/s 512KiB 1.4M/s 256KiB 1.02M/s 128KiB 537K/s 64KiB 276K/s 32KiB 141K/s 16KiB 69.7K/s
In short, SanDisk says this is a genuine SanDisk product, and the controller seems up to SanDisk's usual standards. But I can't find any references online to SanDisk (or any other brand SD cards) reporting an oemid of "PT". Has anyone else seen a card like this out there?
-Steven Luo
Hi Steven,
On 12/24 17:13, steven@steven676.net wrote:
Not sure if anyone's still reading this list, but this seems to be a new situation and I'd like to get some more thoughts on this.
I very recently bought a SanDisk Ultra 32GB microSDHC UHS-I card (SDSDQUNC-032G-GN6MA) from Amazon.com (directly, not a third-party seller on Amazon). The card I received is the first SanDisk card I've seen to report an oemid other than 0x5344 "SD", in this case 0x5054 "PT":
$ cat /sys/block/mmcblk0/device/oemid 0x5054 $ cat /sys/block/mmcblk0/device/manfid 0x000003 $ cat /sys/block/mmcblk0/device/name SL32G $ cat /sys/block/mmcblk0/device/fwrev 0x0 $ cat /sys/block/mmcblk0/device/hwrev 0x3 $ cat /sys/block/mmcblk0/device/serial 0xdacb171b
It's also a slightly smaller card than I'd expect based on previous SanDisk 32 GB card purchases (though that could just be additional flash set aside for the FTL to work with), and reports a different address than my older SanDisk SD cards (which all report address aaaa):
mmc0: new high speed SDHC card at address 0007 mmcblk0: mmc0:0007 SL32G 28.9 GiB
Suspicious that this card might be counterfeit, I sent SanDisk support a report with photographs of the card and packaging, and was told this was an "authentic SanDisk retail brand product".
flashbench -a reports the following results, which I interpret as a 4 MB eraseblock size and 16 KB pages:
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 650µs on 1.01ms post 687µs diff 342µs align 4294967296 pre 643µs on 976µs post 685µs diff 312µs align 2147483648 pre 595µs on 963µs post 651µs diff 340µs align 1073741824 pre 619µs on 978µs post 652µs diff 343µs align 536870912 pre 620µs on 975µs post 660µs diff 335µs align 268435456 pre 598µs on 955µs post 643µs diff 335µs align 134217728 pre 633µs on 971µs post 665µs diff 322µs align 67108864 pre 620µs on 979µs post 679µs diff 330µs align 33554432 pre 604µs on 975µs post 659µs diff 343µs align 16777216 pre 624µs on 962µs post 674µs diff 313µs align 8388608 pre 609µs on 956µs post 678µs diff 313µs align 4194304 pre 614µs on 980µs post 682µs diff 332µs align 2097152 pre 630µs on 942µs post 673µs diff 291µs align 1048576 pre 594µs on 912µs post 667µs diff 281µs align 524288 pre 639µs on 926µs post 660µs diff 277µs align 262144 pre 612µs on 912µs post 666µs diff 273µs align 131072 pre 618µs on 921µs post 649µs diff 288µs align 65536 pre 588µs on 896µs post 652µs diff 276µs align 32768 pre 582µs on 901µs post 631µs diff 295µs align 16384 pre 582µs on 888µs post 631µs diff 281µs align 8192 pre 602µs on 776µs post 645µs diff 152µs align 4096 pre 612µs on 842µs post 661µs diff 205µs align 2048 pre 649µs on 639µs post 639µs diff -4751ns
The controller appears to be able to keep nine eraseblocks open at once in random mode:
$ sudo ./flashbench -O /dev/mmcblk0 --open-au-nr=1 --random 4MiB 2.12M/s 2MiB 2.32M/s 1MiB 7.58M/s 512KiB 2.18M/s 256KiB 2.25M/s 128KiB 2.17M/s 64KiB 2.18M/s 32KiB 2.04M/s 16KiB 1.79M/s
Getting only 2 MiB/second writes with 1 open-au seems very slow to me for a SanDisk Ultra card. For example, see an older 32 GB Ultra test I did [1] where 1 open-au random writes were in the 19 MiB/sec range. This slow of a card would lead me to also think it might not be a real SanDisk product...
[1]: https://lists.linaro.org/pipermail/flashbench-results/2012-June/000300.html
<snip>
Thanks, Andrew
On Tuesday 29 December 2015 07:27:08 Andrew Bradford wrote:
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 650µs on 1.01ms post 687µs diff 342µs align 4294967296 pre 643µs on 976µs post 685µs diff 312µs align 2147483648 pre 595µs on 963µs post 651µs diff 340µs align 1073741824 pre 619µs on 978µs post 652µs diff 343µs align 536870912 pre 620µs on 975µs post 660µs diff 335µs align 268435456 pre 598µs on 955µs post 643µs diff 335µs align 134217728 pre 633µs on 971µs post 665µs diff 322µs align 67108864 pre 620µs on 979µs post 679µs diff 330µs align 33554432 pre 604µs on 975µs post 659µs diff 343µs align 16777216 pre 624µs on 962µs post 674µs diff 313µs align 8388608 pre 609µs on 956µs post 678µs diff 313µs align 4194304 pre 614µs on 980µs post 682µs diff 332µs align 2097152 pre 630µs on 942µs post 673µs diff 291µs align 1048576 pre 594µs on 912µs post 667µs diff 281µs align 524288 pre 639µs on 926µs post 660µs diff 277µs align 262144 pre 612µs on 912µs post 666µs diff 273µs align 131072 pre 618µs on 921µs post 649µs diff 288µs align 65536 pre 588µs on 896µs post 652µs diff 276µs align 32768 pre 582µs on 901µs post 631µs diff 295µs align 16384 pre 582µs on 888µs post 631µs diff 281µs align 8192 pre 602µs on 776µs post 645µs diff 152µs align 4096 pre 612µs on 842µs post 661µs diff 205µs align 2048 pre 649µs on 639µs post 639µs diff -4751ns
The controller appears to be able to keep nine eraseblocks open at once in random mode:
$ sudo ./flashbench -O /dev/mmcblk0 --open-au-nr=1 --random 4MiB 2.12M/s 2MiB 2.32M/s 1MiB 7.58M/s 512KiB 2.18M/s 256KiB 2.25M/s 128KiB 2.17M/s 64KiB 2.18M/s 32KiB 2.04M/s 16KiB 1.79M/s
Getting only 2 MiB/second writes with 1 open-au seems very slow to me for a SanDisk Ultra card. For example, see an older 32 GB Ultra test I did [1] where 1 open-au random writes were in the 19 MiB/sec range. This slow of a card would lead me to also think it might not be a real SanDisk product...
Good point, yes. It's also possible that the actual block size is larger than 4MB, as that would be rather small by today's standards.
I think it's worth trying out larger sizes too, I'd start using "--blocksize=3072 --erasesize=$[24 * 1024 * 1024]" to see if the sizes are three times a power of two as many TLC flashes tend to do.
Arnd
flashbench-results@lists.linaro.org