lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ