Bug 49030

Summary: Possible recursive locking detected in r600g
Product: DRI Reporter: Alexandre Demers <alexandre.f.demers>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: minor    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Alexandre Demers 2012-04-20 21:23:15 UTC
Here is what I see under dmesg:

=============================================
[ INFO: possible recursive locking detected ]
3.4.0-rc3+ #120 Tainted: G         C  
---------------------------------------------
gnome-shell/1120 is trying to acquire lock:
 (&vm->mutex){+.+...}, at: [<ffffffffa034be9a>] radeon_vm_unbind+0x24/0x40 [radeon]

but task is already holding lock:
 (&vm->mutex){+.+...}, at: [<ffffffffa035b84c>] radeon_cs_ioctl+0x434/0x598 [radeon]

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&vm->mutex);
  lock(&vm->mutex);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

2 locks held by gnome-shell/1120:
 #0:  (&mutex->mutex){+.+.+.}, at: [<ffffffffa035b44e>] radeon_cs_ioctl+0x36/0x598 [radeon]
 #1:  (&vm->mutex){+.+...}, at: [<ffffffffa035b84c>] radeon_cs_ioctl+0x434/0x598 [radeon]

stack backtrace:
Pid: 1120, comm: gnome-shell Tainted: G         C   3.4.0-rc3+ #120
Call Trace:
 [<ffffffff8108acd9>] __lock_acquire+0xbf6/0xd11
 [<ffffffff8108a5a3>] ? __lock_acquire+0x4c0/0xd11
 [<ffffffff8108b211>] lock_acquire+0x92/0x104
 [<ffffffffa034be9a>] ? radeon_vm_unbind+0x24/0x40 [radeon]
 [<ffffffff8108a5a3>] ? __lock_acquire+0x4c0/0xd11
 [<ffffffff814d4460>] __mutex_lock_common+0x48/0x34e
 [<ffffffffa034be9a>] ? radeon_vm_unbind+0x24/0x40 [radeon]
 [<ffffffffa034be9a>] ? radeon_vm_unbind+0x24/0x40 [radeon]
 [<ffffffff8108b69e>] ? trace_hardirqs_on_caller+0x123/0x17f
 [<ffffffff814d4839>] mutex_lock_nested+0x2f/0x36
 [<ffffffffa035b84c>] ? radeon_cs_ioctl+0x434/0x598 [radeon]
 [<ffffffffa034be9a>] radeon_vm_unbind+0x24/0x40 [radeon]
 [<ffffffffa034c2f9>] radeon_vm_bind+0xb9/0x1c4 [radeon]
 [<ffffffffa035b857>] radeon_cs_ioctl+0x43f/0x598 [radeon]
 [<ffffffffa01fa9f9>] drm_ioctl+0x2d6/0x3c0 [drm]
 [<ffffffff8128dfed>] ? rcu_read_unlock+0x1c/0x1e
 [<ffffffffa035b418>] ? radeon_cs_finish_pages+0x91/0x91 [radeon]
 [<ffffffff8128e44a>] ? avc_has_perm_flags+0x6b/0x7f
 [<ffffffff8113c20c>] vfs_ioctl+0x24/0x2f
 [<ffffffff8113caf7>] do_vfs_ioctl+0x412/0x455
 [<ffffffff8113cb90>] sys_ioctl+0x56/0x7a
 [<ffffffff814dd3ad>] system_call_fastpath+0x1a/0x1f


It seems to be only a warning. However, if possible, it should be silenced if there is no reason to have it. I know I reported something similar a couple of months ago and it was fixed by moving some code around.
Comment 1 Alexandre Demers 2012-04-27 22:13:05 UTC
Under 3.4.0-rc4, it doesn't seem to appear anymore.
Comment 2 Alexandre Demers 2012-07-19 04:58:03 UTC
Confirmed: can't see it anymore for a couple of kernel updates (now running 3.5-rc7)

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.