4KiB pagesize and UBIFS

Adrian Hunter adrian.hunter at nokia.com
Tue Aug 4 04:41:05 EDT 2009


ext Kyungmin Park wrote:
> Hi,
> 
> I create the empty ubifs as datafs and then try to mount it
> Of course I turn on all debug message at ubifs.
> 
> As below it try to read unaligned read (not seen at here, driver
> handle it) and linefetch error finally.
> 
> I guest 4KiB pagesize don't support on ubifs.
> 
> How can I handle it?
> 
> Thank you,
> Kyungmin Park
> 
> # mount -t ubifs ubi0!datafs /mnt
> [   12.400000] UBIFS DBG (pid 1039): ubifs_get_sb: name ubi0!datafs, flags 0x800
> 0
> [   12.410000] UBIFS DBG (pid 1039): ubifs_get_sb: opened ubi0_20
> [   12.410000] UBIFS DBG (pid 1039): ubifs_read_node: LEB 0:0, superblock node,
> length 4096
> [   12.420000] UBIFS DBG (pid 1039): ubifs_start_scan: scan LEB 1:0
> [   12.430000] UBIFS DBG (pid 1040): ubifs_bg_thread: background thread "ubifs_b
> gt0_20" started, PID 1040
> [   12.470000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 1:0 (253952 bytes l
> eft)
> [   12.470000] UBIFS DBG (pid 1039): ubifs_scan_a_node: scanning master node
> [   12.480000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 1:512 (253440 bytes
>  left)
> [   12.490000] UBIFS DBG (pid 1039): ubifs_scan_a_node: scanning padding node
> [   12.490000] UBIFS DBG (pid 1039): ubifs_scan_a_node: 3556 bytes padded, offse
> t now 4096
> [   12.500000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 1:4096 (249856 byte
> s left)
> [   12.510000] UBIFS DBG (pid 1039): ubifs_scan_a_node: scanning master node
> [   12.520000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 1:4608 (249344 byte
> s left)
> [   12.520000] UBIFS DBG (pid 1039): ubifs_scan_a_node: scanning padding node
> [   12.530000] UBIFS DBG (pid 1039): ubifs_scan_a_node: 3556 bytes padded, offse
> t now 8192
> [   12.540000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 1:8192 (245760 byte
> s left)
> [   12.550000] UBIFS DBG (pid 1039): ubifs_scan_a_node: hit empty space
> [   12.550000] UBIFS DBG (pid 1039): ubifs_end_scan: stop scanning LEB 1 at offs
> et 8192
> [   12.560000] UBIFS DBG (pid 1039): ubifs_start_scan: scan LEB 2:0
> [   12.600000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 2:0 (253952 bytes l
> eft)
> [   12.600000] UBIFS DBG (pid 1039): ubifs_scan_a_node: scanning master node
> [   12.610000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 2:512 (253440 bytes
>  left)
> [   12.620000] UBIFS DBG (pid 1039): ubifs_scan_a_node: scanning padding node
> [   12.620000] UBIFS DBG (pid 1039): ubifs_scan_a_node: 3556 bytes padded, offse
> t now 4096
> [   12.630000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 2:4096 (249856 byte
> s left)
> [   12.640000] UBIFS DBG (pid 1039): ubifs_scan_a_node: scanning master node
> [   12.650000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 2:4608 (249344 byte
> s left)
> [   12.650000] UBIFS DBG (pid 1039): ubifs_scan_a_node: scanning padding node
> [   12.660000] UBIFS DBG (pid 1039): ubifs_scan_a_node: 3556 bytes padded, offse
> t now 8192
> [   12.670000] UBIFS DBG (pid 1039): ubifs_scan: look at LEB 2:8192 (245760 byte
> s left)
> [   12.680000] UBIFS DBG (pid 1039): ubifs_scan_a_node: hit empty space
> [   12.680000] UBIFS DBG (pid 1039): ubifs_end_scan: stop scanning LEB 2 at offs
> et 8192
> [   12.690000] UBIFS DBG (pid 1039): ubifs_read_node: LEB 12:0, indexing node, l
> ength 48
> [   12.700000] UBIFS: recovery needed
> [   12.700000] UBIFS DBG (pid 1039): ubifs_recover_inl_heads: checking index hea
> d at 12:4096
> [   12.710000] UBIFS DBG (pid 1039): ubifs_recover_inl_heads: checking LPT head
> at 7:4096
> [   12.720000] UBIFS DBG (pid 1039): lpt_init_rd: space_bits 15
> [   12.730000] UBIFS DBG (pid 1039): lpt_init_rd: lpt_lnum_bits 2
> [   12.730000] UBIFS DBG (pid 1039): lpt_init_rd: lpt_offs_bits 18
> [   12.740000] UBIFS DBG (pid 1039): lpt_init_rd: lpt_spc_bits 18
> [   12.750000] UBIFS DBG (pid 1039): lpt_init_rd: pcnt_bits 10
> [   12.750000] UBIFS DBG (pid 1039): lpt_init_rd: lnum_bits 12
> [   12.760000] UBIFS DBG (pid 1039): lpt_init_rd: pnode_sz 18
> [   12.760000] UBIFS DBG (pid 1039): lpt_init_rd: nnode_sz 13
> [   12.770000] UBIFS DBG (pid 1039): lpt_init_rd: ltab_sz 12
> [   12.770000] UBIFS DBG (pid 1039): lpt_init_rd: lsave_sz 387
> [   12.780000] UBIFS DBG (pid 1039): lpt_init_rd: lsave_cnt 256
> [   12.790000] UBIFS DBG (pid 1039): lpt_init_rd: lpt_hght 5
> [   12.790000] UBIFS DBG (pid 1039): lpt_init_rd: big_lpt 0
> [   12.800000] UBIFS DBG (pid 1039): lpt_init_rd: LPT root is at 7:70
> [   12.800000] UBIFS DBG (pid 1039): lpt_init_rd: LPT head is at 7:4096
> [   12.810000] UBIFS DBG (pid 1039): lpt_init_rd: LPT ltab is at 7:83
> [   12.810000] UBIFS DBG (pid 1039): ubifs_read_node: LEB 12:0, indexing node, l
> ength 48
> [   12.820000] UBIFS DBG (pid 1039): read_znode: LEB 12:0, level 0, 1 branch
> [   12.830000] UBIFS DBG (pid 1039): ubifs_add_lpt_dirt: LEB 7 add 13 to 4001
> [   12.840000] UBIFS DBG (pid 1039): ubifs_add_lpt_dirt: LEB 7 add 12 to 4014
> [   12.850000] UBIFS DBG (pid 1039): ubifs_add_lpt_dirt: LEB 7 add 13 to 4026
> [   12.860000] UBIFS DBG (pid 1039): ubifs_add_lpt_dirt: LEB 7 add 13 to 4039
> [   12.870000] UBIFS DBG (pid 1039): ubifs_add_lpt_dirt: LEB 7 add 13 to 4052
> [   12.870000] UBIFS DBG (pid 1039): ubifs_add_lpt_dirt: LEB 7 add 13 to 4065
> [   12.880000] Unhandled fault: external abort on non-linefetch (0x1008) at 0xc5
> 880410
> [   12.890000] Internal error: : 1008 [#1]
> [   12.890000] Modules linked in:
> [   12.890000] CPU: 0    Not tainted  (2.6.31-rc4-g6a8aab3-dirty #768)
> [   12.890000] PC is at memcpy+0xc4/0x330
> [   12.890000] LR is at 0xf80103f5
> [   12.890000] pc : [<c01610e4>]    lr : [<f80103f5>]    psr: 60000013
> [   12.890000] sp : c43e9acc  ip : 00000010  fp : 00000000
> [   12.890000] r10: c5880400  r9 : c4058da8  r8 : c41736a0
> [   12.890000] r7 : c41736a0  r6 : 00000012  r5 : 00000000  r4 : 00000000
> [   12.890000] r3 : c5880400  r2 : 00000000  r1 : c5880410  r0 : c41736b0
> [   12.890000] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
> [   12.890000] Control: 10c5387d  Table: 244a4019  DAC: 00000015
> [   12.890000] Process mount (pid: 1039, stack limit = 0xc43e82e8)
> 

I do not understand why you think this is UBIFS.

"external abort on non-linefetch" is a bus error.

"PC is at memcpy" means it was caused by memcpy.

Have you tried running drivers/mtd/tests/mtd_stresstest for a day?





More information about the linux-mtd mailing list