OneNAND: soft lockup

Kyungmin Park kyungmin.park at samsung.com
Wed Dec 27 20:47:16 EST 2006


Hi,

> > > Actually, I'm not sure where's the right place. But if we don't touch the watchdong.
> > > it will soft lockup when mounting the JFFS2 with big partition. (I just borrowed it from nand.)
> >
> > Anyway, you should not touch watchdog. You problem is fixed by adding
> > cond_resched() at the right places. What you did - you shut up watchdog
> > which screamed about a real error, instead of solving the error.
>
> It looks good. and also it works well. I will commit it.

hmm, after patch, it has a problem.
How can I find the soft lockup?

/ # mount -t jffs2 /dev/mtdblock5 /tmp
BUG: soft lockup detected on CPU#0!
[<c0024e10>] (dump_stack+0x0/0x14) from [<c005d138>] (softlockup_tick+0xac/0xd8)
[<c005d08c>] (softlockup_tick+0x0/0xd8) from [<c0044bc0>] (run_local_timers+0x1)
 r7 = C022B578  r6 = 00000000  r5 = 00000000  r4 = C061FC00
[<c0044ba8>] (run_local_timers+0x0/0x1c) from [<c0044c14>] (update_process_time)
[<c0044bc4>] (update_process_times+0x0/0x7c) from [<c0024ab8>] (timer_tick+0xc8)
 r6 = C026DE20  r5 = 00000193  r4 = 00113D3F
[<c00249f0>] (timer_tick+0x0/0xe8) from [<c0035118>] (omap_32k_timer_interrupt+)
 r5 = 00000193  r4 = 00113D3F
[<c00350a4>] (omap_32k_timer_interrupt+0x0/0xe4) from [<c005d6e8>] (handle_IRQ_)
 r7 = C021E9C8  r6 = 00000025  r5 = C022A2B8  r4 = C021E9A0
[<c005d63c>] (handle_IRQ_event+0x0/0xec) from [<c005ea90>] (handle_level_irq+0x)
[<c005e9c4>] (handle_level_irq+0x0/0x134) from [<c0021714>] (asm_do_IRQ+0x48/0x)
 r7 = 00000000  r6 = C02809C8  r5 = 00000025  r4 = C021E9A0
[<c00216cc>] (asm_do_IRQ+0x0/0x60) from [<c00209f8>] (__irq_svc+0x38/0x78)
 r7 = 00000002  r6 = 00017AA9  r5 = D80FE000  r4 = FFFFFFFF
[<c00e1a44>] (jffs2_get_ino_cache+0x0/0x48) from [<c00e6f5c>] (jffs2_scan_make_)
[<c00e6f44>] (jffs2_scan_make_ino_cache+0x0/0x84) from [<c00f05e0>] (jffs2_sum_)
 r6 = 00000000  r5 = 00000000  r4 = 00017AA9
[<c00f0230>] (jffs2_sum_scan_sumnode+0x0/0x844) from [<c00e72f4>] (jffs2_scan_m)
[<c00e6fc8>] (jffs2_scan_medium+0x0/0x1144) from [<c00ea454>] (jffs2_do_mount_f)
[<c00ea2b8>] (jffs2_do_mount_fs+0x0/0x64c) from [<c00ec8f0>] (jffs2_do_fill_sup)
[<c00ec7b0>] (jffs2_do_fill_super+0x0/0x264) from [<c00ece40>] (jffs2_get_sb_mt)
 r8 = C06E57C0  r7 = 00000001  r6 = 00000000  r5 = C0737E00
 r4 = C0737C00
[<c00ecd1c>] (jffs2_get_sb_mtd+0x0/0x1a0) from [<c00ecf18>] (jffs2_get_sb_mtdnr)
[<c00ecebc>] (jffs2_get_sb_mtdnr+0x0/0x6c) from [<c00ed0ac>] (jffs2_get_sb+0x18)
 r7 = C7D47D40  r6 = 00000005  r5 = C05F0000  r4 = FFFFFFEA
[<c00ecf28>] (jffs2_get_sb+0x0/0x1c8) from [<c0083554>] (vfs_kern_mount+0x60/0x)
[<c00834f4>] (vfs_kern_mount+0x0/0xa0) from [<c00835d0>] (do_kern_mount+0x3c/0x)
 r8 = 00000000  r7 = C0230D44  r6 = C05F1000  r5 = C05F0000
 r4 = 00000000
[<c0083594>] (do_kern_mount+0x0/0x54) from [<c009997c>] (do_mount+0x5e4/0x620)
 r7 = 00000000  r6 = C7D53000  r5 = C05F0000  r4 = 00000000
[<c0099398>] (do_mount+0x0/0x620) from [<c0099d28>] (sys_mount+0xa8/0xf4)
[<c0099c80>] (sys_mount+0x0/0xf4) from [<c0020e00>] (ret_fast_syscall+0x0/0x2c)
 r7 = 00000015  r6 = 00000000  r5 = C0ED0000  r4 = 00084050

/ # cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00020000 "X-Loader + U-Boot"
mtd1: 00020000 00020000 "params"
mtd2: 00200000 00020000 "kernel"
mtd3: 01000000 00020000 "rootfs"
mtd4: 02000000 00020000 "filesystem00"
mtd5: 04dc0000 00020000 "filesystem01"


Thank you,
Kyungmin Park


More information about the linux-mtd mailing list