On Friday 08 July 2011 00:37:35 AJ ONeal wrote:
> Confirmed: the combination of a linaro-2.6.39 kernel with a transcend 8gb 
> card results in flakey boots.
> linaro-2.6.39 kernel is affected
> transcend cards are affected
> oe-2.6.36 kernel is not affected
> sandisk 8gb cards are not affected (67 megabytes smaller)
> I zero'd a card, but instead of only zeros, I also wrote the sector number in 
> each 512-byte block.
> 
> I changed the kernel to print out the 512 bytes it read as the mbr to the 
> screen.
> 
> When the card didn't boot fully the printk showed all zeros except for a 
> sector number about 100mb into the card.
> 
> 
> How weird! Hardware? Kernel?

My guess is that it's the card's fault. There are a lot of cards that are
simply not going to work with a Linux file system. In my experience, the
Sandisk cards tend to have controllers that cope with proper file systems,
while Kingston never do.

Transcend doesn't make their own cards, they buy stuff from everybody,
so you can be lucky or not.
 
> Anyway, today my sandisk cards arrived and all 10 of them worked flawlessly.
> I ordered another 50 and hope to see the same results.

Ok. Can you be more specific which cards worked for you and which had problems?
Please list the contents of /sys/block/mmcblk0/device/*, in particular the *id
and date fields.

We are still doing more analysis what the specific requirements are given a
particular file system, but I have a good understanding of what the problems
with many of the cards are. If you haven't seen my articles, please have
a look at https://lwn.net/Articles/428584/ and
https://wiki.linaro.org/WorkingGroups/Kernel/Projects/FlashCardSurvey

If you send me a specimen of each cards you're interested in, I'll gladly
do my analysis, or I can teach you how to do it yourself. It does take
a bit of experience because there are so many different ways in which
the drives can be screwed up.

If you want a very simple test to see if a card is any good before you
buy a lot of them, I recommend running (Warning: overwrites data on the card)

flashbench --open-au --erasesize=$[4*1024*1024] --blocksize=4096 --open-au-nr=5 
--random /dev/mmcblk0

This will print performance ratings for random write accesses to the
card on five different erase blocks (assuming 4 MB erase block size).
A card that can handle this should look like

4MiB    9.03M/s 
2MiB    6.17M/s 
1MiB    6.24M/s 
512KiB  4.06M/s 
256KiB  4.54M/s 
128KiB  3.8M/s  
64KiB   6.47M/s 
32KiB   5.79M/s 
16KiB   2.72M/s 
8KiB    1.33M/s 

while a card that cannot handle this look more like

4MiB    8.81M/s 
2MiB    5.43M/s 
1MiB    3.81M/s 
512KiB  2.27M/s 
256KiB  1.34M/s 
128KiB  860K/s  
64KiB   481K/s  
32KiB   229K/s  
16KiB   117K/s
8KiB    57K/s

If the last row is above 1MB/s, the card is fine, if it is below 100K/s, don't 
even think
about using it. The explanation for this behavior is in the lwn.net article.

        Arnd

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to