* nouveau lockdep warning
@ 2010-09-01 7:26 Johannes Berg
2010-09-01 12:09 ` Francisco Jerez
0 siblings, 1 reply; 3+ messages in thread
From: Johannes Berg @ 2010-09-01 7:26 UTC (permalink / raw)
To: Francisco Jerez; +Cc: Ben Skeggs, dri-devel
Francisco,
The patch you pointed me works, but now, although it's probably not due
to that patch, I get a lockdep warning:
[ 75.428119] [drm] nouveau 0000:02:00.0: nouveau_channel_free: freeing fifo 2
[ 75.430015]
[ 75.430015] ======================================================
[ 75.430015] [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
[ 75.430015] 2.6.36-rc3-wl-47417-g8164729-dirty #183
[ 75.430015] ------------------------------------------------------
[ 75.430015] Xorg/3109 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
[ 75.430015] (&(&mm->unused_lock)->rlock){+.+...}, at: [<ffffffffa075f303>] drm_mm_put_block+0x93/0x190 [drm]
[ 75.430015]
[ 75.430015] and this task is already holding:
[ 75.430015] (&(&dev_priv->context_switch_lock)->rlock){-.....}, at: [<ffffffffa07ccbc9>] nouveau_channel_free+0xf9/0x2b0 [nouveau]
[ 75.430015] which would create a new lock dependency:
[ 75.430015] (&(&dev_priv->context_switch_lock)->rlock){-.....} -> (&(&mm->unused_lock)->rlock){+.+...}
[ 75.430015]
[ 75.430015] but this new dependency connects a HARDIRQ-irq-safe lock:
[ 75.430015] [drm] nouveau 0000:02:00.0: GPU lockup - switching to software fbcon
[ 75.430015] (&(&dev_priv->context_switch_lock)->rlock){-.....}
[ 75.430015] ... which became HARDIRQ-irq-safe at:
[ 75.430015] [<ffffffff81081a5d>] mark_irqflags+0x17d/0x190
[ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff814965c2>] _raw_spin_lock_irqsave+0x52/0x90
[ 75.430015] [<ffffffffa07d518f>] nouveau_irq_handler+0x6f/0x1b0 [nouveau]
[ 75.430015] [<ffffffff810a5271>] handle_IRQ_event+0x81/0x2e0
[ 75.430015] [<ffffffff810a7d4c>] handle_fasteoi_irq+0x7c/0x100
[ 75.430015] [<ffffffff81005122>] handle_irq+0x22/0x30
[ 75.430015] [<ffffffff810045c3>] do_IRQ+0x73/0xf0
[ 75.430015] [<ffffffff81497713>] ret_from_intr+0x0/0xf
[ 75.430015] [<ffffffff813274f1>] dev_set_name+0x41/0x50
[ 75.430015] [<ffffffff812aef0c>] backlight_device_register+0xcc/0x2d0
[ 75.430015] [<ffffffffa0838c07>] nouveau_nv50_backlight_init+0x87/0xf0 [nouveau]
[ 75.430015] [<ffffffffa0838c9d>] nouveau_backlight_init+0x2d/0x50 [nouveau]
[ 75.430015] [<ffffffffa07cc243>] nouveau_card_init+0x263/0x300 [nouveau]
[ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
[ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
[ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
[ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
[ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
[ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
[ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
[ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
[ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
[ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
[ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
[ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
[ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
[ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
[ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
[ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
[ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
[ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015]
[ 75.430015] to a HARDIRQ-irq-unsafe lock:
[ 75.430015] (&(&mm->unused_lock)->rlock){+.+...}
[ 75.430015] ... which became HARDIRQ-irq-unsafe at:
[ 75.430015] ... [<ffffffff81081a00>] mark_irqflags+0x120/0x190
[ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
[ 75.430015] [<ffffffffa075efb5>] drm_mm_pre_get+0x25/0x1e0 [drm]
[ 75.430015] [<ffffffffa07b123b>] ttm_bo_setup_vm+0x2b/0x140 [ttm]
[ 75.430015] [<ffffffffa07b352d>] ttm_bo_init+0x24d/0x290 [ttm]
[ 75.430015] [<ffffffffa07d8831>] nouveau_bo_new+0x161/0x2d0 [nouveau]
[ 75.430015] [<ffffffffa07cdd30>] nouveau_mem_init+0x200/0x580 [nouveau]
[ 75.430015] [<ffffffffa07cc0d6>] nouveau_card_init+0xf6/0x300 [nouveau]
[ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
[ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
[ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
[ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
[ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
[ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
[ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
[ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
[ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
[ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
[ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
[ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
[ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
[ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
[ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
[ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
[ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
[ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015]
[ 75.430015] other info that might help us debug this:
[ 75.430015]
[ 75.430015] 2 locks held by Xorg/3109:
[ 75.430015] #0: (drm_global_mutex){+.+.+.}, at: [<ffffffffa0753041>] drm_ioctl+0x361/0x4d0 [drm]
[ 75.430015] #1: (&(&dev_priv->context_switch_lock)->rlock){-.....}, at: [<ffffffffa07ccbc9>] nouveau_channel_free+0xf9/0x2b0 [nouveau]
[ 75.430015]
[ 75.430015] the dependencies between HARDIRQ-irq-safe lock and the holding lock:
[ 75.430015] -> (&(&dev_priv->context_switch_lock)->rlock){-.....} ops: 21 {
[ 75.430015] IN-HARDIRQ-W at:
[ 75.430015] [<ffffffff81081a5d>] mark_irqflags+0x17d/0x190
[ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff814965c2>] _raw_spin_lock_irqsave+0x52/0x90
[ 75.430015] [<ffffffffa07d518f>] nouveau_irq_handler+0x6f/0x1b0 [nouveau]
[ 75.430015] [<ffffffff810a5271>] handle_IRQ_event+0x81/0x2e0
[ 75.430015] [<ffffffff810a7d4c>] handle_fasteoi_irq+0x7c/0x100
[ 75.430015] [<ffffffff81005122>] handle_irq+0x22/0x30
[ 75.430015] [<ffffffff810045c3>] do_IRQ+0x73/0xf0
[ 75.430015] [<ffffffff81497713>] ret_from_intr+0x0/0xf
[ 75.430015] [<ffffffff813274f1>] dev_set_name+0x41/0x50
[ 75.430015] [<ffffffff812aef0c>] backlight_device_register+0xcc/0x2d0
[ 75.430015] [<ffffffffa0838c07>] nouveau_nv50_backlight_init+0x87/0xf0 [nouveau]
[ 75.430015] [<ffffffffa0838c9d>] nouveau_backlight_init+0x2d/0x50 [nouveau]
[ 75.430015] [<ffffffffa07cc243>] nouveau_card_init+0x263/0x300 [nouveau]
[ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
[ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
[ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
[ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
[ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
[ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
[ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
[ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
[ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
[ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
[ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
[ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
[ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
[ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
[ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
[ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
[ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
[ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015] INITIAL USE at:
[ 75.430015] [<ffffffff810855d2>] __lock_acquire+0x342/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff814965c2>] _raw_spin_lock_irqsave+0x52/0x90
[ 75.430015] [<ffffffffa07fb742>] nv50_fifo_create_context+0xf2/0x460 [nouveau]
[ 75.430015] [<ffffffffa07cd4f2>] nouveau_channel_alloc+0x352/0x5e0 [nouveau]
[ 75.430015] [<ffffffffa07cbed5>] nouveau_card_init_channel+0x45/0x150 [nouveau]
[ 75.430015] [<ffffffffa07cc237>] nouveau_card_init+0x257/0x300 [nouveau]
[ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
[ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
[ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
[ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
[ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
[ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
[ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
[ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
[ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
[ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
[ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
[ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
[ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
[ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
[ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
[ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
[ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
[ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015] }
[ 75.430015] ... key at: [<ffffffffa084c359>] __key.41268+0x0/0xfffffffffffece63 [nouveau]
[ 75.430015] ... acquired at:
[ 75.430015] [<ffffffff81082df8>] check_usage+0x138/0x1e0
[ 75.430015] [<ffffffff81082f00>] check_irq_usage+0x60/0xf0
[ 75.430015] [<ffffffff81083fb4>] check_prev_add+0xc4/0x710
[ 75.430015] [<ffffffff81085134>] validate_chain+0x5a4/0x700
[ 75.430015] [<ffffffff81085746>] __lock_acquire+0x4b6/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
[ 75.430015] [<ffffffffa075f303>] drm_mm_put_block+0x93/0x190 [drm]
[ 75.430015] [<ffffffffa07cfd35>] nouveau_gpuobj_del+0x135/0x1c0 [nouveau]
[ 75.430015] [<ffffffffa07d040d>] nouveau_gpuobj_ref_del+0x9d/0xf0 [nouveau]
[ 75.430015] [<ffffffffa08048c6>] nv50_graph_destroy_context+0xb6/0x110 [nouveau]
[ 75.430015] [<ffffffffa07ccbf8>] nouveau_channel_free+0x128/0x2b0 [nouveau]
[ 75.430015] [<ffffffffa07ccdee>] nouveau_ioctl_fifo_free+0x6e/0x80 [nouveau]
[ 75.430015] [<ffffffffa075305b>] drm_ioctl+0x37b/0x4d0 [drm]
[ 75.430015] [<ffffffff81124c7f>] do_vfs_ioctl+0x9f/0x330
[ 75.430015] [<ffffffff81124f5f>] sys_ioctl+0x4f/0x80
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015]
[ 75.430015]
[ 75.430015] the dependencies between the lock to be acquired and HARDIRQ-irq-unsafe lock:
[ 75.430015] -> (&(&mm->unused_lock)->rlock){+.+...} ops: 9351 {
[ 75.430015] HARDIRQ-ON-W at:
[ 75.430015] [<ffffffff81081a00>] mark_irqflags+0x120/0x190
[ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
[ 75.430015] [<ffffffffa075efb5>] drm_mm_pre_get+0x25/0x1e0 [drm]
[ 75.430015] [<ffffffffa07b123b>] ttm_bo_setup_vm+0x2b/0x140 [ttm]
[ 75.430015] [<ffffffffa07b352d>] ttm_bo_init+0x24d/0x290 [ttm]
[ 75.430015] [<ffffffffa07d8831>] nouveau_bo_new+0x161/0x2d0 [nouveau]
[ 75.430015] [<ffffffffa07cdd30>] nouveau_mem_init+0x200/0x580 [nouveau]
[ 75.430015] [<ffffffffa07cc0d6>] nouveau_card_init+0xf6/0x300 [nouveau]
[ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
[ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
[ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
[ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
[ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
[ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
[ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
[ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
[ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
[ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
[ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
[ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
[ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
[ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
[ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
[ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
[ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
[ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015] SOFTIRQ-ON-W at:
[ 75.430015] [<ffffffff81081a25>] mark_irqflags+0x145/0x190
[ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
[ 75.430015] [<ffffffffa075efb5>] drm_mm_pre_get+0x25/0x1e0 [drm]
[ 75.430015] [<ffffffffa07b123b>] ttm_bo_setup_vm+0x2b/0x140 [ttm]
[ 75.430015] [<ffffffffa07b352d>] ttm_bo_init+0x24d/0x290 [ttm]
[ 75.430015] [<ffffffffa07d8831>] nouveau_bo_new+0x161/0x2d0 [nouveau]
[ 75.430015] [<ffffffffa07cdd30>] nouveau_mem_init+0x200/0x580 [nouveau]
[ 75.430015] [<ffffffffa07cc0d6>] nouveau_card_init+0xf6/0x300 [nouveau]
[ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
[ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
[ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
[ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
[ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
[ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
[ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
[ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
[ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
[ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
[ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
[ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
[ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
[ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
[ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
[ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
[ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
[ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015] INITIAL USE at:
[ 75.430015] [<ffffffff810855d2>] __lock_acquire+0x342/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
[ 75.430015] [<ffffffffa075efb5>] drm_mm_pre_get+0x25/0x1e0 [drm]
[ 75.430015] [<ffffffffa07b123b>] ttm_bo_setup_vm+0x2b/0x140 [ttm]
[ 75.430015] [<ffffffffa07b352d>] ttm_bo_init+0x24d/0x290 [ttm]
[ 75.430015] [<ffffffffa07d8831>] nouveau_bo_new+0x161/0x2d0 [nouveau]
[ 75.430015] [<ffffffffa07cdd30>] nouveau_mem_init+0x200/0x580 [nouveau]
[ 75.430015] [<ffffffffa07cc0d6>] nouveau_card_init+0xf6/0x300 [nouveau]
[ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
[ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
[ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
[ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
[ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
[ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
[ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
[ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
[ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
[ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
[ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
[ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
[ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
[ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
[ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
[ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
[ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
[ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015] }
[ 75.430015] ... key at: [<ffffffffa07771fc>] __key.38649+0x0/0xffffffffffff3460 [drm]
[ 75.430015] ... acquired at:
[ 75.430015] [<ffffffff81082df8>] check_usage+0x138/0x1e0
[ 75.430015] [<ffffffff81082f00>] check_irq_usage+0x60/0xf0
[ 75.430015] [<ffffffff81083fb4>] check_prev_add+0xc4/0x710
[ 75.430015] [<ffffffff81085134>] validate_chain+0x5a4/0x700
[ 75.430015] [<ffffffff81085746>] __lock_acquire+0x4b6/0x9d0
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
[ 75.430015] [<ffffffffa075f303>] drm_mm_put_block+0x93/0x190 [drm]
[ 75.430015] [<ffffffffa07cfd35>] nouveau_gpuobj_del+0x135/0x1c0 [nouveau]
[ 75.430015] [<ffffffffa07d040d>] nouveau_gpuobj_ref_del+0x9d/0xf0 [nouveau]
[ 75.430015] [<ffffffffa08048c6>] nv50_graph_destroy_context+0xb6/0x110 [nouveau]
[ 75.430015] [<ffffffffa07ccbf8>] nouveau_channel_free+0x128/0x2b0 [nouveau]
[ 75.430015] [<ffffffffa07ccdee>] nouveau_ioctl_fifo_free+0x6e/0x80 [nouveau]
[ 75.430015] [<ffffffffa075305b>] drm_ioctl+0x37b/0x4d0 [drm]
[ 75.430015] [<ffffffff81124c7f>] do_vfs_ioctl+0x9f/0x330
[ 75.430015] [<ffffffff81124f5f>] sys_ioctl+0x4f/0x80
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
[ 75.430015]
[ 75.430015]
[ 75.430015] stack backtrace:
[ 75.430015] Pid: 3109, comm: Xorg Not tainted 2.6.36-rc3-wl-47417-g8164729-dirty #183
[ 75.430015] Call Trace:
[ 75.430015] [<ffffffff81082c1e>] print_bad_irq_dependency+0x2ce/0x370
[ 75.430015] [<ffffffff81082df8>] check_usage+0x138/0x1e0
[ 75.430015] [<ffffffff81082f00>] check_irq_usage+0x60/0xf0
[ 75.430015] [<ffffffff81083fb4>] check_prev_add+0xc4/0x710
[ 75.430015] [<ffffffff81009d17>] ? native_sched_clock+0x27/0x80
[ 75.430015] [<ffffffff81085134>] validate_chain+0x5a4/0x700
[ 75.430015] [<ffffffff81085746>] __lock_acquire+0x4b6/0x9d0
[ 75.430015] [<ffffffff81009d17>] ? native_sched_clock+0x27/0x80
[ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
[ 75.430015] [<ffffffffa075f303>] ? drm_mm_put_block+0x93/0x190 [drm]
[ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
[ 75.430015] [<ffffffffa075f303>] ? drm_mm_put_block+0x93/0x190 [drm]
[ 75.430015] [<ffffffffa075f303>] drm_mm_put_block+0x93/0x190 [drm]
[ 75.430015] [<ffffffffa07cfd35>] nouveau_gpuobj_del+0x135/0x1c0 [nouveau]
[ 75.430015] [<ffffffffa07d040d>] nouveau_gpuobj_ref_del+0x9d/0xf0 [nouveau]
[ 75.430015] [<ffffffffa08048c6>] nv50_graph_destroy_context+0xb6/0x110 [nouveau]
[ 75.430015] [<ffffffffa07ccbf8>] nouveau_channel_free+0x128/0x2b0 [nouveau]
[ 75.430015] [<ffffffffa07ccdee>] nouveau_ioctl_fifo_free+0x6e/0x80 [nouveau]
[ 75.430015] [<ffffffffa075305b>] drm_ioctl+0x37b/0x4d0 [drm]
[ 75.430015] [<ffffffff81009d17>] ? native_sched_clock+0x27/0x80
[ 75.430015] [<ffffffffa07ccd80>] ? nouveau_ioctl_fifo_free+0x0/0x80 [nouveau]
[ 75.430015] [<ffffffff81038281>] ? get_parent_ip+0x11/0x50
[ 75.430015] [<ffffffff81038281>] ? get_parent_ip+0x11/0x50
[ 75.430015] [<ffffffff8149ac3d>] ? sub_preempt_count+0x9d/0xd0
[ 75.430015] [<ffffffff8108042e>] ? put_lock_stats+0xe/0x30
[ 75.430015] [<ffffffff810f90c1>] ? sys_munmap+0x61/0x80
[ 75.430015] [<ffffffff81124c7f>] do_vfs_ioctl+0x9f/0x330
[ 75.430015] [<ffffffff81124f5f>] sys_ioctl+0x4f/0x80
[ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
(also, while I'm at asking questions, is it a known problem that
switching between using an external monitor and not using it will with
high probability lock up? Same for using dpms to turn off the screens,
though that might just be the same thing?)
johannes
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: nouveau lockdep warning
2010-09-01 7:26 nouveau lockdep warning Johannes Berg
@ 2010-09-01 12:09 ` Francisco Jerez
2010-09-01 12:36 ` Johannes Berg
0 siblings, 1 reply; 3+ messages in thread
From: Francisco Jerez @ 2010-09-01 12:09 UTC (permalink / raw)
To: Johannes Berg; +Cc: Ben Skeggs, dri-devel
[-- Attachment #1.1.1: Type: text/plain, Size: 28379 bytes --]
Johannes Berg <johannes@sipsolutions.net> writes:
> Francisco,
>
> The patch you pointed me works, but now, although it's probably not due
> to that patch, I get a lockdep warning:
>
> [ 75.428119] [drm] nouveau 0000:02:00.0: nouveau_channel_free: freeing fifo 2
> [ 75.430015]
> [ 75.430015] ======================================================
> [ 75.430015] [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
> [ 75.430015] 2.6.36-rc3-wl-47417-g8164729-dirty #183
> [ 75.430015] ------------------------------------------------------
> [ 75.430015] Xorg/3109 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
> [ 75.430015] (&(&mm->unused_lock)->rlock){+.+...}, at: [<ffffffffa075f303>] drm_mm_put_block+0x93/0x190 [drm]
> [ 75.430015]
> [ 75.430015] and this task is already holding:
> [ 75.430015] (&(&dev_priv->context_switch_lock)->rlock){-.....}, at: [<ffffffffa07ccbc9>] nouveau_channel_free+0xf9/0x2b0 [nouveau]
> [ 75.430015] which would create a new lock dependency:
> [ 75.430015] (&(&dev_priv->context_switch_lock)->rlock){-.....} -> (&(&mm->unused_lock)->rlock){+.+...}
> [ 75.430015]
> [ 75.430015] but this new dependency connects a HARDIRQ-irq-safe lock:
> [ 75.430015] [drm] nouveau 0000:02:00.0: GPU lockup - switching to software fbcon
> [ 75.430015] (&(&dev_priv->context_switch_lock)->rlock){-.....}
> [ 75.430015] ... which became HARDIRQ-irq-safe at:
> [ 75.430015] [<ffffffff81081a5d>] mark_irqflags+0x17d/0x190
> [ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff814965c2>] _raw_spin_lock_irqsave+0x52/0x90
> [ 75.430015] [<ffffffffa07d518f>] nouveau_irq_handler+0x6f/0x1b0 [nouveau]
> [ 75.430015] [<ffffffff810a5271>] handle_IRQ_event+0x81/0x2e0
> [ 75.430015] [<ffffffff810a7d4c>] handle_fasteoi_irq+0x7c/0x100
> [ 75.430015] [<ffffffff81005122>] handle_irq+0x22/0x30
> [ 75.430015] [<ffffffff810045c3>] do_IRQ+0x73/0xf0
> [ 75.430015] [<ffffffff81497713>] ret_from_intr+0x0/0xf
> [ 75.430015] [<ffffffff813274f1>] dev_set_name+0x41/0x50
> [ 75.430015] [<ffffffff812aef0c>] backlight_device_register+0xcc/0x2d0
> [ 75.430015] [<ffffffffa0838c07>] nouveau_nv50_backlight_init+0x87/0xf0 [nouveau]
> [ 75.430015] [<ffffffffa0838c9d>] nouveau_backlight_init+0x2d/0x50 [nouveau]
> [ 75.430015] [<ffffffffa07cc243>] nouveau_card_init+0x263/0x300 [nouveau]
> [ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
> [ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
> [ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
> [ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
> [ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
> [ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
> [ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
> [ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
> [ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
> [ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
> [ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
> [ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
> [ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
> [ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
> [ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
> [ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
> [ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
> [ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015]
> [ 75.430015] to a HARDIRQ-irq-unsafe lock:
> [ 75.430015] (&(&mm->unused_lock)->rlock){+.+...}
> [ 75.430015] ... which became HARDIRQ-irq-unsafe at:
> [ 75.430015] ... [<ffffffff81081a00>] mark_irqflags+0x120/0x190
> [ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
> [ 75.430015] [<ffffffffa075efb5>] drm_mm_pre_get+0x25/0x1e0 [drm]
> [ 75.430015] [<ffffffffa07b123b>] ttm_bo_setup_vm+0x2b/0x140 [ttm]
> [ 75.430015] [<ffffffffa07b352d>] ttm_bo_init+0x24d/0x290 [ttm]
> [ 75.430015] [<ffffffffa07d8831>] nouveau_bo_new+0x161/0x2d0 [nouveau]
> [ 75.430015] [<ffffffffa07cdd30>] nouveau_mem_init+0x200/0x580 [nouveau]
> [ 75.430015] [<ffffffffa07cc0d6>] nouveau_card_init+0xf6/0x300 [nouveau]
> [ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
> [ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
> [ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
> [ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
> [ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
> [ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
> [ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
> [ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
> [ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
> [ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
> [ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
> [ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
> [ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
> [ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
> [ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
> [ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
> [ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
> [ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015]
> [ 75.430015] other info that might help us debug this:
> [ 75.430015]
> [ 75.430015] 2 locks held by Xorg/3109:
> [ 75.430015] #0: (drm_global_mutex){+.+.+.}, at: [<ffffffffa0753041>] drm_ioctl+0x361/0x4d0 [drm]
> [ 75.430015] #1: (&(&dev_priv->context_switch_lock)->rlock){-.....}, at: [<ffffffffa07ccbc9>] nouveau_channel_free+0xf9/0x2b0 [nouveau]
> [ 75.430015]
> [ 75.430015] the dependencies between HARDIRQ-irq-safe lock and the holding lock:
> [ 75.430015] -> (&(&dev_priv->context_switch_lock)->rlock){-.....} ops: 21 {
> [ 75.430015] IN-HARDIRQ-W at:
> [ 75.430015] [<ffffffff81081a5d>] mark_irqflags+0x17d/0x190
> [ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff814965c2>] _raw_spin_lock_irqsave+0x52/0x90
> [ 75.430015] [<ffffffffa07d518f>] nouveau_irq_handler+0x6f/0x1b0 [nouveau]
> [ 75.430015] [<ffffffff810a5271>] handle_IRQ_event+0x81/0x2e0
> [ 75.430015] [<ffffffff810a7d4c>] handle_fasteoi_irq+0x7c/0x100
> [ 75.430015] [<ffffffff81005122>] handle_irq+0x22/0x30
> [ 75.430015] [<ffffffff810045c3>] do_IRQ+0x73/0xf0
> [ 75.430015] [<ffffffff81497713>] ret_from_intr+0x0/0xf
> [ 75.430015] [<ffffffff813274f1>] dev_set_name+0x41/0x50
> [ 75.430015] [<ffffffff812aef0c>] backlight_device_register+0xcc/0x2d0
> [ 75.430015] [<ffffffffa0838c07>] nouveau_nv50_backlight_init+0x87/0xf0 [nouveau]
> [ 75.430015] [<ffffffffa0838c9d>] nouveau_backlight_init+0x2d/0x50 [nouveau]
> [ 75.430015] [<ffffffffa07cc243>] nouveau_card_init+0x263/0x300 [nouveau]
> [ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
> [ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
> [ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
> [ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
> [ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
> [ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
> [ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
> [ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
> [ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
> [ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
> [ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
> [ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
> [ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
> [ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
> [ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
> [ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
> [ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
> [ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015] INITIAL USE at:
> [ 75.430015] [<ffffffff810855d2>] __lock_acquire+0x342/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff814965c2>] _raw_spin_lock_irqsave+0x52/0x90
> [ 75.430015] [<ffffffffa07fb742>] nv50_fifo_create_context+0xf2/0x460 [nouveau]
> [ 75.430015] [<ffffffffa07cd4f2>] nouveau_channel_alloc+0x352/0x5e0 [nouveau]
> [ 75.430015] [<ffffffffa07cbed5>] nouveau_card_init_channel+0x45/0x150 [nouveau]
> [ 75.430015] [<ffffffffa07cc237>] nouveau_card_init+0x257/0x300 [nouveau]
> [ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
> [ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
> [ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
> [ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
> [ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
> [ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
> [ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
> [ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
> [ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
> [ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
> [ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
> [ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
> [ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
> [ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
> [ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
> [ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
> [ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
> [ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015] }
> [ 75.430015] ... key at: [<ffffffffa084c359>] __key.41268+0x0/0xfffffffffffece63 [nouveau]
> [ 75.430015] ... acquired at:
> [ 75.430015] [<ffffffff81082df8>] check_usage+0x138/0x1e0
> [ 75.430015] [<ffffffff81082f00>] check_irq_usage+0x60/0xf0
> [ 75.430015] [<ffffffff81083fb4>] check_prev_add+0xc4/0x710
> [ 75.430015] [<ffffffff81085134>] validate_chain+0x5a4/0x700
> [ 75.430015] [<ffffffff81085746>] __lock_acquire+0x4b6/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
> [ 75.430015] [<ffffffffa075f303>] drm_mm_put_block+0x93/0x190 [drm]
> [ 75.430015] [<ffffffffa07cfd35>] nouveau_gpuobj_del+0x135/0x1c0 [nouveau]
> [ 75.430015] [<ffffffffa07d040d>] nouveau_gpuobj_ref_del+0x9d/0xf0 [nouveau]
> [ 75.430015] [<ffffffffa08048c6>] nv50_graph_destroy_context+0xb6/0x110 [nouveau]
> [ 75.430015] [<ffffffffa07ccbf8>] nouveau_channel_free+0x128/0x2b0 [nouveau]
> [ 75.430015] [<ffffffffa07ccdee>] nouveau_ioctl_fifo_free+0x6e/0x80 [nouveau]
> [ 75.430015] [<ffffffffa075305b>] drm_ioctl+0x37b/0x4d0 [drm]
> [ 75.430015] [<ffffffff81124c7f>] do_vfs_ioctl+0x9f/0x330
> [ 75.430015] [<ffffffff81124f5f>] sys_ioctl+0x4f/0x80
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015]
> [ 75.430015]
> [ 75.430015] the dependencies between the lock to be acquired and HARDIRQ-irq-unsafe lock:
> [ 75.430015] -> (&(&mm->unused_lock)->rlock){+.+...} ops: 9351 {
> [ 75.430015] HARDIRQ-ON-W at:
> [ 75.430015] [<ffffffff81081a00>] mark_irqflags+0x120/0x190
> [ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
> [ 75.430015] [<ffffffffa075efb5>] drm_mm_pre_get+0x25/0x1e0 [drm]
> [ 75.430015] [<ffffffffa07b123b>] ttm_bo_setup_vm+0x2b/0x140 [ttm]
> [ 75.430015] [<ffffffffa07b352d>] ttm_bo_init+0x24d/0x290 [ttm]
> [ 75.430015] [<ffffffffa07d8831>] nouveau_bo_new+0x161/0x2d0 [nouveau]
> [ 75.430015] [<ffffffffa07cdd30>] nouveau_mem_init+0x200/0x580 [nouveau]
> [ 75.430015] [<ffffffffa07cc0d6>] nouveau_card_init+0xf6/0x300 [nouveau]
> [ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
> [ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
> [ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
> [ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
> [ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
> [ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
> [ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
> [ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
> [ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
> [ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
> [ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
> [ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
> [ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
> [ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
> [ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
> [ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
> [ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
> [ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015] SOFTIRQ-ON-W at:
> [ 75.430015] [<ffffffff81081a25>] mark_irqflags+0x145/0x190
> [ 75.430015] [<ffffffff8108580c>] __lock_acquire+0x57c/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
> [ 75.430015] [<ffffffffa075efb5>] drm_mm_pre_get+0x25/0x1e0 [drm]
> [ 75.430015] [<ffffffffa07b123b>] ttm_bo_setup_vm+0x2b/0x140 [ttm]
> [ 75.430015] [<ffffffffa07b352d>] ttm_bo_init+0x24d/0x290 [ttm]
> [ 75.430015] [<ffffffffa07d8831>] nouveau_bo_new+0x161/0x2d0 [nouveau]
> [ 75.430015] [<ffffffffa07cdd30>] nouveau_mem_init+0x200/0x580 [nouveau]
> [ 75.430015] [<ffffffffa07cc0d6>] nouveau_card_init+0xf6/0x300 [nouveau]
> [ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
> [ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
> [ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
> [ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
> [ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
> [ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
> [ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
> [ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
> [ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
> [ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
> [ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
> [ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
> [ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
> [ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
> [ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
> [ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
> [ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
> [ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015] INITIAL USE at:
> [ 75.430015] [<ffffffff810855d2>] __lock_acquire+0x342/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
> [ 75.430015] [<ffffffffa075efb5>] drm_mm_pre_get+0x25/0x1e0 [drm]
> [ 75.430015] [<ffffffffa07b123b>] ttm_bo_setup_vm+0x2b/0x140 [ttm]
> [ 75.430015] [<ffffffffa07b352d>] ttm_bo_init+0x24d/0x290 [ttm]
> [ 75.430015] [<ffffffffa07d8831>] nouveau_bo_new+0x161/0x2d0 [nouveau]
> [ 75.430015] [<ffffffffa07cdd30>] nouveau_mem_init+0x200/0x580 [nouveau]
> [ 75.430015] [<ffffffffa07cc0d6>] nouveau_card_init+0xf6/0x300 [nouveau]
> [ 75.430015] [<ffffffffa07cc631>] nouveau_load+0x351/0x660 [nouveau]
> [ 75.430015] [<ffffffffa075c1a3>] drm_get_pci_dev+0x183/0x3a0 [drm]
> [ 75.430015] [<ffffffffa08391ba>] nouveau_pci_probe+0x15/0x17 [nouveau]
> [ 75.430015] [<ffffffff8128e74f>] local_pci_probe+0x5f/0xd0
> [ 75.430015] [<ffffffff8128f538>] pci_device_probe+0x88/0xb0
> [ 75.430015] [<ffffffff8132b6c8>] really_probe+0x68/0x190
> [ 75.430015] [<ffffffff8132b835>] driver_probe_device+0x45/0x70
> [ 75.430015] [<ffffffff8132b8fb>] __driver_attach+0x9b/0xa0
> [ 75.430015] [<ffffffff8132ac5c>] bus_for_each_dev+0x6c/0xa0
> [ 75.430015] [<ffffffff8132b51e>] driver_attach+0x1e/0x20
> [ 75.430015] [<ffffffff8132a2a5>] bus_add_driver+0xd5/0x370
> [ 75.430015] [<ffffffff8132bc48>] driver_register+0x78/0x140
> [ 75.430015] [<ffffffff8128f7b6>] __pci_register_driver+0x66/0xe0
> [ 75.430015] [<ffffffffa075c49f>] drm_pci_init+0xdf/0xf0 [drm]
> [ 75.430015] [<ffffffffa07533d8>] drm_init+0x58/0x70 [drm]
> [ 75.430015] [<ffffffffa085b048>] 0xffffffffa085b048
> [ 75.430015] [<ffffffff810001e3>] do_one_initcall+0x43/0x180
> [ 75.430015] [<ffffffff8109529a>] sys_init_module+0xba/0x200
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015] }
> [ 75.430015] ... key at: [<ffffffffa07771fc>] __key.38649+0x0/0xffffffffffff3460 [drm]
> [ 75.430015] ... acquired at:
> [ 75.430015] [<ffffffff81082df8>] check_usage+0x138/0x1e0
> [ 75.430015] [<ffffffff81082f00>] check_irq_usage+0x60/0xf0
> [ 75.430015] [<ffffffff81083fb4>] check_prev_add+0xc4/0x710
> [ 75.430015] [<ffffffff81085134>] validate_chain+0x5a4/0x700
> [ 75.430015] [<ffffffff81085746>] __lock_acquire+0x4b6/0x9d0
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
> [ 75.430015] [<ffffffffa075f303>] drm_mm_put_block+0x93/0x190 [drm]
> [ 75.430015] [<ffffffffa07cfd35>] nouveau_gpuobj_del+0x135/0x1c0 [nouveau]
> [ 75.430015] [<ffffffffa07d040d>] nouveau_gpuobj_ref_del+0x9d/0xf0 [nouveau]
> [ 75.430015] [<ffffffffa08048c6>] nv50_graph_destroy_context+0xb6/0x110 [nouveau]
> [ 75.430015] [<ffffffffa07ccbf8>] nouveau_channel_free+0x128/0x2b0 [nouveau]
> [ 75.430015] [<ffffffffa07ccdee>] nouveau_ioctl_fifo_free+0x6e/0x80 [nouveau]
> [ 75.430015] [<ffffffffa075305b>] drm_ioctl+0x37b/0x4d0 [drm]
> [ 75.430015] [<ffffffff81124c7f>] do_vfs_ioctl+0x9f/0x330
> [ 75.430015] [<ffffffff81124f5f>] sys_ioctl+0x4f/0x80
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
> [ 75.430015]
> [ 75.430015]
> [ 75.430015] stack backtrace:
> [ 75.430015] Pid: 3109, comm: Xorg Not tainted 2.6.36-rc3-wl-47417-g8164729-dirty #183
> [ 75.430015] Call Trace:
> [ 75.430015] [<ffffffff81082c1e>] print_bad_irq_dependency+0x2ce/0x370
> [ 75.430015] [<ffffffff81082df8>] check_usage+0x138/0x1e0
> [ 75.430015] [<ffffffff81082f00>] check_irq_usage+0x60/0xf0
> [ 75.430015] [<ffffffff81083fb4>] check_prev_add+0xc4/0x710
> [ 75.430015] [<ffffffff81009d17>] ? native_sched_clock+0x27/0x80
> [ 75.430015] [<ffffffff81085134>] validate_chain+0x5a4/0x700
> [ 75.430015] [<ffffffff81085746>] __lock_acquire+0x4b6/0x9d0
> [ 75.430015] [<ffffffff81009d17>] ? native_sched_clock+0x27/0x80
> [ 75.430015] [<ffffffff81085d02>] lock_acquire+0xa2/0x1d0
> [ 75.430015] [<ffffffffa075f303>] ? drm_mm_put_block+0x93/0x190 [drm]
> [ 75.430015] [<ffffffff81496410>] _raw_spin_lock+0x40/0x80
> [ 75.430015] [<ffffffffa075f303>] ? drm_mm_put_block+0x93/0x190 [drm]
> [ 75.430015] [<ffffffffa075f303>] drm_mm_put_block+0x93/0x190 [drm]
> [ 75.430015] [<ffffffffa07cfd35>] nouveau_gpuobj_del+0x135/0x1c0 [nouveau]
> [ 75.430015] [<ffffffffa07d040d>] nouveau_gpuobj_ref_del+0x9d/0xf0 [nouveau]
> [ 75.430015] [<ffffffffa08048c6>] nv50_graph_destroy_context+0xb6/0x110 [nouveau]
> [ 75.430015] [<ffffffffa07ccbf8>] nouveau_channel_free+0x128/0x2b0 [nouveau]
> [ 75.430015] [<ffffffffa07ccdee>] nouveau_ioctl_fifo_free+0x6e/0x80 [nouveau]
> [ 75.430015] [<ffffffffa075305b>] drm_ioctl+0x37b/0x4d0 [drm]
> [ 75.430015] [<ffffffff81009d17>] ? native_sched_clock+0x27/0x80
> [ 75.430015] [<ffffffffa07ccd80>] ? nouveau_ioctl_fifo_free+0x0/0x80 [nouveau]
> [ 75.430015] [<ffffffff81038281>] ? get_parent_ip+0x11/0x50
> [ 75.430015] [<ffffffff81038281>] ? get_parent_ip+0x11/0x50
> [ 75.430015] [<ffffffff8149ac3d>] ? sub_preempt_count+0x9d/0xd0
> [ 75.430015] [<ffffffff8108042e>] ? put_lock_stats+0xe/0x30
> [ 75.430015] [<ffffffff810f90c1>] ? sys_munmap+0x61/0x80
> [ 75.430015] [<ffffffff81124c7f>] do_vfs_ioctl+0x9f/0x330
> [ 75.430015] [<ffffffff81124f5f>] sys_ioctl+0x4f/0x80
> [ 75.430015] [<ffffffff810027fb>] system_call_fastpath+0x16/0x1b
>
Yes, that's a known issue, the scenario where it actually dead locks is
impossible so don't worry about it. Several solutions are discussed here
[1].
>
> (also, while I'm at asking questions, is it a known problem that
> switching between using an external monitor and not using it will with
> high probability lock up? Same for using dpms to turn off the screens,
> though that might just be the same thing?)
>
I haven't seen anything like that, please file a new bug report [2].
> johannes
[1] http://lists.freedesktop.org/archives/nouveau/2010-July/005994.html
[2] http://nouveau.freedesktop.org/wiki/Bugs
[-- Attachment #1.2: Type: application/pgp-signature, Size: 229 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: nouveau lockdep warning
2010-09-01 12:09 ` Francisco Jerez
@ 2010-09-01 12:36 ` Johannes Berg
0 siblings, 0 replies; 3+ messages in thread
From: Johannes Berg @ 2010-09-01 12:36 UTC (permalink / raw)
To: Francisco Jerez; +Cc: Ben Skeggs, dri-devel
On Wed, 2010-09-01 at 14:09 +0200, Francisco Jerez wrote:
> > [ 75.430015] ======================================================
> > [ 75.430015] [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
> Yes, that's a known issue, the scenario where it actually dead locks is
> impossible so don't worry about it. Several solutions are discussed here
> [1].
Alright, thanks.
> > (also, while I'm at asking questions, is it a known problem that
> > switching between using an external monitor and not using it will with
> > high probability lock up? Same for using dpms to turn off the screens,
> > though that might just be the same thing?)
> >
> I haven't seen anything like that, please file a new bug report [2].
Done:
https://bugs.freedesktop.org/show_bug.cgi?id=29934
https://bugs.freedesktop.org/show_bug.cgi?id=29935
Let's discuss further there, as needed.
johannes
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-09-01 12:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-01 7:26 nouveau lockdep warning Johannes Berg
2010-09-01 12:09 ` Francisco Jerez
2010-09-01 12:36 ` Johannes Berg
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.