I think this is the same kernel I've been using a long time on
WZR-HP-G300NH, (that is, not the preemptive options I
mentioned yesterday), but I did recently turn on debugging.
I think this may help explain some occasional flash failures
we've been seeing (this is the only one with a serial port).
During sysupgrade:
[ 66.540000]
[ 66.540000] =======================================================
[ 66.540000] [ INFO: possible circular locking dependency detected ]
[ 66.540000] 2.6.39.4 #6
[ 66.540000] -------------------------------------------------------
[ 66.540000] find/1417 is trying to acquire lock:
[ 66.540000] (&mm->mmap_sem){++++++}, at: [<800cf728>] might_fault+0x38/0x90
[ 66.540000]
[ 66.540000] but task is already holding lock:
[ 66.540000] (&f->sem){+.+.+.}, at: [<8013e630>] jffs2_readdir+0x10c/0x1cc
[ 66.540000]
[ 66.540000] which lock already depends on the new lock.
[ 66.540000]
[ 66.540000]
[ 66.540000] the existing dependency chain (in reverse order) is:
[ 66.540000]
[ 66.540000] -> #1 (&f->sem){+.+.+.}:
[ 66.540000] [<800a5e18>] lock_acquire+0x60/0x88
[ 66.540000] [<8027f8a4>] mutex_lock_nested+0x54/0x30c
[ 66.540000] [<8013ede0>] jffs2_readpage+0x2c/0x6c
[ 66.540000] [<800c0fa4>] __do_page_cache_readahead+0x214/0x27c
[ 66.540000] [<800c1300>] ra_submit+0x28/0x34
[ 66.540000] [<800b9ff0>] filemap_fault+0x1bc/0x414
[ 66.540000] [<800cfab8>] __do_fault+0x70/0x44c
[ 66.540000] [<800d2e1c>] handle_pte_fault+0x380/0x78c
[ 66.540000] [<800d32dc>] handle_mm_fault+0xb4/0xe0
[ 66.540000] [<8006c000>] do_page_fault+0x100/0x2f0
[ 66.540000] [<80062880>] ret_from_exception+0x0/0xc
[ 66.540000]
[ 66.540000] -> #0 (&mm->mmap_sem){++++++}:
[ 66.540000] [<800a51b0>] __lock_acquire+0x10d0/0x1818
[ 66.540000] [<800a5e18>] lock_acquire+0x60/0x88
[ 66.540000] [<800cf750>] might_fault+0x60/0x90
[ 66.540000] [<800f8038>] filldir64+0xe8/0x158
[ 66.540000] [<8013e68c>] jffs2_readdir+0x168/0x1cc
[ 66.540000] [<800f8364>] vfs_readdir+0x88/0xd8
[ 66.540000] [<800f8588>] sys_getdents64+0x74/0xdc
[ 66.540000] [<8006a178>] stack_done+0x20/0x40
[ 66.540000]
[ 66.540000] other info that might help us debug this:
[ 66.540000]
[ 66.540000] 2 locks held by find/1417:
[ 66.540000] #0: (&sb->s_type->i_mutex_key#7){+.+.+.}, at: [<800f8334>]
vfs_readdir+0x58/0xd8
[ 66.540000] #1: (&f->sem){+.+.+.}, at: [<8013e630>]
jffs2_readdir+0x10c/0x1cc
[ 66.540000]
[ 66.540000] stack backtrace:
[ 66.540000] Call Trace:
[ 66.540000] [<8027dd14>] dump_stack+0x8/0x34
[ 66.540000] [<800a2b6c>] print_circular_bug+0xd4/0xf8
[ 66.540000] [<800a51b0>] __lock_acquire+0x10d0/0x1818
[ 66.540000] [<800a5e18>] lock_acquire+0x60/0x88
[ 66.540000] [<800cf750>] might_fault+0x60/0x90
[ 66.540000] [<800f8038>] filldir64+0xe8/0x158
[ 66.540000] [<8013e68c>] jffs2_readdir+0x168/0x1cc
[ 66.540000] [<800f8364>] vfs_readdir+0x88/0xd8
[ 66.540000] [<800f8588>] sys_getdents64+0x74/0xdc
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel