From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752780AbbIAErk (ORCPT ); Tue, 1 Sep 2015 00:47:40 -0400 Received: from mx2.suse.de ([195.135.220.15]:57314 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750728AbbIAErj (ORCPT ); Tue, 1 Sep 2015 00:47:39 -0400 Date: Tue, 01 Sep 2015 06:47:35 +0200 Message-ID: From: Takashi Iwai To: Shuah Khan Cc: alsa-devel@alsa-project.org, Linux Media Mailing List , linux-kernel@vger.kernel.org Subject: Re: Linux 4.2 ALSA snd-usb-audio inconsistent lock state warn in PCM nonatomic mode In-Reply-To: <55E4D9BE.2040308@osg.samsung.com> References: <55E4D9BE.2040308@osg.samsung.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.5 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 01 Sep 2015 00:48:30 +0200, Shuah Khan wrote: > > Hi Takashi, > > I am seeing the following inconsistent lock state warning when PCM > is run in nonatomic mode. This is on 4.2.0 and with the following > change to force PCM on nonatomic mode: > > diff --git a/sound/usb/stream.c b/sound/usb/stream.c > index 310a382..16bbb71 100644 > --- a/sound/usb/stream.c > +++ b/sound/usb/stream.c > @@ -370,6 +370,7 @@ int snd_usb_add_audio_stream(struct snd_usb_audio *chip, > pcm->private_data = as; > pcm->private_free = snd_usb_audio_pcm_free; > pcm->info_flags = 0; > + pcm->nonatomic = true; > if (chip->pcm_devs > 0) > sprintf(pcm->name, "USB Audio #%d", chip->pcm_devs); > else > > The device Bus 003 Device 002: ID 2040:7200 Hauppauge > Please let me know if you need more information and any ideas on > how to fix this problem. The USB-audio can't be used in the non-atomic mode. snd_pcm_period_elapsed() is handled in the complete callback that is already atomic. Takashi > > thanks, > -- Shuah > > [ 120.283960] ================================= > [ 120.283964] [ INFO: inconsistent lock state ] > [ 120.283968] 4.2.0+ #29 Not tainted > [ 120.283972] --------------------------------- > [ 120.283975] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. > [ 120.283980] swapper/1/0 [HC1[1]:SC0[0]:HE0:SE1] takes: > [ 120.283983] (&(&subs->lock)->rlock){?.+...}, at: > [] retire_capture_urb+0x140/0x2b0 [snd_usb_audio] > [ 120.284005] {HARDIRQ-ON-W} state was registered at: > [ 120.284008] [] __lock_acquire+0xc50/0x2380 > [ 120.284016] [] lock_acquire+0xb1/0x130 > [ 120.284022] [] _raw_spin_lock+0x31/0x40 > [ 120.284028] [] snd_usb_pcm_pointer+0x5d/0xc0 > [snd_usb_audio] > [ 120.284040] [] snd_pcm_update_hw_ptr0+0x38/0x3a0 > [snd_pcm] > [ 120.284052] [] snd_pcm_update_hw_ptr+0x10/0x20 > [snd_pcm] > [ 120.284063] [] snd_pcm_hwsync+0x45/0xa0 [snd_pcm] > [ 120.284071] [] snd_pcm_common_ioctl1+0x277/0xce0 > [snd_pcm] > [ 120.284081] [] snd_pcm_capture_ioctl1+0x1be/0x2d0 > [snd_pcm] > [ 120.284090] [] snd_pcm_capture_ioctl+0x34/0x40 > [snd_pcm] > [ 120.284100] [] do_vfs_ioctl+0x301/0x560 > [ 120.284107] [] SyS_ioctl+0x79/0x90 > [ 120.284112] [] entry_SYSCALL_64_fastpath+0x12/0x6f > [ 120.284119] irq event stamp: 823304 > [ 120.284122] hardirqs last enabled at (823301): [] > cpuidle_enter_state+0xed/0x230 > [ 120.284129] hardirqs last disabled at (823302): [] > common_interrupt+0x68/0x6d > [ 120.284135] softirqs last enabled at (823304): [] > _local_bh_enable+0x21/0x50 > [ 120.284139] softirqs last disabled at (823303): [] > irq_enter+0x4c/0x70 > [ 120.284143] > other info that might help us debug this: > [ 120.284146] Possible unsafe locking scenario: > > [ 120.284149] CPU0 > [ 120.284150] ---- > [ 120.284152] lock(&(&subs->lock)->rlock); > [ 120.284155] > [ 120.284157] lock(&(&subs->lock)->rlock); > [ 120.284160] > *** DEADLOCK *** > [ 120.284163] no locks held by swapper/1/0. > [ 120.284165] > stack backtrace: > [ 120.284170] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.2.0+ #29 > [ 120.284173] Hardware name: Hewlett-Packard HP ProBook 6475b/180F, > BIOS 68TTU Ver. F.04 08/03/2012 > [ 120.284176] ffffffff828d5630 ffff88023ec83a68 ffffffff817f4ea0 > 0000000000000007 > [ 120.284181] ffff880235a6a500 ffff88023ec83ac8 ffffffff810ad97f > 0000000000000000 > [ 120.284186] 0000000000000000 ffff880200000001 ffffffff810134df > ffffffff827c5390 > [ 120.284192] Call Trace: > [ 120.284194] [] dump_stack+0x45/0x57 > [ 120.284203] [] print_usage_bug+0x1ff/0x210 > [ 120.284209] [] ? save_stack_trace+0x2f/0x50 > [ 120.284214] [] mark_lock+0x66e/0x6f0 > [ 120.284218] [] ? > print_shortest_lock_dependencies+0x1d0/0x1d0 > [ 120.284222] [] __lock_acquire+0xdcb/0x2380 > [ 120.284226] [] ? __enqueue_entity+0x6c/0x70 > [ 120.284230] [] ? __lock_is_held+0x4d/0x70 > [ 120.284234] [] ? __lock_is_held+0x4d/0x70 > [ 120.284238] [] ? __lock_is_held+0x4d/0x70 > [ 120.284242] [] ? __lock_is_held+0x4d/0x70 > [ 120.284246] [] lock_acquire+0xb1/0x130 > [ 120.284256] [] ? retire_capture_urb+0x140/0x2b0 > [snd_usb_audio] > [ 120.284261] [] _raw_spin_lock_irqsave+0x3c/0x50 > [ 120.284270] [] ? retire_capture_urb+0x140/0x2b0 > [snd_usb_audio] > [ 120.284276] [] ? usb_hcd_get_frame_number+0x25/0x30 > [ 120.284285] [] retire_capture_urb+0x140/0x2b0 > [snd_usb_audio] > [ 120.284294] [] snd_complete_urb+0x13c/0x250 > [snd_usb_audio] > [ 120.284298] [] __usb_hcd_giveback_urb+0x72/0x110 > [ 120.284303] [] usb_hcd_giveback_urb+0x43/0x140 > [ 120.284307] [] xhci_irq+0xd42/0x1fc0 > [ 120.284312] [] xhci_msi_irq+0x11/0x20 > [ 120.284317] [] handle_irq_event_percpu+0x80/0x1a0 > [ 120.284322] [] handle_irq_event+0x4a/0x70 > [ 120.284325] [] ? handle_edge_irq+0x24/0x150 > [ 120.284329] [] handle_edge_irq+0x81/0x150 > [ 120.284333] [] handle_irq+0x25/0x40 > [ 120.284337] [] do_IRQ+0x4f/0xe0 > [ 120.284341] [] common_interrupt+0x6d/0x6d > [ 120.284343] [] ? cpuidle_enter_state+0xf2/0x230 > [ 120.284351] [] ? cpuidle_enter_state+0xed/0x230 > [ 120.284355] [] cpuidle_enter+0x17/0x20 > [ 120.284360] [] call_cpuidle+0x32/0x60 > [ 120.284364] [] ? cpuidle_select+0x13/0x20 > [ 120.284369] [] cpu_startup_entry+0x216/0x2d0 > [ 120.284374] [] start_secondary+0x12d/0x150 > [ 125.426447] device: 'ep_84': device_unregister > [ 125.426511] PM: Removing info for No Bus:ep_84 > [ 125.426542] device: 'ep_84': device_add > [ 125.426602] PM: Adding info for No Bus:ep_84 > > -- > Shuah Khan > Sr. Linux Kernel Developer > Open Source Innovation Group > Samsung Research America (Silicon Valley) > shuahkh@osg.samsung.com | (970) 217-8978 >