s5p-mfc - WARNING: possible circular locking dependency detected,[ 4.14.0-rc2
Shuah Khan
shuahkh at osg.samsung.com
Tue Sep 26 13:10:01 PDT 2017
When running gstreamer pipeline with s5p-mfc → exynos-gsc→ exynos-drm,
I am seeing circular locking dependency detected warning in 4.14-rc2.
This is a regression from 4.13. The pipeline does run to completion
video streaming works. Are you aware of this problem, or would you
like it to be bisected.
gst-launch-1.0 filesrc location=/media/shuah_arm/GH3_MOV_HD.mp4 ! qtdemux ! h264parse ! v4l2video4dec capture-io-mode=dmabuf ! v4l2video7convert output-io-mode=dmabuf-import ! kmssink force-modesetting=true
[ 2134.994539] ======================================================
[ 2135.000661] WARNING: possible circular locking dependency detected
[ 2135.006815] 4.14.0-rc2 #1 Not tainted
[ 2135.010452] ------------------------------------------------------
[ 2135.016606] qtdemux0:sink/2700 is trying to acquire lock:
[ 2135.021978] (&dev->mfc_mutex){+.+.}, at: [<bf109540>] s5p_mfc_mmap+0x28/0xd4 [s5p_mfc]
[ 2135.029950]
but task is already holding lock:
[ 2135.035755] (&mm->mmap_sem){++++}, at: [<c01df2e4>] vm_mmap_pgoff+0x44/0xb8
[ 2135.042774]
which lock already depends on the new lock.
[ 2135.050920]
the existing dependency chain (in reverse order) is:
[ 2135.058372]
-> #2 (&mm->mmap_sem){++++}:
[ 2135.063751] __might_fault+0x80/0xb0
[ 2135.067822] filldir64+0xc0/0x2f8
[ 2135.071635] call_filldir+0xb0/0x14c
[ 2135.075705] ext4_readdir+0x768/0x90c
[ 2135.079864] iterate_dir+0x74/0x168
[ 2135.083851] SyS_getdents64+0x7c/0x1a0
[ 2135.088099] ret_fast_syscall+0x0/0x28
[ 2135.092340]
-> #1 (&type->i_mutex_dir_key#2){++++}:
[ 2135.098671] down_read+0x48/0x90
[ 2135.102395] lookup_slow+0x74/0x178
[ 2135.106380] walk_component+0x1a4/0x2e4
[ 2135.110713] link_path_walk+0x174/0x4a0
[ 2135.115045] path_openat+0x68/0x944
[ 2135.119031] do_filp_open+0x60/0xc4
[ 2135.123019] file_open_name+0xe4/0x114
[ 2135.127263] filp_open+0x28/0x48
[ 2135.130990] kernel_read_file_from_path+0x30/0x78
[ 2135.136193] _request_firmware+0x3ec/0x78c
[ 2135.140782] request_firmware+0x3c/0x54
[ 2135.145133] s5p_mfc_load_firmware+0x44/0x140 [s5p_mfc]
[ 2135.150848] s5p_mfc_open+0x2d4/0x4e0 [s5p_mfc]
[ 2135.155892] v4l2_open+0xa0/0x104 [videodev]
[ 2135.160627] chrdev_open+0xa4/0x18c
[ 2135.164612] do_dentry_open+0x208/0x310
[ 2135.168945] path_openat+0x28c/0x944
[ 2135.173017] do_filp_open+0x60/0xc4
[ 2135.177002] do_sys_open+0x118/0x1c8
[ 2135.181076] ret_fast_syscall+0x0/0x28
[ 2135.185320]
-> #0 (&dev->mfc_mutex){+.+.}:
[ 2135.190871] lock_acquire+0x6c/0x88
[ 2135.194855] __mutex_lock+0x68/0xa34
[ 2135.198927] mutex_lock_interruptible_nested+0x1c/0x24
[ 2135.204575] s5p_mfc_mmap+0x28/0xd4 [s5p_mfc]
[ 2135.209430] v4l2_mmap+0x54/0x88 [videodev]
[ 2135.214093] mmap_region+0x3a8/0x638
[ 2135.218163] do_mmap+0x330/0x3a4
[ 2135.221890] vm_mmap_pgoff+0x90/0xb8
[ 2135.225962] SyS_mmap_pgoff+0x90/0xc0
[ 2135.230122] ret_fast_syscall+0x0/0x28
[ 2135.234366]
other info that might help us debug this:
[ 2135.242339] Chain exists of:
&dev->mfc_mutex --> &type->i_mutex_dir_key#2 --> &mm->mmap_sem
[ 2135.253690] Possible unsafe locking scenario:
[ 2135.259583] CPU0 CPU1
[ 2135.264089] ---- ----
[ 2135.268594] lock(&mm->mmap_sem);
[ 2135.271974] lock(&type->i_mutex_dir_key#2);
[ 2135.278820] lock(&mm->mmap_sem);
[ 2135.284712] lock(&dev->mfc_mutex);
[ 2135.288265]
*** DEADLOCK ***
[ 2135.294159] 1 lock held by qtdemux0:sink/2700:
[ 2135.298577] #0: (&mm->mmap_sem){++++}, at: [<c01df2e4>] vm_mmap_pgoff+0x44/0xb8
[ 2135.306029]
stack backtrace:
[ 2135.310365] CPU: 7 PID: 2700 Comm: qtdemux0:sink Not tainted 4.14.0-rc2 #1
[ 2135.317208] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[ 2135.323282] [<c01102c8>] (unwind_backtrace) from [<c010cabc>] (show_stack+0x10/0x14)
[ 2135.330992] [<c010cabc>] (show_stack) from [<c08543a4>] (dump_stack+0x98/0xc4)
[ 2135.338184] [<c08543a4>] (dump_stack) from [<c016b2fc>] (print_circular_bug+0x254/0x410)
[ 2135.346241] [<c016b2fc>] (print_circular_bug) from [<c016c580>] (check_prev_add+0x468/0x938)
[ 2135.354647] [<c016c580>] (check_prev_add) from [<c016f4dc>] (__lock_acquire+0x1314/0x14fc)
[ 2135.362878] [<c016f4dc>] (__lock_acquire) from [<c016fefc>] (lock_acquire+0x6c/0x88)
[ 2135.370591] [<c016fefc>] (lock_acquire) from [<c0869fb4>] (__mutex_lock+0x68/0xa34)
[ 2135.378217] [<c0869fb4>] (__mutex_lock) from [<c086aa08>] (mutex_lock_interruptible_nested+0x1c/0x24)
[ 2135.387419] [<c086aa08>] (mutex_lock_interruptible_nested) from [<bf109540>] (s5p_mfc_mmap+0x28/0xd4 [s5p_mfc])
[ 2135.397489] [<bf109540>] (s5p_mfc_mmap [s5p_mfc]) from [<bf019120>] (v4l2_mmap+0x54/0x88 [videodev])
[ 2135.406571] [<bf019120>] (v4l2_mmap [videodev]) from [<c01f4798>] (mmap_region+0x3a8/0x638)
[ 2135.414870] [<c01f4798>] (mmap_region) from [<c01f4d58>] (do_mmap+0x330/0x3a4)
[ 2135.422063] [<c01f4d58>] (do_mmap) from [<c01df330>] (vm_mmap_pgoff+0x90/0xb8)
[ 2135.429255] [<c01df330>] (vm_mmap_pgoff) from [<c01f28cc>] (SyS_mmap_pgoff+0x90/0xc0)
[ 2135.437054] [<c01f28cc>] (SyS_mmap_pgoff) from [<c0108820>] (ret_fast_syscall+0x0/0x28)
thanks,
-- Shuah
--
Shuah Khan
Sr. Linux Kernel Developer
Open Source Innovation Group
Samsung Research America (Silicon Valley)
shuahkh at osg.samsung.com
More information about the linux-arm-kernel
mailing list