[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140506202951.GA5769@saruman.home>
Date: Tue, 6 May 2014 15:29:51 -0500
From: Felipe Balbi <balbi@...com>
To: <airlied@...ux.ie>, <bskeggs@...hat.com>, <imirkin@...m.mit.edu>,
<airlied@...hat.com>
CC: <dri-devel@...ts.freedesktop.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: possible deadlock on nouveau
Hi,
Just caught this with v3.14-rc4 running with
01:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1)
full dmesg attached
[ 239.589213] ======================================================
[ 239.589214] [ INFO: possible circular locking dependency detected ]
[ 239.589216] 3.15.0-rc4-fb+ #5 Not tainted
[ 239.589217] -------------------------------------------------------
[ 239.589218] swapper/1/0 is trying to acquire lock:
[ 239.589219] (&(&priv->lock)->rlock#2){-.....}, at: [<ffffffff814a6b98>] nouveau_therm_update+0x48/0x310
[ 239.589228]
[ 239.589228] but task is already holding lock:
[ 239.589230] (&(&priv->sensor.alarm_program_lock)->rlock){-.....}, at: [<ffffffff814a85a4>] alarm_timer_callback+0x54/0xe0
[ 239.589234]
[ 239.589234] which lock already depends on the new lock.
[ 239.589234]
[ 239.589236]
[ 239.589236] the existing dependency chain (in reverse order) is:
[ 239.589237]
[ 239.589237] -> #1 (&(&priv->sensor.alarm_program_lock)->rlock){-.....}:
[ 239.589240] [<ffffffff810952e5>] lock_acquire+0xb5/0x160
[ 239.589243] [<ffffffff818ac6c6>] _raw_spin_lock_irqsave+0x56/0x90
[ 239.589247] [<ffffffff814a85a4>] alarm_timer_callback+0x54/0xe0
[ 239.589249] [<ffffffff814aa55e>] nv04_timer_alarm_trigger+0x12e/0x170
[ 239.589252] [<ffffffff814aa61e>] nv04_timer_alarm+0x7e/0xe0
[ 239.589255] [<ffffffff814a6dbd>] nouveau_therm_update+0x26d/0x310
[ 239.589257] [<ffffffff814a6e7a>] nouveau_therm_alarm+0x1a/0x20
[ 239.589259] [<ffffffff814aa55e>] nv04_timer_alarm_trigger+0x12e/0x170
[ 239.589261] [<ffffffff814aa6eb>] nv04_timer_intr+0x6b/0x90
[ 239.589263] [<ffffffff814a4451>] nouveau_mc_intr+0x141/0x1a0
[ 239.589265] [<ffffffff810a7777>] handle_irq_event_percpu+0x47/0x1d0
[ 239.589268] [<ffffffff810a793d>] handle_irq_event+0x3d/0x60
[ 239.589270] [<ffffffff810aa347>] handle_edge_irq+0x77/0x130
[ 239.589272] [<ffffffff8100488f>] handle_irq+0xbf/0x150
[ 239.589275] [<ffffffff818b75bf>] do_IRQ+0x4f/0xf0
[ 239.589277] [<ffffffff818acbb2>] ret_from_intr+0x0/0x1a
[ 239.589279] [<ffffffff8160d147>] cpuidle_enter+0x17/0x20
[ 239.589283] [<ffffffff8108ced2>] cpu_startup_entry+0x242/0x470
[ 239.589287] [<ffffffff81897876>] rest_init+0xc6/0xd0
[ 239.589290] [<ffffffff8210de95>] start_kernel+0x386/0x391
[ 239.589293] [<ffffffff8210d5ca>] x86_64_start_reservations+0x2a/0x2c
[ 239.589296] [<ffffffff8210d70a>] x86_64_start_kernel+0x13e/0x14d
[ 239.589297]
[ 239.589297] -> #0 (&(&priv->lock)->rlock#2){-.....}:
[ 239.589300] [<ffffffff81094b65>] __lock_acquire+0x1565/0x1c30
[ 239.589302] [<ffffffff810952e5>] lock_acquire+0xb5/0x160
[ 239.589304] [<ffffffff818ac6c6>] _raw_spin_lock_irqsave+0x56/0x90
[ 239.589306] [<ffffffff814a6b98>] nouveau_therm_update+0x48/0x310
[ 239.589308] [<ffffffff814a6e7a>] nouveau_therm_alarm+0x1a/0x20
[ 239.589310] [<ffffffff814aa55e>] nv04_timer_alarm_trigger+0x12e/0x170
[ 239.589312] [<ffffffff814aa61e>] nv04_timer_alarm+0x7e/0xe0
[ 239.589315] [<ffffffff814a862d>] alarm_timer_callback+0xdd/0xe0
[ 239.589317] [<ffffffff814aa55e>] nv04_timer_alarm_trigger+0x12e/0x170
[ 239.589319] [<ffffffff814aa6eb>] nv04_timer_intr+0x6b/0x90
[ 239.589321] [<ffffffff814a4451>] nouveau_mc_intr+0x141/0x1a0
[ 239.589323] [<ffffffff810a7777>] handle_irq_event_percpu+0x47/0x1d0
[ 239.589325] [<ffffffff810a793d>] handle_irq_event+0x3d/0x60
[ 239.589327] [<ffffffff810aa347>] handle_edge_irq+0x77/0x130
[ 239.589329] [<ffffffff8100488f>] handle_irq+0xbf/0x150
[ 239.589330] [<ffffffff818b75bf>] do_IRQ+0x4f/0xf0
[ 239.589332] [<ffffffff818acbb2>] ret_from_intr+0x0/0x1a
[ 239.589334] [<ffffffff8160d147>] cpuidle_enter+0x17/0x20
[ 239.589336] [<ffffffff8108ced2>] cpu_startup_entry+0x242/0x470
[ 239.589338] [<ffffffff810300b8>] start_secondary+0x1a8/0x210
[ 239.589343]
[ 239.589343] other info that might help us debug this:
[ 239.589343]
[ 239.589344] Possible unsafe locking scenario:
[ 239.589344]
[ 239.589345] CPU0 CPU1
[ 239.589346] ---- ----
[ 239.589347] lock(&(&priv->sensor.alarm_program_lock)->rlock);
[ 239.589349] lock(&(&priv->lock)->rlock#2);
[ 239.589351] lock(&(&priv->sensor.alarm_program_lock)->rlock);
[ 239.589353] lock(&(&priv->lock)->rlock#2);
[ 239.589355]
[ 239.589355] *** DEADLOCK ***
[ 239.589355]
[ 239.589357] 1 lock held by swapper/1/0:
[ 239.589358] #0: (&(&priv->sensor.alarm_program_lock)->rlock){-.....}, at: [<ffffffff814a85a4>] alarm_timer_callback+0x54/0xe0
[ 239.589362]
[ 239.589362] stack backtrace:
[ 239.589364] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.15.0-rc4-fb+ #5
[ 239.589366] Hardware name: LENOVO 10120/ , BIOS I1KT15AUS 03/28/2013
[ 239.589367] ffffffff826667d0 ffff880330803b30 ffffffff818a1afc ffffffff826667d0
[ 239.589370] ffff880330803b70 ffffffff8189caa9 ffff880330803bc0 ffff88032e70c778
[ 239.589372] 0000000000000001 0000000000000001 ffff88032e70bf30 ffff88032e70c778
[ 239.589375] Call Trace:
[ 239.589376] <IRQ> [<ffffffff818a1afc>] dump_stack+0x4d/0x66
[ 239.589382] [<ffffffff8189caa9>] print_circular_bug+0x200/0x20e
[ 239.589384] [<ffffffff81094b65>] __lock_acquire+0x1565/0x1c30
[ 239.589386] [<ffffffff810939b3>] ? __lock_acquire+0x3b3/0x1c30
[ 239.589388] [<ffffffff810952e5>] lock_acquire+0xb5/0x160
[ 239.589391] [<ffffffff814a6b98>] ? nouveau_therm_update+0x48/0x310
[ 239.589393] [<ffffffff818ac6c6>] _raw_spin_lock_irqsave+0x56/0x90
[ 239.589395] [<ffffffff814a6b98>] ? nouveau_therm_update+0x48/0x310
[ 239.589398] [<ffffffff814a6b98>] nouveau_therm_update+0x48/0x310
[ 239.589400] [<ffffffff814a6e7a>] nouveau_therm_alarm+0x1a/0x20
[ 239.589402] [<ffffffff814aa55e>] nv04_timer_alarm_trigger+0x12e/0x170
[ 239.589405] [<ffffffff814aa61e>] nv04_timer_alarm+0x7e/0xe0
[ 239.589407] [<ffffffff814a862d>] alarm_timer_callback+0xdd/0xe0
[ 239.589410] [<ffffffff814aa55e>] nv04_timer_alarm_trigger+0x12e/0x170
[ 239.589412] [<ffffffff814aa6eb>] nv04_timer_intr+0x6b/0x90
[ 239.589414] [<ffffffff814a4451>] nouveau_mc_intr+0x141/0x1a0
[ 239.589416] [<ffffffff810a7777>] handle_irq_event_percpu+0x47/0x1d0
[ 239.589419] [<ffffffff810a793d>] handle_irq_event+0x3d/0x60
[ 239.589421] [<ffffffff810aa347>] handle_edge_irq+0x77/0x130
[ 239.589423] [<ffffffff8100488f>] handle_irq+0xbf/0x150
[ 239.589425] [<ffffffff818b0bb6>] ? atomic_notifier_call_chain+0x16/0x20
[ 239.589427] [<ffffffff818b75bf>] do_IRQ+0x4f/0xf0
[ 239.589430] [<ffffffff818acbb2>] common_interrupt+0x72/0x72
[ 239.589431] <EOI> [<ffffffff8160d097>] ? cpuidle_enter_state+0x57/0xd0
[ 239.589436] [<ffffffff8160d090>] ? cpuidle_enter_state+0x50/0xd0
[ 239.589438] [<ffffffff8160d147>] cpuidle_enter+0x17/0x20
[ 239.589440] [<ffffffff8108ced2>] cpu_startup_entry+0x242/0x470
[ 239.589443] [<ffffffff810300b8>] start_secondary+0x1a8/0x210
--
balbi
View attachment "dmesg.txt" of type "text/plain" (72582 bytes)
Download attachment "signature.asc" of type "application/pgp-signature" (820 bytes)
Powered by blists - more mailing lists