SD Card Instability


fahrstuhl

Member
Joined
May 29, 2008
Messages
371
Age
33
Location
Germany
Hi,


I've got two 32GB Class 10 Transcend SDHC cards formatted with ext3 in my Pandora and every once in a while (mostly while under some I/O load, especially while writing lots of smaller files... But sometimes also while running Pidgin.) there are some errors in dmesg about something trying to write to non-existent blocks or to blocks beyond the memory limit. The cards are then remounted read only and have there filesystem corrupted.


This might be a problem with ext3, probably its journal, so maybe I could solve it by using fat or ext2, but I wanted to ask if anybody else experienced similar problems.
 
Hi,


I've got two 32GB Class 10 Transcend SDHC cards formatted with ext3 in my Pandora and every once in a while (mostly while under some I/O load, especially while writing lots of smaller files... But sometimes also while running Pidgin.) there are some errors in dmesg about something trying to write to non-existent blocks or to blocks beyond the memory limit. The cards are then remounted read only and have there filesystem corrupted.


This might be a problem with ext3, probably its journal, so maybe I could solve it by using fat or ext2, but I wanted to ask if anybody else experienced similar problems.

We had some fixes regarding I/O Errors in HF5, so you might want to try HF5 RC 1 :)
 
I've installed RC1, but it seems to have happened again while I tried to install PanDebian. Any ideas?


Dmesg output:

[ 5574.587219] aufs test_add:243:mount[2251]: uid/gid/perm /mnt/pnd/PanDebian 1000/1001/0755, 0/0/0777


[ 5752.132293] No probe response from AP c9b51ebc after 500ms, try 1


[ 5761.091430] mmci-omap mmci-omap.1: MMC IRQ 0x108000 : ERRI DTO


[ 5761.091583] mmcblk1: error -110 transferring data, sector 44572672, nr 8, card status 0xc00


[ 5761.141296] end_request: I/O error, dev mmcblk1, sector 44572673


[ 5761.147338] Buffer I/O error on device mmcblk1p1, logical block 5570560


[ 5761.154022] lost page write due to I/O error on mmcblk1p1


[ 5761.509216] mmci-omap mmci-omap.1: MMC IRQ 0x108000 : ERRI DTO


[ 5761.509368] mmcblk1: error -110 transferring data, sector 44584512, nr 8, card status 0xc00


[ 5761.935333] end_request: I/O error, dev mmcblk1, sector 44584513


[ 5761.941406] Buffer I/O error on device mmcblk1p1, logical block 5572040


[ 5761.948059] lost page write due to I/O error on mmcblk1p1


[ 5763.216217] mmci-omap mmci-omap.1: MMC IRQ 0x108000 : ERRI DTO


[ 5763.216400] mmcblk1: error -110 transferring data, sector 31212008, nr 56, card status 0xc00


[ 5763.643493] end_request: I/O error, dev mmcblk1, sector 31212009


[ 5763.649566] Buffer I/O error on device mmcblk1p1, logical block 3900477


[ 5763.656219] lost page write due to I/O error on mmcblk1p1


[ 5763.661651] end_request: I/O error, dev mmcblk1, sector 31212016


[ 5763.667724] end_request: I/O error, dev mmcblk1, sector 31212024


[ 5763.673767] end_request: I/O error, dev mmcblk1, sector 31212032


[ 5763.679809] end_request: I/O error, dev mmcblk1, sector 31212040


[ 5763.685852] end_request: I/O error, dev mmcblk1, sector 31212048


[ 5763.691894] end_request: I/O error, dev mmcblk1, sector 31212056


[ 5764.275573] Aborting journal on device mmcblk1p1.


[ 5769.114379] mmci-omap mmci-omap.1: MMC IRQ 0x108000 : ERRI DTO


[ 5769.114532] mmcblk1: error -110 transferring data, sector 44310528, nr 16, card status 0xc00


[ 5769.163391] end_request: I/O error, dev mmcblk1, sector 44310529


[ 5769.169433] Buffer I/O error on device mmcblk1p1, logical block 5537792


[ 5769.176116] lost page write due to I/O error on mmcblk1p1


[ 5769.181549] end_request: I/O error, dev mmcblk1, sector 44310536


[ 5769.187591] Buffer I/O error on device mmcblk1p1, logical block 5537793


[ 5769.194274] lost page write due to I/O error on mmcblk1p1


[ 6051.462707] ext3_abort called.


[ 6051.465789] EXT3-fs error (device mmcblk1p1): ext3_journal_start_sb: Detected aborted journal


[ 6051.474456] Remounting filesystem read-only


[ 8182.397155] No probe response from AP c9b51ebc after 500ms, try 1


[ 8186.382751] aufs test_add:243:mount[2759]: uid/gid/perm /mnt/pnd/PanDebian-Share 1000/1001/0755, 0/0/0777


[ 8203.109375] aufs test_add:243:mount[2894]: uid/gid/perm /mnt/pnd/PanDebian 1000/1001/0755, 0/0/0777


[ 8220.435089] ext3_abort called.


[ 8220.438323] EXT3-fs error (device mmcblk1p1): ext3_remount: Abort forced by user
 
I hate to sound like a broken record, but have these cards been tested as genuine? (I think it's best to try to eliminate this from the possibilities early on. :p )
 
Last edited by a moderator:
I hate to sound like a broken record, but have these cards been tested as genuine? (I think it's best to try to eliminate this from the possibilities early on. :p )
I don't know oo" I bought them from amazon, they're supposed to be made by transcend and every program I used to format them reported them as 32GB cards. (That'd be mke2fs and the panasonic SD card formatter.)


Edit: Testing them right now.
 
Last edited by a moderator:
^ Every program will report a false size for fake cards, that's part of the problem. I trust you're using H2Testw to test? It will take a while - sorry about that. It's better to know for sure, though, I think.
 
^ Every program will report a false size for fake cards, that's part of the problem. I trust you're using H2Testw to test? It will take a while - sorry about that. It's better to know for sure, though, I think.
I'm using F3 for Linux. (It's odd, I put a lot of music on them and they didn't complain, like 7GB. They just keep failing when something's writing a lot of small files.)
 
Last edited by a moderator:
./f3write /media/Vierzehn/


Free space: 29.58 GB


Creating file 0001.fff ... OK!


Creating file 0002.fff ... OK!


Creating file 0003.fff ... OK!


Creating file 0004.fff ... OK!


Creating file 0005.fff ... OK!


Creating file 0006.fff ... OK!


Creating file 0007.fff ... OK!


Creating file 0008.fff ... OK!


Creating file 0009.fff ... OK!


Creating file 0010.fff ... OK!


Creating file 0011.fff ... OK!


Creating file 0012.fff ... OK!


Creating file 0013.fff ... OK!


Creating file 0014.fff ... OK!


Creating file 0015.fff ... OK!


Creating file 0016.fff ... OK!


Creating file 0017.fff ... OK!


Creating file 0018.fff ... OK!


Creating file 0019.fff ... OK!


Creating file 0020.fff ... OK!


Creating file 0021.fff ... OK!


Creating file 0022.fff ... OK!


Creating file 0023.fff ... OK!


Creating file 0024.fff ... OK!


Creating file 0025.fff ... OK!


Creating file 0026.fff ... OK!


Creating file 0027.fff ... OK!


Creating file 0028.fff ... OK!


Creating file 0029.fff ... OK!


Free space: 1.51 GB


Writing speed: 3.11 MB/s


./f3read /media/Vierzehn/


SECTORS ok/corrupted/changed/overwritten


Validating file 0018.fff ... 2097152/0/0/0


Validating file 0022.fff ... 2097152/0/0/0


Validating file 0016.fff ... 2097152/0/0/0


Validating file 0021.fff ... 2097152/0/0/0


Validating file 0013.fff ... 2097152/0/0/0


Validating file 0005.fff ... 2097152/0/0/0


Validating file 0006.fff ... 2097152/0/0/0


Validating file 0007.fff ... 2097152/0/0/0


Validating file 0015.fff ... 2097152/0/0/0


Validating file 0011.fff ... 2097152/0/0/0


Validating file 0026.fff ... 2097152/0/0/0


Validating file 0012.fff ... 2097152/0/0/0


Validating file 0010.fff ... 2097152/0/0/0


Validating file 0004.fff ... 2097152/0/0/0


Validating file 0002.fff ... 2097152/0/0/0


Validating file 0009.fff ... 2097152/0/0/0


Validating file 0023.fff ... 2097152/0/0/0


Validating file 0024.fff ... 2097152/0/0/0


Validating file 0014.fff ... 2097152/0/0/0


Validating file 0020.fff ... 2097152/0/0/0


Validating file 0019.fff ... 2097152/0/0/0


Validating file 0001.fff ... 2097152/0/0/0


Validating file 0025.fff ... 2097152/0/0/0


Validating file 0029.fff ... 90008/0/0/0


Validating file 0017.fff ... 2097152/0/0/0


Validating file 0008.fff ... 2097152/0/0/0


Validating file 0028.fff ... 2097152/0/0/0


Validating file 0003.fff ... 2097152/0/0/0


Validating file 0027.fff ... 2097152/0/0/0


Data OK: 28.04 GB (58810264 sectors)


Data LOST: 0.00 Byte (0 sectors)


Corrupted: 0.00 Byte (0 sectors)


Slightly changed: 0.00 Byte (0 sectors)


Overwritten: 0.00 Byte (0 sectors)


Reading speed: 14.69 MB/s

So, everything worked out fine for at least one card. I didn't test the other one, yet, but as they're the same type from the same vendor and as the I/O errors happen on both cards, I assume they're both fine.


(I blame the bad writing speed on my cheap Card Reader and/or parallel debootstrap.)
 
^ Ok, it's good to see that. I'll bow out now, as this is obviously outside of my experience. I just wanted to make sure that fake cards were ruled out first. :)
 
Last edited by a moderator:
I'm having the exact same problem (I/O error -110) regularly under HF5 with two cards, both Transcend, a 32GB and a 64GB.


I don't remember having these issues under HF4. The problem is most apparent when installing things with opkg, since I run the OS off of the 32GB card. Something about this vendor in particular with regard to the Pandora, perhaps? Used H2test on both and neither had errors.


I might try rolling back to HF4 to see if I can verify whether this is a new issue. If not, I'll probably end up buying a SanDisk for the OS card. :(
 
I'm having the exact same problem (I/O error -110) regularly under HF5 with two cards, both Transcend, a 32GB and a 64GB.


I don't remember having these issues under HF4. The problem is most apparent when installing things with opkg, since I run the OS off of the 32GB card. Something about this vendor in particular with regard to the Pandora, perhaps? Used H2test on both and neither had errors.


I might try rolling back to HF4 to see if I can verify whether this is a new issue. If not, I'll probably end up buying a SanDisk for the OS card. :(
It seems to be a problem with either Transcend or faster cards... I've just put an 8GB class 4 Panasonic in and everything works just fine. I'm thinking about buying a bunch of different brands, speeds and sizes on amazon and just sending every card back that doesn't work as it should / as I want it to.
 
The "I/O error -110" means timeout. Looks like some class 10 cards are slower in random writes than class 6 cards. I've seen some patch that increases timeout value in OMAP3 sd/mmc kernel driver but cannot find it now (even google doesn't help). It was a link in this or gp32x forum. I think it was in some hotfix thread mentioning other sd/mmc issues that made into hf5 but this one did not go in.


I also made this mistake of buying class 10 Transcend 16GB card. I also have class 6 Transcend 16GB I got earlier and it works better. Looks like that class 10 one is optimized for sequential writes (i.e. camera video recording).


For more details about real SD card performance with linux filesystems check


https://wiki.linaro.org/WorkingGroups/Kernel/Projects/FlashCardSurvey


https://lwn.net/Articles/428584/
 
The "I/O error -110" means timeout. Looks like some class 10 cards are slower in random writes than class 6 cards. I've seen some patch that increases timeout value in OMAP3 sd/mmc kernel driver but cannot find it now (even google doesn't help). It was a link in this or gp32x forum. I think it was in some hotfix thread mentioning other sd/mmc issues that made into hf5 but this one did not go in.

I saw this with a Kingston card. The sd card would become unresponsive for a long time (more than 60 seconds). I don't think increasing the timeouts is going to help.
 
Changing one timeout threshold slightly may mean difference between failure of multiple SD I/O commands (that are typically needed to do one high level operation) causing extra recovery and retry code producing even more commands (that may fail too) versus simple success. On high level it may indeed appear as either flawless and quick operation versus 60 second stall and I/O errors.


Apart from changing sd/mmc driver to be more relaxed about individual command timeouts it may also help to properly align beginning of partition on SD card so that filesystem blocks are aligned with SD card internal blocks (as explained in articles linked in my previous post) and possibly also tune filesystem parameters (block size, type of filesystem). Having said that I have my card formatted with http://www.sdcard.org/consumers/formatter_3/ (so no fancy unaligned ext3) and I still see those errors with my Transcend class 10 card so I guess some fix in driver is needed to have those cheap cards working.
 
The "I/O error -110" means timeout. Looks like some class 10 cards are slower in random writes than class 6 cards. I've seen some patch that increases timeout value in OMAP3 sd/mmc kernel driver but cannot find it now (even google doesn't help).
Found it again. There is whole thread at talk.maemo.org about it, see http://talk.maemo.org/showthread.php?p=1000707#post1000707


The patch is simple. Just disable complex (and too optimistic for some cards) computation of timeout and set it to be the maximum (dto=14)


the code to patch is here http://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blob;f=drivers/mmc/host/omap_hsmmc.c;h=5d46021cbb57f3a75b995ba11c25fa518aae9f37;hb=pandora-37#l1393
 
Back
Top