On Fri, Feb 18, 2011 at 1:47 PM, Andrei Warkentin <andreiw@xxxxxxxxxxxx> wrote: > On Fri, Feb 18, 2011 at 7:44 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote: >> I'm curious. Neither the manfid nor the oemid fields of either card >> match what I have seen on SD cards, I would expect them to be >> >> Sandisk: manfid 0x000003, oemid 0x5344 >> Toshiba: manfid 0x000002, oemid 0x544d >> >> I have not actually seen any Toshiba SD cards, but I assume that they >> use the same controllers as Kingston. >> >> Does anyone know if the IDs have any correlation between MMC and SD >> controllers? >> >> Arnd >> > > I'm unsure about the older scheme (assigned by MMCA), but ever since > MMC is now JEDEC-controlled, the IDs have changed. Sandisk's new id > will be 0x45, and Toshiba I guess will be 0x11. > Flashbench timings for both Sandisk and Toshiba cards. Attaching due to size. Some interesting things that I don't understand. For the align test, I extended it to do a write align test (-A). I tried two partitions that I could write over, and both read and writes behaved differently for the two partitions on same device. Odd. They are both 4MB aligned. On the sandisk it was the write align that made the page size stand out. The read align had pretty constant results. On the toshiba the results varied wildly for the two partitions. For partition 6, there was a clear pattern in the diff values for read align. For 9, it was all over the place. For 9 with the write align, 8K and 16K the crossing writes took ~115ms!! Look in attached files for all the data. The AU tests were interesting too, especially how with several open AUs the throughput is higher for certain smaller sizes on sandisk, but if I interpret it correctly both cards have at least 4 AUs, as I didn't see yet a significant drop for small sizes. The larger ones I am running now on mmcblk0p9 which is sufficiently larger for these tests... (mmcblk0p6 is only 40mb, p9 is 314 mb) Thanks, A
/data # cat /sys/block/mmcblk0/device/block/mmcblk0/mmcblk0p9/start 643072 /data # cat /sys/block/mmcblk0/device/block/mmcblk0/mmcblk0p9/size 346112 /data # cat /sys/block/mmcblk0/device/block/mmcblk0/mmcblk0p6/start 77824 /data # cat /sys/block/mmcblk0/device/block/mmcblk0/mmcblk0p6/size 24576 # ./flashbench -a -b 1024 /dev/block/mmcblk0p6 align 524288 pre 613µs on 801µs post 570µs diff 210µs align 262144 pre 739µs on 988µs post 767µs diff 235µs align 131072 pre 740µs on 990µs post 767µs diff 236µs align 65536 pre 749µs on 998µs post 767µs diff 240µs align 32768 pre 761µs on 992µs post 746µs diff 238µs align 16384 pre 755µs on 982µs post 755µs diff 227µs align 8192 pre 748µs on 750µs post 748µs diff 1.94µs align 4096 pre 747µs on 749µs post 747µs diff 1.41µs align 2048 pre 747µs on 747µs post 748µs diff -93ns # ./flashbench -a -b 1024 /dev/block/mmcblk0p9 align 8388608 pre 527µs on 743µs post 476µs diff 242µs align 4194304 pre 544µs on 730µs post 543µs diff 187µs align 2097152 pre 551µs on 714µs post 485µs diff 196µs align 1048576 pre 742µs on 864µs post 745µs diff 120µs align 524288 pre 760µs on 822µs post 789µs diff 47.9µs align 262144 pre 760µs on 816µs post 789µs diff 42µs align 131072 pre 760µs on 822µs post 789µs diff 47.8µs align 65536 pre 758µs on 821µs post 789µs diff 48µs align 32768 pre 771µs on 828µs post 760µs diff 62.7µs align 16384 pre 672µs on 939µs post 771µs diff 217µs align 8192 pre 668µs on 806µs post 671µs diff 136µs align 4096 pre 671µs on 672µs post 670µs diff 1.5µs align 2048 pre 671µs on 670µs post 671µs diff -859ns # ./flashbench -A -b 1024 /dev/block/mmcblk0p6 write align 524288 pre 3.59ms on 6.74ms post 3.73ms diff 3.08ms write align 262144 pre 3.69ms on 7.11ms post 3.69ms diff 3.42ms write align 131072 pre 3.71ms on 17.4ms post 3.72ms diff 13.7ms write align 65536 pre 3.72ms on 7.18ms post 3.52ms diff 3.56ms write align 32768 pre 3.73ms on 11.9ms post 3.7ms diff 8.24ms write align 16384 pre 3.93ms on 5.01ms post 4.6ms diff 745µs write align 8192 pre 4.9ms on 4.89ms post 4.87ms diff 4.77µs write align 4096 pre 5.03ms on 5.02ms post 5.01ms diff -437ns write align 2048 pre 5.08ms on 5.08ms post 5.06ms diff 12.3µs # ./flashbench -A -b 1024 /dev/block/mmcblk0p9 write align 8388608 pre 3.76ms on 7.07ms post 4.05ms diff 3.16ms write align 4194304 pre 3.62ms on 6.5ms post 3.63ms diff 2.88ms write align 2097152 pre 3.91ms on 6.84ms post 3.7ms diff 3.04ms write align 1048576 pre 3.88ms on 6.96ms post 3.96ms diff 3.04ms write align 524288 pre 3.93ms on 7.07ms post 4.05ms diff 3.08ms write align 262144 pre 3.94ms on 7.07ms post 4.05ms diff 3.07ms write align 131072 pre 3.95ms on 7.05ms post 4.05ms diff 3.05ms write align 65536 pre 3.94ms on 7.07ms post 4.05ms diff 3.07ms write align 32768 pre 3.95ms on 7.07ms post 4.04ms diff 3.07ms write align 16384 pre 4.48ms on 117ms post 3.81ms diff 113ms write align 8192 pre 3.61ms on 114ms post 3.58ms diff 110ms write align 4096 pre 3.88ms on 3.87ms post 3.86ms diff 1.87µs write align 2048 pre 3.88ms on 3.89ms post 3.89ms diff 3.11µs ./flashbench -O -0 1 -b 512 /dev/block/mmcblk0p6 4MiB 7.17M/s 2MiB 7.91M/s 1MiB 9.23M/s 512KiB 10.3M/s 256KiB 10.5M/s 128KiB 10.4M/s 64KiB 9.81M/s 32KiB 9.09M/s 16KiB 3.71M/s 8KiB 1.73M/s 4KiB 845K/s 2KiB 418K/s 1KiB 208K/s 512B 103K/s ./flashbench -O -0 1 -r -b 512 /dev/block/mmcblk0p6 4MiB 6.58M/s 2MiB 7.98M/s 1MiB 9.33M/s 512KiB 10.4M/s 256KiB 10.9M/s 128KiB 10.5M/s 64KiB 9.94M/s 32KiB 9.11M/s 16KiB 3.72M/s 8KiB 1.75M/s 4KiB 853K/s 2KiB 419K/s 1KiB 207K/s 512B 102K/s ./flashbench -O -0 2 -b 512 /dev/block/mmcblk0p6 4MiB 8.95M/s 2MiB 9.44M/s 1MiB 10.3M/s 512KiB 10.9M/s 256KiB 10.8M/s 128KiB 10.5M/s 64KiB 9.91M/s 32KiB 8.79M/s 16KiB 3.65M/s 8KiB 1.75M/s 4KiB 851K/s 2KiB 419K/s 1KiB 208K/s 512B 103K/s ./flashbench -O -0 2 -r -b 512 /dev/block/mmcblk0p6 4MiB 9.06M/s 2MiB 9.68M/s 1MiB 10.3M/s 512KiB 10.5M/s 256KiB 9.94M/s 128KiB 10.1M/s 64KiB 9.41M/s 32KiB 7.99M/s 16KiB 3.5M/s 8KiB 1.64M/s 4KiB 798K/s 2KiB 393K/s 1KiB 196K/s 512B 96.5K/s ./flashbench -O -0 3 -b 512 /dev/block/mmcblk0p6 4MiB 8.07M/s 2MiB 9.07M/s 1MiB 9.88M/s 512KiB 10.1M/s 256KiB 10M/s 128KiB 9.83M/s 64KiB 8.68M/s 32KiB 7.1M/s 16KiB 3.09M/s 8KiB 1.49M/s 4KiB 726K/s 2KiB 357K/s 1KiB 178K/s 512B 88.5K/s ./flashbench -O -0 3 -r -b 512 /dev/block/mmcblk0p6 4MiB 8.12M/s 2MiB 9.28M/s 1MiB 9.83M/s 512KiB 10M/s 256KiB 9.97M/s 128KiB 9.91M/s 64KiB 8.9M/s 32KiB 7.3M/s 16KiB 3.2M/s 8KiB 1.54M/s 4KiB 751K/s 2KiB 367K/s 1KiB 183K/s 512B 90.3K/s ./flashbench -O -0 4 -b 512 /dev/block/mmcblk0p6 4MiB 5.87M/s 2MiB 8.71M/s 1MiB 9.11M/s 512KiB 10.3M/s 256KiB 10.5M/s 128KiB 10M/s 64KiB 9.09M/s 32KiB 7.5M/s 16KiB 3.28M/s 8KiB 1.56M/s 4KiB 758K/s 2KiB 372K/s 1KiB 185K/s 512B 92.3K/s ./flashbench -O -0 4 -r -b 512 /dev/block/mmcblk0p6 4MiB 7.57M/s 2MiB 7.23M/s 1MiB 9.71M/s 512KiB 10M/s 256KiB 9.98M/s 128KiB 9.82M/s 64KiB 9.07M/s 32KiB 7.62M/s 16KiB 3.34M/s 8KiB 1.58M/s 4KiB 776K/s 2KiB 379K/s 1KiB 188K/s 512B 92.7K/s
/data # cat /sys/block/mmcblk0/device/block/mmcblk0/mmcblk0p9/start 647168 /data # cat /sys/block/mmcblk0/device/block/mmcblk0/mmcblk0p9/size 346112 /data # cat /sys/block/mmcblk0/device/block/mmcblk0/mmcblk0p6/start 81920 /data # cat /sys/block/mmcblk0/device/block/mmcblk0/mmcblk0p6/size 24576 /data # ./flashbench -a -b 1024 /dev/block/mmcblk0p6 align 524288 pre 1.01ms on 1.03ms post 858µs diff 93.5µs align 262144 pre 1.16ms on 1.2ms post 926µs diff 153µs align 131072 pre 1.16ms on 1.2ms post 924µs diff 151µs align 65536 pre 1.15ms on 1.12ms post 919µs diff 84.9µs align 32768 pre 1.16ms on 1.2ms post 923µs diff 154µs align 16384 pre 1.16ms on 1.21ms post 941µs diff 162µs align 8192 pre 1.15ms on 1.09ms post 874µs diff 80.2µs align 4096 pre 1.16ms on 1.17ms post 902µs diff 138µs align 2048 pre 1.16ms on 1.17ms post 903µs diff 135µs /data # ./flashbench -a -b 1024 /dev/block/mmcblk0p9 align 8388608 pre 1.07ms on 1.1ms post 933µs diff 92.9µs align 4194304 pre 1.28ms on 1.29ms post 1.05ms diff 129µs align 2097152 pre 1.28ms on 1.31ms post 1.07ms diff 132µs align 1048576 pre 1.27ms on 1.32ms post 1.07ms diff 147µs align 524288 pre 1.38ms on 1.38ms post 1.12ms diff 135µs align 262144 pre 1.27ms on 1.3ms post 1.04ms diff 140µs align 131072 pre 1.28ms on 1.31ms post 1.02ms diff 164µs align 65536 pre 1.38ms on 1.38ms post 1.12ms diff 135µs align 32768 pre 1.38ms on 1.38ms post 1.12ms diff 134µs align 16384 pre 1.38ms on 1.38ms post 1.11ms diff 135µs align 8192 pre 1.38ms on 1.38ms post 1.11ms diff 134µs align 4096 pre 1.38ms on 1.38ms post 1.11ms diff 136µs align 2048 pre 1.38ms on 1.38ms post 1.11ms diff 134µs /data # ./flashbench -A -b 1024 /dev/block/mmcblk0p6 write align 524288 pre 1.69ms on 2.38ms post 1.78ms diff 653µs write align 262144 pre 1.87ms on 2.59ms post 1.86ms diff 723µs write align 131072 pre 1.88ms on 2.61ms post 1.89ms diff 729µs write align 65536 pre 1.86ms on 2.65ms post 1.83ms diff 805µs write align 32768 pre 1.88ms on 2.61ms post 1.92ms diff 710µs write align 16384 pre 1.8ms on 2.57ms post 1.95ms diff 701µs write align 8192 pre 1.66ms on 1.71ms post 1.64ms diff 55µs write align 4096 pre 1.67ms on 1.71ms post 1.64ms diff 51.9µs write align 2048 pre 1.67ms on 1.71ms post 1.61ms diff 68.7µs /data # ./flashbench -A -b 1024 /dev/block/mmcblk0p9 write align 8388608 pre 1.83ms on 2.62ms post 1.91ms diff 750µs write align 4194304 pre 1.89ms on 2.87ms post 2.06ms diff 892µs write align 2097152 pre 2.08ms on 2.86ms post 2.13ms diff 751µs write align 1048576 pre 2.06ms on 2.93ms post 2.17ms diff 818µs write align 524288 pre 2.07ms on 2.85ms post 2.18ms diff 724µs write align 262144 pre 2.07ms on 2.85ms post 2.15ms diff 741µs write align 131072 pre 2.05ms on 2.93ms post 2.19ms diff 809µs write align 65536 pre 1.86ms on 2.77ms post 1.9ms diff 888µs write align 32768 pre 2.06ms on 2.91ms post 2.19ms diff 783µs write align 16384 pre 2.05ms on 2.76ms post 1.8ms diff 835µs write align 8192 pre 1.83ms on 1.89ms post 1.8ms diff 72.9µs write align 4096 pre 1.84ms on 1.9ms post 1.8ms diff 75µs write align 2048 pre 1.84ms on 1.89ms post 1.8ms diff 70.8µs /data # ./flashbench -O -0 1 -b 512 /dev/block/mmcblk0p6 4MiB 10.5M/s 2MiB 10.1M/s 1MiB 10.6M/s 512KiB 10.5M/s 256KiB 8.94M/s 128KiB 7.74M/s 64KiB 6.04M/s 32KiB 4.13M/s 16KiB 3.2M/s 8KiB 3.87M/s 4KiB 1.86M/s 2KiB 1.16M/s 1KiB 667K/s 512B 396K/s /data # ./flashbench -O -0 1 -r -b 512 /dev/block/mmcblk0p6 4MiB 10.7M/s 2MiB 10.3M/s 1MiB 10.4M/s 512KiB 16.3M/s 256KiB 16.6M/s 128KiB 16.1M/s 64KiB 14M/s 32KiB 11.1M/s 16KiB 6.77M/s 8KiB 3.15M/s 4KiB 1.77M/s 2KiB 1.01M/s 1KiB 523K/s 512B 296K/s /data # ./flashbench -O -0 2 -b 512 /dev/block/mmcblk0p6 4MiB 11.5M/s 2MiB 11.3M/s 1MiB 11.5M/s 512KiB 11.6M/s 256KiB 10.8M/s 128KiB 9.84M/s 64KiB 7.88M/s 32KiB 5.65M/s 16KiB 4.14M/s 8KiB 1.99M/s 4KiB 1.42M/s 2KiB 760K/s 1KiB 392K/s 512B 213K/s /data # ./flashbench -O -0 2 -r -b 512 /dev/block/mmcblk0p6 4MiB 10.3M/s 2MiB 10.2M/s 1MiB 10.1M/s 512KiB 16M/s 256KiB 15.8M/s 128KiB 14.6M/s 64KiB 11.4M/s 32KiB 8.07M/s 16KiB 5.12M/s 8KiB 2.65M/s 4KiB 1.43M/s 2KiB 768K/s 1KiB 395K/s 512B 212K/s /data # ./flashbench -O -0 3 -b 512 /dev/block/mmcblk0p6 4MiB 11.3M/s 2MiB 11.5M/s 1MiB 11.5M/s 512KiB 11.5M/s 256KiB 10.4M/s 128KiB 9.1M/s 64KiB 7.3M/s 32KiB 5.21M/s 16KiB 3.78M/s 8KiB 2.08M/s 4KiB 1.42M/s 2KiB 792K/s 1KiB 418K/s 512B 217K/s /data/flashbench -O -0 3 -r -b 512 /dev/block/mmcblk0p6 4MiB 10.7M/s 2MiB 10.5M/s 1MiB 10.2M/s 512KiB 17.3M/s 256KiB 16.3M/s 128KiB 14.5M/s 64KiB 11.4M/s 32KiB 8.12M/s 16KiB 4.98M/s 8KiB 2.62M/s 4KiB 1.4M/s 2KiB 768K/s 1KiB 390K/s 512B 212K/s ./flashbench -O -0 4 -b 512 /dev/block/mmcblk0p6 4MiB 14.4M/s 2MiB 14M/s 1MiB 13.9M/s 512KiB 14.2M/s 256KiB 13.5M/s 128KiB 11.9M/s 64KiB 9.8M/s 32KiB 7.35M/s 16KiB 5.1M/s 8KiB 2.69M/s 4KiB 1.58M/s 2KiB 877K/s 1KiB 476K/s 512B 268K/s ./flashbench -O -0 4 -r -b 512 /dev/block/mmcblk0p6 4MiB 10.4M/s 2MiB 10.5M/s 1MiB 14.3M/s 512KiB 17.7M/s 256KiB 16.9M/s 128KiB 15.5M/s 64KiB 12.4M/s 32KiB 9.36M/s 16KiB 5.62M/s 8KiB 3M/s 4KiB 1.62M/s 2KiB 880K/s 1KiB 462K/s 512B 261K/s