CONFIG_MTD_UBI_DEBUG_DISABLE_BGT=y corrupts slab?
With CONFIG_MTD_UBI_DEBUG_DISABLE_BGT=y, I get various corruption-caused OOPSes after a remount:
# umount /cache # mount -t ubifs -o ro ubi:cache /cache
Quoted 34 lines
Quoted 34 lines
UBIFS DBG (pid 172):
mount_ubifs: commit number: 0
UBI DBG (pid 172):ubi_leb_read: read 160 bytes from LEB 2:11:0 UBI DBG (pid 172):ubi_io_read: read 160 bytes from PEB 13:4096 UBI DBG (pid 172):ubi_close_volume: close volume 2, mode 1Unable to handle kernel paging request at virtual address ffffffff pgd = c0004000 [ffffffff] *pgd=00002031, *pte=00000000, *ppte=00000000 Internal error: Oops: 817 [#1] CPU: 0 Not tainted (2.6.25-00101-gb6922fa-dirty #140) PC is at free_block+0x84/0x158 LR is at 0xc5c02220 pc : [<c007c480>] lr : [<c5c02220>] psr: 00000093sp :
c5c23ef8ip :c5f52000fp :c5c23f24
r10: 00200200 r9 : 00100100 r8 : 00000018
r7 :c5c00300r6 : 00000000 r5 :c5c05410r4 :c5c00300r3 : ffffffff r2 : ffffffff r1 : 00000000 r0 :c5f520a0
Flags: nzcv IRQs off FIQs on ModeSVC_32ISA ARM Segment kernel
Control: 00003137 Table:0555c000DAC: 00000017
Process events/0 (pid: 4, stack limit =0xc5c22268)Stack: (0xc5c23ef8 to 0xc5c24000)3ee0:
c5c23f2cc5c05410
3f00: 00000018c5c05400c5c00300c02db9f8c0304cb400000005c5c23f44c5c23f283f20:c007c5fcc007c408c5c02220c5c0030000000000c0304cc0c5c23f7cc5c23f483f40:c007d638c007c56000000000c5411080c5c23f9cc5c019e0c5c22000c007d5e03f60: 00000000 00000000 00000000 00000000c5c23f9cc5c23f80c0048a24c007d5ec3f80:c5c019e8c5c22000c5c019e0c5c23fa4c5c23fd4c5c23fa0c00494e8c00489743fa0:c5c1326000000000c5c13000c004c5e0c5c23fb0c5c23fb0c5c22000c5c019e03fc0:c00493f800000000c5c23ff4c5c23fd8c004c2bcc004940400000000 00000000 3fe0: 00000000 00000000 00000000c5c23ff8c003bc94c004c26c00000000 00000000Backtrace: [<c007c3fc>] (free_block+0x0/0x158) from [<c007c5fc>] (drain_array+0xa8/0xd8) [<c007c554>] (drain_array+0x0/0xd8) from [<c007d638>] (cache_reap+0x58/0x120) r7:c0304cc0 r6:00000000 r5:c5c00300 r4:c5c02220 [<c007d5e0>] (cache_reap+0x0/0x120) from [<c0048a24>] (run_workqueue+0xbc/0x144)
Quoted 8 lines
Quoted 8 lines
[<
c0048968>] (run_workqueue+0x0/0x144) from [<c00494e8>] (worker_thread+0xf0/0x104)
r7:c5c23fa4 r6:c5c019e0 r5:c5c22000 r4:c5c019e8
[<c00493f8>] (worker_thread+0x0/0x104) from [<c004c2bc>] (kthread+0x5c/0x94)
r7:00000000 r6:c00493f8 r5:c5c019e0 r4:c5c22000
[<c004c260>] (kthread+0x0/0x94) from [<c003bc94>] (do_exit+0x0/0x5f4)
r6:00000000 r5:00000000 r4:00000000Code: e592c01c e597e04c e59c2004 e59c3000 (e5823000) Kernel panic - not syncing: Fatal exception
CONFIG_DEBUG_SLAB=y, or turning off CONFIG_MTD_UBI_DEBUG_DISABLE_BGT, causes this particular failure to go away.
I'm using a 2.6.25 kernel with the 100+ UBIFS-related patches from kernel.org back-ported into it, so some mismatch there is possible.
Has anyone has seen a similar failure with CONFIG_MTD_UBI_DEBUG_DISABLE_BGT=y on a 2.6.27 kernel?
thanks,
D
Quoted 5 lines · Don Mullis
With
CONFIG_MTD_UBI_DEBUG_DISABLE_BGT=y, I get various corruption-caused OOPSes after a remount:# umount /cache # mount -t ubifs -o ro ubi:cache /cache
Hmm, I ran integrity test on UBIFS and had this UBI config option enabled (as well ass emulate write and erase errors options enabled) yesterday, and it worked fine - not slab problems and UBI was able to recover from all errors, so the integrity check test worked fine.
But that was the latest UBIFS from the ubifs-2.6.git tree.
Quoted 2 lines
I'm using a 2.6.25 kernel with the 100+ UBIFS-related patches from kernel.org back-ported into it, so some mismatch there is possible.
We have UBI/UBIFS backport trees, could you try ubifs-v2.6.26.git please? It has all the UBI/UBIFS patches back-ported. Or you may just take the patches from ubifs-v2.6.26.git and apply them to your tree. Please, glance here:
http://www.linux-mtd.infradead.org/doc/ubifs.html#L_source
Signature · 2 lines
Best regards, Artem Bityutskiy (Битюцкий Артём)
Quoted 6 lines · Artem Bityutskiy
Hmm, I ran integrity test on UBIFS and had this UBI config option enabled (as well ass emulate write and erase errors options enabled) yesterday, and it worked fine - not slab problems and UBI was able to recover from all errors, so the integrity check test worked fine.
But that was the latest UBIFS from the ubifs-2.6.git tree.
Thanks for testing, that helps me narrow the search.
Quoted 3 lines
We have UBI/UBIFS backport trees, could you try ubifs-v2.6.26.git please? It has all the UBI/UBIFS patches back-ported. Or you may just take the patches from ubifs-v2.6.26.git and apply them to your tree.
I assume you meant "ubifs-v2.6.25.git" -- I'm stuck at 2.6.25 for the present due to some out-of-tree drivers. I'll try extracting patches from git://git.infradead.org/~dedekind/ubifs-v2.6.25.git
and applying them to my tree.
Quoted 9 lines · Don Mullis
Quoted 6 lines · Artem Bityutskiy
Hmm, I ran integrity test on UBIFS and had this UBI config option enabled (as well ass emulate write and erase errors options enabled) yesterday, and it worked fine - not slab problems and UBI was able to recover from all errors, so the integrity check test worked fine.
But that was the latest UBIFS from the ubifs-2.6.git tree.
Thanks for testing, that helps me narrow the search.
Note, the CONFIG_MTD_UBI_DEBUG_DISABLE_BGT is debugging option, which was introduce to test UBI correctness, because theoretically it should work even if the thread dies or does not exist. However, UBI becomes less efficient without the thread, so I'd recommend to use it only for developing/test purposes.
Quoted 8 lines
Quoted 3 lines
We have UBI/UBIFS backport trees, could you try ubifs-v2.6.26.git please? It has all the UBI/UBIFS patches back-ported. Or you may just take the patches from ubifs-v2.6.26.git and apply them to your tree.
I assume you meant "ubifs-v2.6.25.git" -- I'm stuck at 2.6.25 for the present due to some out-of-tree drivers. I'll try extracting patches from
git://git.infradead.org/~dedekind/ubifs-v2.6.25.git
and applying them to my tree.
Right, I meant ubifs-v2.6.25.git.
Signature · 2 lines
Best regards, Artem Bityutskiy (Битюцкий Артём)