From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Wu Subject: lockdep splat while exiting PRIME Date: Sun, 08 Jun 2014 15:29:45 +0200 Message-ID: <1545835.7YpYcIvGmb@al> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: intel-gfx@lists.freedesktop.org Hi, While trying PRIME, I got a lockdep warning after exiting glxgears. Is it harmful? The command was: DRI_PRIME=1 glxgears Offload provider is a GT425M (NVC0), output sink is an Intel i5-460M. Kind regards, Peter dmesg: ============================================= [ INFO: possible recursive locking detected ] 3.15.0-rc8-custom-00058-gd2cfd31 #1 Tainted: G O --------------------------------------------- X/25827 is trying to acquire lock: (&dev->struct_mutex){+.+.+.}, at: [] i915_gem_unmap_dma_buf+0x36/0xd0 [i915] but task is already holding lock: (&dev->struct_mutex){+.+.+.}, at: [] drm_gem_object_handle_unreference_unlocked+0x105/0x130 [drm] other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&dev->struct_mutex); lock(&dev->struct_mutex); *** DEADLOCK *** May be due to missing lock nesting notation 1 lock held by X/25827: #0: (&dev->struct_mutex){+.+.+.}, at: [] drm_gem_object_handle_unreference_unlocked+0x105/0x130 [drm] stack backtrace: CPU: 1 PID: 25827 Comm: X Tainted: G O 3.15.0-rc8-custom-00058-gd2cfd31 #1 Hardware name: CLEVO CO. B7130 /B7130 , BIOS 6.00 08/27/2010 ffffffff822588a0 ffff880230767ae0 ffffffff815f14da ffff880226594260 ffff880230767bb0 ffffffff810a1461 0000000030767bc0 ffff880226594288 ffff880230767b00 ffff880226594ae0 0000000000464232 0000000000000001 Call Trace: [] dump_stack+0x4e/0x7a [] __lock_acquire+0x19d1/0x1ab0 [] lock_acquire+0x95/0x130 [] ? i915_gem_unmap_dma_buf+0x36/0xd0 [i915] [] ? i915_gem_unmap_dma_buf+0x36/0xd0 [i915] [] mutex_lock_nested+0x65/0x400 [] ? i915_gem_unmap_dma_buf+0x36/0xd0 [i915] [] i915_gem_unmap_dma_buf+0x36/0xd0 [i915] [] dma_buf_unmap_attachment+0x4c/0x70 [] drm_prime_gem_destroy+0x22/0x40 [drm] [] nouveau_gem_object_del+0x3e/0x60 [nouveau] [] drm_gem_object_free+0x2a/0x40 [drm] [] drm_gem_object_handle_unreference_unlocked+0x128/0x130 [drm] [] drm_gem_handle_delete+0xba/0x110 [drm] [] drm_gem_close_ioctl+0x25/0x30 [drm] [] drm_ioctl+0x1e0/0x5f0 [drm] [] ? drm_gem_handle_create+0x40/0x40 [drm] [] ? _raw_spin_unlock_irqrestore+0x5d/0x80 [] ? trace_hardirqs_on_caller+0x15d/0x200 [] ? trace_hardirqs_on+0xd/0x10 [] ? _raw_spin_unlock_irqrestore+0x42/0x80 [] nouveau_drm_ioctl+0x65/0xa0 [nouveau] [] do_vfs_ioctl+0x2f0/0x4f0 [] ? __fget+0xac/0xf0 [] ? __fget+0x5/0xf0 [] SyS_ioctl+0x81/0xa0 [] system_call_fastpath+0x16/0x1b