UBIFS failure after extended use

Artem Bityutskiy dedekind1 at gmail.com
Thu Apr 29 09:58:45 EDT 2010


On Thu, 2010-04-29 at 08:45 -0500, David Lambert wrote:
> I am a relative newbie to UBI/MTD but the following puzzles me. I have a 
> UBI partition "bulkdata" that suddenly appeared to be corrupted after 
> around a week of working perfectly. The kernel is 2.6.30.1 running on an 
> Atmel ARM9 ATRM9200. Any suggestions would be very welcome, as I have no 
> idea on how to proceed from here.
> 
> 
> Best regards,
> 
> Dave.
> 
> AT91 NAND: 8-bit, Software ECC
> Scanning device for bad blocks
> Bad eraseblock 347 at 0x0000056c0000
> Bad eraseblock 1613 at 0x000019340000
> Bad eraseblock 1981 at 0x00001ef40000
> Bad eraseblock 2174 at 0x000021f80000
> Bad eraseblock 3004 at 0x00002ef00000
> Bad eraseblock 3940 at 0x00003d900000
> Bad eraseblock 4132 at 0x000040900000
> Bad eraseblock 4321 at 0x000043840000
> Bad eraseblock 4487 at 0x0000461c0000
> Bad eraseblock 4642 at 0x000048880000
> Bad eraseblock 5120 at 0x000050000000
> Bad eraseblock 5521 at 0x000056440000
> Bad eraseblock 5904 at 0x00005c400000
> Bad eraseblock 5946 at 0x00005ce80000
> Bad eraseblock 6288 at 0x000062400000
> Bad eraseblock 6364 at 0x000063700000
> Bad eraseblock 6510 at 0x000065b80000
> Bad eraseblock 6602 at 0x000067280000
> Bad eraseblock 6781 at 0x000069f40000
> Bad eraseblock 6861 at 0x00006b340000
> Bad eraseblock 7144 at 0x00006fa00000
> Bad eraseblock 7223 at 0x000070dc0000
> Bad eraseblock 7344 at 0x000072c00000
> Bad eraseblock 7432 at 0x000074200000
> Bad eraseblock 7997 at 0x00007cf40000
> Creating 2 MTD partitions on "NAND 2GiB 3,3V 8-bit":
> 0x000000000000-0x000006400000 : "ubirootfs"
> 0x000006400000-0x000080000000 : "bulkdata"
> UBI: attaching mtd4 to ubi0
> UBI: physical eraseblock size:   262144 bytes (256 KiB)
> UBI: logical eraseblock size:    258048 bytes
> UBI: smallest flash I/O unit:    4096
> UBI: sub-page size:              1024
> UBI: VID header offset:          1024 (aligned 1024)
> UBI: data offset:                4096
> UBI: attached mtd4 to ubi0
> UBI: MTD device name:            "ubirootfs"
> UBI: MTD device size:            100 MiB
> UBI: number of good PEBs:        399
> UBI: number of bad PEBs:         1
> UBI: max. allowed volumes:       128
> UBI: wear-leveling threshold:    4096
> UBI: number of internal volumes: 1
> UBI: number of user volumes:     1
> UBI: available PEBs:             0
> UBI: total number of reserved PEBs: 399
> UBI: number of PEBs reserved for bad PEB handling: 3
> UBI: max/mean erase counter: 3/0
> UBI: background thread "ubi_bgt0d" started, PID 264
> 
> UBI: attaching mtd5 to ubi1
> UBI: physical eraseblock size:   262144 bytes (256 KiB)
> UBI: logical eraseblock size:    258048 bytes
> UBI: smallest flash I/O unit:    4096
> UBI: sub-page size:              1024
> UBI: VID header offset:          1024 (aligned 1024)
> UBI: data offset:                4096
> UBI: attached mtd5 to ubi1
> UBI: MTD device name:            "bulkdata"
> UBI: MTD device size:            1948 MiB
> UBI: number of good PEBs:        7768
> UBI: number of bad PEBs:         24
> UBI: max. allowed volumes:       128
> UBI: wear-leveling threshold:    4096
> UBI: number of internal volumes: 1
> UBI: number of user volumes:     1
> UBI: available PEBs:             0
> UBI: total number of reserved PEBs: 7768
> UBI: number of PEBs reserved for bad PEB handling: 77
> UBI: max/mean erase counter: 8306/75
> UBI: background thread "ubi_bgt1d" started, PID 355
> UBI device number 1, total 7768 LEBs (2004516864 bytes, 1.9 GiB), 
> available 0 LEBs (0 bytes), LEB size 258048 bytes (252.0 KiB)
> UBIFS: recovery needed
> UBIFS: recovery completed
> UBIFS: mounted UBI device 1, volume 0, name "bulkdata"
> UBIFS: file system size:   1980260352 bytes (1933848 KiB, 1888 MiB, 7674 
> LEBs)
> UBIFS: journal size:       33546240 bytes (32760 KiB, 31 MiB, 130 LEBs)
> UBIFS: media format:       w4/r0 (latest is w4/r0)
> UBIFS: default compressor: none
> UBIFS: reserved for root:  4952683 bytes (4836 KiB)
> 
> All seems OK up to here - then all hell breaks loose...
> 
> # uncorrectable error : <3>UBI error: ubi_io_read: error -74 while 
> reading 13 bytes from PEB 718:175672, read 13 bytes

Looks like there are issues in driver level.

> UBIFS error (pid 85): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -74
> UBIFS error (pid 85): do_writepage: cannot write page 1981 of inode 
> 6925, error -74
> UBIFS warning (pid 85): ubifs_ro_mode: switched to read-only mode, error 
> -74
> UBIFS error (pid 85): make_reservation: cannot reserve 160 bytes in 
> jhead 1, error -30
> UBIFS error (pid 85): ubifs_write_inode: can't write inode 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1982 of inode 
> 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1983 of inode 
> 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1984 of inode 
> 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1985 of inode 
> 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1986 of inode 
> 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1987 of inode 
> 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1988 of inode 
> 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1989 of inode 
> 6925, error -30
> UBIFS error (pid 420): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 420): do_writepage: cannot write page 1990 of inode 
> 6925, error -30
> UBIFS error (pid 85): make_reservation: cannot reserve 4144 bytes in 
> jhead 2, error -30
> UBIFS error (pid 85): do_writepage: cannot write page 1991 of inode 
> 6925, error -30

Unfortunately, these messages are about what happened after the FS
became R/O - dirty pages cannot be written (-30 = EROFS = R/O FS).

You need to post earlier the messages which are about why and how it
became R/O.

This -74 error code suggests you can have issues in driver level, so it
is a good idea to run mtd tests. Please, take a look here:

http://www.linux-mtd.infradead.org/doc/ubifs.html#L_how_send_bugreport

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)




More information about the linux-mtd mailing list