PROBLEM: JFFS2 deadlock on Linux 3.14.19

Ivan Grimaldi grimaldi.ivan at gmail.com
Wed Sep 24 04:26:13 EDT 2014


Hello all,

I  have a custom board based on Freescale i.MX6DL, and at start time i
received a JFFS2 deadlock.

My kernel version is v3.14.19


Regards
Ivan Grimaldi

----

======================================================
[ INFO: possible circular locking dependency detected ]
3.14.19-g849ea74-dirty #11 Not tainted
-------------------------------------------------------
rc/49 is trying to acquire lock:
 (&mm->mmap_sem){++++++}, at: [<800c0928>] might_fault+0x44/0x94

but task is already holding lock:
 (&f->sem){+.+.+.}, at: [<8018cff8>] jffs2_readdir+0x44/0x1d0

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&f->sem){+.+.+.}:
       [<80464ec0>] mutex_lock_nested+0x58/0x3dc
       [<8018e9dc>] jffs2_readpage+0x28/0x54
       [<800aca40>] __do_page_cache_readahead+0x304/0x330
       [<800ad108>] ra_submit+0x30/0x38
       [<800a3ba0>] filemap_fault+0x458/0x528
       [<800c03e0>] __do_fault+0x70/0x4b0
       [<800c3bf0>] handle_mm_fault+0x11c/0x8d0
       [<8001ae58>] do_page_fault+0x1f0/0x3cc
       [<8001b18c>] do_translation_fault+0xb4/0xb8
       [<80008458>] do_DataAbort+0x40/0xa0
       [<80012e9c>] __dabt_svc+0x3c/0x60
       [<8012a45c>] load_elf_binary+0x12fc/0x1364
       [<800e34bc>] search_binary_handler+0x8c/0x1cc
       [<800e48d8>] do_execve+0x4a8/0x588
       [<8000882c>] run_init_process+0x2c/0x30
       [<80008844>] try_to_run_init_process+0x14/0x44
       [<8045c338>] kernel_init+0xa8/0xf8
       [<8000e948>] ret_from_fork+0x14/0x2c

-> #0 (&mm->mmap_sem){++++++}:
       [<800629e8>] lock_acquire+0x70/0x84
       [<800c0950>] might_fault+0x6c/0x94
       [<800ef774>] filldir64+0x4c/0x184
       [<8018d088>] jffs2_readdir+0xd4/0x1d0
       [<800ef580>] iterate_dir+0x7c/0xa8
       [<800efa1c>] SyS_getdents64+0x80/0xf0
       [<8000e880>] ret_fast_syscall+0x0/0x48

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&f->sem);
                               lock(&mm->mmap_sem);
                               lock(&f->sem);
  lock(&mm->mmap_sem);

 *** DEADLOCK ***

2 locks held by rc/49:
 #0:  (&type->i_mutex_dir_key){+.+.+.}, at: [<800ef53c>]
iterate_dir+0x38/0xa8
 #1:  (&f->sem){+.+.+.}, at: [<8018cff8>] jffs2_readdir+0x44/0x1d0

stack backtrace:
CPU: 1 PID: 49 Comm: rc Not tainted 3.14.19-g849ea74-dirty #11
Backtrace:
[<800120e0>] (dump_backtrace) from [<800123bc>] (show_stack+0x18/0x1c)
 r6:806e9970 r5:00000000 r4:80615004 r3:00000000
[<800123a4>] (show_stack) from [<804619a0>] (dump_stack+0x88/0x98)
[<80461918>] (dump_stack) from [<8045fb98>] (print_circular_bug+0x300/0x30c)
 r5:806ea0e0 r4:806ea0e0
[<8045f898>] (print_circular_bug) from [<80061b28>]
(__lock_acquire+0x16e0/0x1da4)
 r10:00000002 r9:806cd6f0 r8:80b6479c r7:bf3659e0 r6:bf3659e0 r5:80b1e36c
 r4:bf3659c8 r3:bf3659c8
[<80060448>] (__lock_acquire) from [<800629e8>] (lock_acquire+0x70/0x84)
 r10:be8d9f60 r9:00000002 r8:00000032 r7:00000001 r6:be8d8000 r5:00000000
 r4:60060013
[<80062978>] (lock_acquire) from [<800c0950>] (might_fault+0x6c/0x94)
 r7:00000030 r6:00000017 r5:00000000 r4:be8d8000
[<800c08e4>] (might_fault) from [<800ef774>] (filldir64+0x4c/0x184)
 r5:0033be68 r4:be8d9f60
[<800ef728>] (filldir64) from [<8018d088>] (jffs2_readdir+0xd4/0x1d0)
 r10:be8d9f60 r9:00000002 r8:000000e7 r7:bed62f30 r6:be8c4180 r5:00000000
 r4:00000002
[<8018cfb4>] (jffs2_readdir) from [<800ef580>] (iterate_dir+0x7c/0xa8)
 r10:00000000 r9:be8d8000 r8:be8d9f60 r7:bed63030 r6:bed62f98 r5:00000000
 r4:be908a00
[<800ef504>] (iterate_dir) from [<800efa1c>] (SyS_getdents64+0x80/0xf0)
 r8:be908a00 r7:be908a00 r6:00008000 r5:00000000 r4:0033be28 r3:00000000
[<800ef99c>] (SyS_getdents64) from [<8000e880>] (ret_fast_syscall+0x0/0x48)
 r9:be8d8000 r8:8000ea44 r7:000000d9 r6:0033be2c r5:00000000 r4:0033be28
udevd[72]: starting version 182
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20140924/306aa7b7/attachment.html 


More information about the Kernelnewbies mailing list