Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761628Ab3DBQut (ORCPT ); Tue, 2 Apr 2013 12:50:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:64596 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756840Ab3DBQur (ORCPT ); Tue, 2 Apr 2013 12:50:47 -0400 Date: Tue, 2 Apr 2013 12:50:42 -0400 From: Dave Jones To: Linux Kernel Cc: bskeggs@redhat.com, airlied@linux.ie Subject: 3.9-rc4 Nouveau/DRM lockdep trace Message-ID: <20130402165042.GA11021@redhat.com> Mail-Followup-To: Dave Jones , Linux Kernel , bskeggs@redhat.com, airlied@linux.ie MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6338 Lines: 126 I see this on boot on one my systems.. ====================================================== [ INFO: possible circular locking dependency detected ] 3.9.0-0.rc4.git0.1.fc19.x86_64 #1 Not tainted ------------------------------------------------------- dhclient-script/350 is trying to acquire lock: (&(&dev->vblank_time_lock)->rlock){-.....}, at: [] drm_handle_vblank+0x62/0x3d0 [drm] but task is already holding lock: (&(&event->lock)->rlock#2){-.....}, at: [] nouveau_event_trigger+0x35/0xe0 [nouveau] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&(&event->lock)->rlock#2){-.....}: [] lock_acquire+0xa2/0x1f0 [] _raw_spin_lock_irqsave+0x5e/0xa0 [] nouveau_event_get+0x20/0x80 [nouveau] [] nouveau_drm_vblank_enable+0x47/0x50 [nouveau] [] drm_vblank_get+0xe8/0x2c0 [drm] [] drm_vblank_pre_modeset.part.2+0x3e/0x60 [drm] [] drm_vblank_pre_modeset+0x1a/0x20 [drm] [] nv_crtc_prepare+0x73/0x1f0 [nouveau] [] drm_crtc_helper_set_mode+0x267/0x450 [drm_kms_helper] [] drm_crtc_helper_set_config+0xa32/0xb50 [drm_kms_helper] [] drm_mode_set_config_internal+0x26/0x50 [drm] [] drm_fb_helper_set_par+0x71/0xf0 [drm_kms_helper] [] fbcon_init+0x514/0x5a0 [] visual_init+0xbc/0x120 [] do_bind_con_driver+0x163/0x330 [] do_take_over_console+0x49/0x60 [] do_fbcon_takeover+0x63/0xd0 [] fbcon_event_notify+0x635/0x750 [] notifier_call_chain+0x66/0x150 [] __blocking_notifier_call_chain+0x67/0xc0 [] blocking_notifier_call_chain+0x16/0x20 [] fb_notifier_call_chain+0x1b/0x20 [] register_framebuffer+0x1cb/0x310 [] drm_fb_helper_initial_config+0x32f/0x500 [drm_kms_helper] [] nouveau_fbcon_init+0xe8/0x140 [nouveau] [] nouveau_drm_load+0x404/0x5c0 [nouveau] [] drm_get_pci_dev+0x176/0x2b0 [drm] [] nouveau_drm_probe+0x212/0x2a0 [nouveau] [] local_pci_probe+0x3e/0x70 [] pci_device_probe+0x111/0x120 [] driver_probe_device+0x87/0x390 [] __driver_attach+0x93/0xa0 [] bus_for_each_dev+0x63/0xa0 [] driver_attach+0x1e/0x20 [] bus_add_driver+0x1f0/0x2b0 [] driver_register+0x71/0x150 [] __pci_register_driver+0x60/0x70 [] drm_pci_init+0x11a/0x130 [drm] [] nouveau_drm_init+0x4d/0x1000 [nouveau] [] do_one_initcall+0x10a/0x160 [] load_module+0x1ead/0x2870 [] sys_init_module+0xc1/0x110 [] system_call_fastpath+0x16/0x1b -> #0 (&(&dev->vblank_time_lock)->rlock){-.....}: [] __lock_acquire+0x1a36/0x1a60 [] lock_acquire+0xa2/0x1f0 [] _raw_spin_lock_irqsave+0x5e/0xa0 [] drm_handle_vblank+0x62/0x3d0 [drm] [] nouveau_drm_vblank_handler+0x15/0x20 [nouveau] [] nouveau_event_trigger+0x81/0xe0 [nouveau] [] nv04_disp_intr+0x91/0xb0 [nouveau] [] nouveau_mc_intr+0xbe/0x110 [nouveau] [] nouveau_irq_handler+0x71/0x80 [nouveau] [] handle_irq_event_percpu+0x56/0x390 [] handle_irq_event+0x3d/0x60 [] handle_fasteoi_irq+0x5a/0x100 [] handle_irq+0xbf/0x150 [] do_IRQ+0x4d/0xc0 [] ret_from_intr+0x0/0x1a other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&(&event->lock)->rlock#2); lock(&(&dev->vblank_time_lock)->rlock); lock(&(&event->lock)->rlock#2); lock(&(&dev->vblank_time_lock)->rlock); *** DEADLOCK *** 1 lock held by dhclient-script/350: #0: (&(&event->lock)->rlock#2){-.....}, at: [] nouveau_event_trigger+0x35/0xe0 [nouveau] stack backtrace: Pid: 350, comm: dhclient-script Not tainted 3.9.0-0.rc4.git0.1.fc19.x86_64 #1 Call Trace: [] print_circular_bug+0x201/0x20f [] __lock_acquire+0x1a36/0x1a60 [] ? mark_lock+0x102/0x2a0 [] lock_acquire+0xa2/0x1f0 [] ? drm_handle_vblank+0x62/0x3d0 [drm] [] _raw_spin_lock_irqsave+0x5e/0xa0 [] ? drm_handle_vblank+0x62/0x3d0 [drm] [] drm_handle_vblank+0x62/0x3d0 [drm] [] nouveau_drm_vblank_handler+0x15/0x20 [nouveau] [] nouveau_event_trigger+0x81/0xe0 [nouveau] [] nv04_disp_intr+0x91/0xb0 [nouveau] [] nouveau_mc_intr+0xbe/0x110 [nouveau] [] nouveau_irq_handler+0x71/0x80 [nouveau] [] handle_irq_event_percpu+0x56/0x390 [] handle_irq_event+0x3d/0x60 [] handle_fasteoi_irq+0x5a/0x100 [] handle_irq+0xbf/0x150 [] ? irq_enter+0x50/0xa0 [] do_IRQ+0x4d/0xc0 [] common_interrupt+0x72/0x72 [] ? retint_swapgs+0x13/0x1b -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/