This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ubifs rootfs crash issue

Hi,

    cpu:  AM3352BZCZ60

    kernel: linux-3.19.3

    rootfs: ubifs

    The system running very well if there is no falsh writing. But it got a ubifs crash (usually ECC error  -74)  in power cut stress test. ( cut off the power while writing the flash). 

This issue is also exist on kernel  "linux-3.12.10-ti2013.12.01"  and "linux-3.2.0-psp04.06.00.11".

    My MTD partitions

0x000000000000-0x000000200000 : "boot"
0x000000200000-0x000001200000 : "logo"
0x000001200000-0x000001a00000 : "kernel"
0x000001a00000-0x000008000000 : "rootfs"

   ubifs generate as below:

    ./mkfs.ubifs -F -q -r ./rootfs -m 2048 -e 126976 -c 800 -o ubifs.im

    ./ubinize -o ubi.img -m 2048 -p 128KiB ubinize.cfg 

ubinize.cfg

[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize

Here is some log message while booting:

[ 0.990286] Creating 4 MTD partitions on "omap2-nand.0":
[ 0.995834] 0x000000000000-0x000000200000 : "boot"
[ 1.002887] 0x000000200000-0x000001200000 : "logo"
[ 1.014312] 0x000001200000-0x000001a00000 : "kernel"
[ 1.023309] 0x000001a00000-0x000008000000 : "rootfs"
[ 1.063730] UBI: attaching mtd3 to ubi0
[ 1.067742] UBI: physical eraseblock size: 131072 bytes (128 KiB)
[ 1.074401] UBI: logical eraseblock size: 126976 bytes
[ 1.080062] UBI: smallest flash I/O unit: 2048
[ 1.084964] UBI: VID header offset: 2048 (aligned 2048)
[ 1.091240] UBI: data offset: 4096
[ 1.558448] UBI: max. sequence number: 245649
[ 1.571904] UBI: attached mtd3 to ubi0
[ 1.575821] UBI: MTD device name: "rootfs"
[ 1.581161] UBI: MTD device size: 102 MiB
[ 1.586334] UBI: number of good PEBs: 816
[ 1.591163] UBI: number of bad PEBs: 0
[ 1.595792] UBI: number of corrupted PEBs: 0
[ 1.600434] UBI: max. allowed volumes: 128
[ 1.605244] UBI: wear-leveling threshold: 4096
[ 1.610154] UBI: number of internal volumes: 1
[ 1.614782] UBI: number of user volumes: 1
[ 1.619420] UBI: available PEBs: 0
[ 1.624049] UBI: total number of reserved PEBs: 816
[ 1.629129] UBI: number of PEBs reserved for bad PEB handling: 80
[ 1.635490] UBI: max/mean erase counter: 433/298
[ 1.640310] UBI: image sequence number: 986033223
[ 1.645308] UBI: background thread "ubi_bgt0d" started, PID 429

[ 1.947620] Trying to load am335x-pm-firmware.bin (60 secs timeout)

[ 1.954309] Copied the M3 firmware to UMEM
[ 1.958655] Cortex M3 Firmware Version = 0x181
[ 1.982680] Detected MACID=0:db:60:51:e0:2
[ 2.110330] UBIFS: recovery needed
[ 2.175696] UBI error: ubi_io_read: error -74 (ECC error) while reading 116736 bytes from PEB 487:4096, read 116736 bytes
[ 2.187136] Backtrace:
[ 2.189731] [<c00173cc>] (dump_backtrace+0x0/0x110) from [<c038ada4>] (dump_stack+0x18/0x1c)
[ 2.198528] r6:0001c800 r5:00000000 r4:c57d9000 r3:00000000
[ 2.204478] [<c038ad8c>] (dump_stack+0x0/0x1c) from [<c0282aec>] (ubi_io_read+0x11c/0x2e8)
[ 2.213114] [<c02829d0>] (ubi_io_read+0x0/0x2e8) from [<c0280a28>] (ubi_eba_read_leb+0x144/0x3c4)
[ 2.222383] [<c02808e4>] (ubi_eba_read_leb+0x0/0x3c4) from [<c027f9ec>] (ubi_leb_read+0xac/0x134)
[ 2.231661] [<c027f940>] (ubi_leb_read+0x0/0x134) from [<c0172fe0>] (ubifs_leb_read+0x30/0x94)
[ 2.240647] r8:c79b7000 r7:00000009 r6:00000000 r5:0001c800 r4:00000800
[ 2.247676] [<c0172fb0>] (ubifs_leb_read+0x0/0x94) from [<c018fd70>] (recover_head+0x110/0x154)
[ 2.256753] r7:0001c800 r6:c5742000 r5:c601c000 r4:00000800
[ 2.262690] [<c018fc60>] (recover_head+0x0/0x154) from [<c01912a0>] (ubifs_recover_inl_heads+0xd8/0x138)
[ 2.272582] r9:c5742000 r8:c576e340 r7:c5742008 r6:c79b7000 r5:c601c000
[ 2.279415] r4:c5742000
[ 2.282159] [<c01911c8>] (ubifs_recover_inl_heads+0x0/0x138) from [<c017124c>] (ubifs_mount+0x1de0/0x1ff8)
[ 2.292231] r6:c5730400 r5:000008e8 r4:00000000 r3:00000000
[ 2.298166] [<c016f46c>] (ubifs_mount+0x0/0x1ff8) from [<c00b7934>] (mount_fs+0x4c/0x18c)
[ 2.306717] [<c00b78e8>] (mount_fs+0x0/0x18c) from [<c00d25fc>] (vfs_kern_mount+0x50/0x98)
[ 2.315351] [<c00d25ac>] (vfs_kern_mount+0x0/0x98) from [<c00d29e4>] (do_kern_mount+0x38/0xdc)
[ 2.324338] r8:c572af80 r7:00008000 r6:c576e240 r5:c052daec r4:00000000
[ 2.331171] r3:00000000
[ 2.333916] [<c00d29ac>] (do_kern_mount+0x0/0xdc) from [<c00d4a98>] (do_mount+0x308/0x790)
[ 2.342539] r8:c572af80 r7:c576e240 r6:00000000 r5:00000020 r4:00008000
[ 2.349372] r3:00000000
[ 2.352115] [<c00d4790>] (do_mount+0x0/0x790) from [<c00d521c>] (sys_mount+0x8c/0xcc)
[ 2.360300] [<c00d5190>] (sys_mount+0x0/0xcc) from [<c04cebd4>] (mount_block_root+0x114/0x298)
[ 2.369286] r7:c04f527c r6:c60ce000 r5:00008000 r4:c60ce000
[ 2.375212] [<c04ceac0>] (mount_block_root+0x0/0x298) from [<c04cef60>] (prepare_namespace+0xb0/0x1d0)
[ 2.384932] [<c04ceeb0>] (prepare_namespace+0x0/0x1d0) from [<c04ce960>] (kernel_init+0x124/0x128)
[ 2.394280] r6:c0040058 r5:c04fda54 r4:c04fda54
[ 2.399122] [<c04ce83c>] (kernel_init+0x0/0x128) from [<c0040058>] (do_exit+0x0/0x768)
[ 2.407383] r5:c04ce83c r4:00000000
[ 2.411133] UBIFS error (pid 1): ubifs_leb_read: reading 116736 bytes from LEB 9:0 failed, error -74
[ 2.420661] Backtrace:
[ 2.423221] [<c00173cc>] (dump_backtrace+0x0/0x110) from [<c038ada4>] (dump_stack+0x18/0x1c)
[ 2.432025] r6:00000000 r5:0001c800 r4:ffffffb6 r3:00000000
[ 2.437951] [<c038ad8c>] (dump_stack+0x0/0x1c) from [<c017303c>] (ubifs_leb_read+0x8c/0x94)
[ 2.446676] [<c0172fb0>] (ubifs_leb_read+0x0/0x94) from [<c018fd70>] (recover_head+0x110/0x154)
[ 2.455752] r7:0001c800 r6:c5742000 r5:c601c000 r4:00000800
[ 2.461688] [<c018fc60>] (recover_head+0x0/0x154) from [<c01912a0>] (ubifs_recover_inl_heads+0xd8/0x138)
[ 2.471579] r9:c5742000 r8:c576e340 r7:c5742008 r6:c79b7000 r5:c601c000
[ 2.478402] r4:c5742000
[ 2.481155] [<c01911c8>] (ubifs_recover_inl_heads+0x0/0x138) from [<c017124c>] (ubifs_mount+0x1de0/0x1ff8)
[ 2.491227] r6:c5730400 r5:000008e8 r4:00000000 r3:00000000
[ 2.497154] [<c016f46c>] (ubifs_mount+0x0/0x1ff8) from [<c00b7934>] (mount_fs+0x4c/0x18c)
[ 2.505696] [<c00b78e8>] (mount_fs+0x0/0x18c) from [<c00d25fc>] (vfs_kern_mount+0x50/0x98)
[ 2.514328] [<c00d25ac>] (vfs_kern_mount+0x0/0x98) from [<c00d29e4>] (do_kern_mount+0x38/0xdc)
[ 2.523313] r8:c572af80 r7:00008000 r6:c576e240 r5:c052daec r4:00000000
[ 2.530144] r3:00000000
[ 2.532887] [<c00d29ac>] (do_kern_mount+0x0/0xdc) from [<c00d4a98>] (do_mount+0x308/0x790)
[ 2.541510] r8:c572af80 r7:c576e240 r6:00000000 r5:00000020 r4:00008000
[ 2.548334] r3:00000000
[ 2.551084] [<c00d4790>] (do_mount+0x0/0x790) from [<c00d521c>] (sys_mount+0x8c/0xcc)
[ 2.559264] [<c00d5190>] (sys_mount+0x0/0xcc) from [<c04cebd4>] (mount_block_root+0x114/0x298)
[ 2.568241] r7:c04f527c r6:c60ce000 r5:00008000 r4:c60ce000
[ 2.574176] [<c04ceac0>] (mount_block_root+0x0/0x298) from [<c04cef60>] (prepare_namespace+0xb0/0x1d0)
[ 2.583894] [<c04ceeb0>] (prepare_namespace+0x0/0x1d0) from [<c04ce960>] (kernel_init+0x124/0x128)
[ 2.593242] r6:c0040058 r5:c04fda54 r4:c04fda54
[ 2.598076] [<c04ce83c>] (kernel_init+0x0/0x128) from [<c0040058>] (do_exit+0x0/0x768)
[ 2.606337] r5:c04ce83c r4:00000000
[ 2.619268] VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)
[ 2.626625] Please append a correct "root=" boot option; here are the available partitions:
[ 2.635395] 1f00 2048 mtdblock0 (driver?)
[ 2.640686] 1f01 16384 mtdblock1 (driver?)
[ 2.645961] 1f02 8192 mtdblock2 (driver?)
[ 2.651248] 1f03 104448 mtdblock3 (driver?)
[ 2.656522] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 2.665151] Backtrace:
[ 2.667718] [<c00173cc>] (dump_backtrace+0x0/0x110) from [<c038ada4>] (dump_stack+0x18/0x1c)
[ 2.676530] r6:c60ce000 r5:c0453e38 r4:c054db88 r3:00000000
[ 2.682472] [<c038ad8c>] (dump_stack+0x0/0x1c) from [<c038b004>] (panic+0x8c/0x1a8)
[ 2.690477] [<c038af78>] (panic+0x0/0x1a8) from [<c04cecdc>] (mount_block_root+0x21c/0x298)
[ 2.699196] r3:00000000 r2:c601de48 r1:c601df60 r0:c0453e38
[ 2.705118] r7:c04f527c
[ 2.707768] [<c04ceac0>] (mount_block_root+0x0/0x298) from [<c04cef60>] (prepare_namespace+0xb0/0x1d0)
[ 2.717493] [<c04ceeb0>] (prepare_namespace+0x0/0x1d0) from [<c04ce960>] (kernel_init+0x124/0x128)
[ 2.726846] r6:c0040058 r5:c04fda54 r4:c04fda54
[ 2.731697] [<c04ce83c>] (kernel_init+0x0/0x128) from [<c0040058>] (do_exit+0x0/0x768)
[ 2.739963] r5:c04ce83c r4:00000000

when use ubifs as rootfs, does this kind of issue is non-avoidable ???