[alsa-devel] snd_usb_usx2y holding onto a lock?
When plugging an audio interface in with nomodeset I see the following in the logs:
Aug 08 23:19:23 localhost.localdomain kernel: INFO: task pulseaudio:1750 blocked for more than 120 seconds. Aug 08 23:19:23 localhost.localdomain kernel: Tainted: G OE 4.17.11-200.fc28.x86_64+debug #1 Aug 08 23:19:23 localhost.localdomain kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Aug 08 23:19:23 localhost.localdomain kernel: pulseaudio D12408 1750 1268 0x00000000 Aug 08 23:19:23 localhost.localdomain kernel: Call Trace:
Aug 08 23:19:23 localhost.localdomain kernel: ? __schedule+0x2ba/0xaf0
Aug 08 23:19:23 localhost.localdomain kernel: ? prepare_to_wait_event+0xd2/0x180 Aug 08 23:19:23 localhost.localdomain kernel: schedule+0x2f/0x90
Aug 08 23:19:23 localhost.localdomain kernel: usX2Y_urbs_start+0x208/0x470 [snd_usb_usx2y] Aug 08 23:19:23 localhost.localdomain kernel: ? finish_wait+0x80/0x80
Aug 08 23:19:23 localhost.localdomain kernel: snd_usX2Y_pcm_prepare+0xb4/0xd0 [snd_usb_usx2y] Aug 08 23:19:23 localhost.localdomain kernel: snd_pcm_do_prepare+0x19/0x30 [snd_pcm] Aug 08 23:19:23 localhost.localdomain kernel: snd_pcm_action_single+0x36/0x80 [snd_pcm] Aug 08 23:19:23 localhost.localdomain kernel: snd_pcm_action_nonatomic+0x61/0x70 [snd_pcm] Aug 08 23:19:23 localhost.localdomain kernel: snd_pcm_common_ioctl+0x3d2/0xb70 [snd_pcm] Aug 08 23:19:23 localhost.localdomain kernel: ? selinux_file_ioctl+0x171/0x210 Aug 08 23:19:23 localhost.localdomain kernel: snd_pcm_ioctl+0x23/0x30 [snd_pcm] Aug 08 23:19:23 localhost.localdomain kernel: do_vfs_ioctl+0xa5/0x6d0
Aug 08 23:19:23 localhost.localdomain kernel: ksys_ioctl+0x60/0x90
Aug 08 23:19:23 localhost.localdomain kernel: __x64_sys_ioctl+0x16/0x20
Aug 08 23:19:23 localhost.localdomain kernel: do_syscall_64+0x60/0x1f0
Aug 08 23:19:23 localhost.localdomain kernel: entry_SYSCALL_64_after_hwframe+0x49/0xbe Aug 08 23:19:23 localhost.localdomain kernel: RIP: 0033:0x7f59021c4ec7
Aug 08 23:19:23 localhost.localdomain kernel: RSP: 002b:00007ffd83d81448 EFLAGS: 00000206 ORIG_RAX: 0000000000000010 Aug 08 23:19:23 localhost.localdomain kernel: RAX: ffffffffffffffda RBX: 0000556d69312220 RCX: 00007f59021c4ec7 Aug 08 23:19:23 localhost.localdomain kernel: RDX: 0000556d6931ae20 RSI: 0000000000004140 RDI: 0000000000000016 Aug 08 23:19:23 localhost.localdomain kernel: RBP: 00007ffd83d81b60 R08: 0000000000000000 R09: 0000000000001138 Aug 08 23:19:23 localhost.localdomain kernel: R10: 0000000000000004 R11: 0000000000000206 R12: 00007ffd83d81830 Aug 08 23:19:23 localhost.localdomain kernel: R13: 00007ffd83d81cf4 R14: 0000000000000000 R15: 00007ffd83d815c0 Aug 08 23:19:23 localhost.localdomain kernel:
Showing all locks held in the system: Aug 08 23:19:23 localhost.localdomain kernel: 1 lock held by khungtaskd/38: Aug 08 23:19:23 localhost.localdomain kernel: #0: 00000000b04056c7 (tasklist_lock){.+.+}, at: debug_show_all_locks+0x3e/0x165 Aug 08 23:19:23 localhost.localdomain kernel: 2 locks held by pulseaudio/1750: Aug 08 23:19:23 localhost.localdomain kernel: #0: 000000008d30dafb (snd_pcm_link_rwsem){++++}, at: snd_pcm_action_nonatomic+0x1e/0x70 [snd_pcm] Aug 08 23:19:23 localhost.localdomain kernel: #1: 00000000c8fc4ab6 (&usX2Y(card)->pcm_mutex){+.+.}, at: snd_usX2Y_pcm_prepare+0x38/0xd0 [snd_usb_usx2y]
The audio interface doesn't work and without nomodeset X freezes.
Any help pointing me in the right direction would be greatly appreciated. It looks like an issue with the snd_usb_usx2y driver to me, but I'm not sure.
Joe Spencer
On Fri, 17 Aug 2018 09:23:35 +0200, Joseph Spencer wrote:
When plugging an audio interface in with nomodeset I see the following in the logs:
Aug 08 23:19:23 localhost.localdomain kernel: INFO: task pulseaudio:1750 blocked for more than 120 seconds. Aug 08 23:19:23 localhost.localdomain kernel: Tainted: G OE 4.17.11-200.fc28.x86_64+debug #1 Aug 08 23:19:23 localhost.localdomain kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Aug 08 23:19:23 localhost.localdomain kernel: pulseaudio D12408 1750 1268 0x00000000 Aug 08 23:19:23 localhost.localdomain kernel: Call Trace:
Aug 08 23:19:23 localhost.localdomain kernel: ? __schedule+0x2ba/0xaf0
Aug 08 23:19:23 localhost.localdomain kernel: ? prepare_to_wait_event+0xd2/0x180 Aug 08 23:19:23 localhost.localdomain kernel: schedule+0x2f/0x90
Aug 08 23:19:23 localhost.localdomain kernel: usX2Y_urbs_start+0x208/0x470 [snd_usb_usx2y] Aug 08 23:19:23 localhost.localdomain kernel: ? finish_wait+0x80/0x80
(snip)
So this is waiting for the event to be triggered by the urb completion, but it didn't happen by some reason on your machine.
The audio interface doesn't work and without nomodeset X freezes.
Any help pointing me in the right direction would be greatly appreciated. It looks like an issue with the snd_usb_usx2y driver to me, but I'm not sure.
Unfortunately the driver is very special and does somewhat magical way only the author knows of well. You need to follow the code, and at least check whether the urb submission at the playback start worked properly as expected.
Takashi
Thanks for the reply! I've been pouring over the source. Looks like it really hasn't been actively maintained since around 2005, mostly minor refactoring since then.
If I have questions that the docs available online can't answer, would this be a good place to ask?
I appreciate all the work you guys do! Joe Spencer 602.777.2307
On Sun, Aug 19, 2018 at 1:08 AM Takashi Iwai tiwai@suse.de wrote:
On Fri, 17 Aug 2018 09:23:35 +0200, Joseph Spencer wrote:
When plugging an audio interface in with nomodeset I see the following in the logs:
Aug 08 23:19:23 localhost.localdomain kernel: INFO: task pulseaudio:1750 blocked for more than 120 seconds. Aug 08 23:19:23 localhost.localdomain kernel: Tainted: G OE 4.17.11-200.fc28.x86_64+debug #1 Aug 08 23:19:23 localhost.localdomain kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Aug 08 23:19:23 localhost.localdomain kernel: pulseaudio D12408
1750
1268 0x00000000 Aug 08 23:19:23 localhost.localdomain kernel: Call Trace:
Aug 08 23:19:23 localhost.localdomain kernel: ? __schedule+0x2ba/0xaf0
Aug 08 23:19:23 localhost.localdomain kernel: ? prepare_to_wait_event+0xd2/0x180 Aug 08 23:19:23 localhost.localdomain kernel: schedule+0x2f/0x90
Aug 08 23:19:23 localhost.localdomain kernel:
usX2Y_urbs_start+0x208/0x470
[snd_usb_usx2y] Aug 08 23:19:23 localhost.localdomain kernel: ? finish_wait+0x80/0x80
(snip)
So this is waiting for the event to be triggered by the urb completion, but it didn't happen by some reason on your machine.
The audio interface doesn't work and without nomodeset X freezes.
Any help pointing me in the right direction would be greatly appreciated. It looks like an issue with the snd_usb_usx2y driver to me, but I'm not sure.
Unfortunately the driver is very special and does somewhat magical way only the author knows of well. You need to follow the code, and at least check whether the urb submission at the playback start worked properly as expected.
Takashi
On Sun, 19 Aug 2018 22:27:19 +0200, Joseph Spencer wrote:
Thanks for the reply! I've been pouring over the source. Looks like it really hasn't been actively maintained since around 2005, mostly minor refactoring since then.
If I have questions that the docs available online can't answer, would this be a good place to ask?
Unfortunately I also have no technical information about this piece of hardware. The best would be to ask the original author, Karsten Wiese, but I'm not sure whether the address in the code still valid...
Takashi
I appreciate all the work you guys do! Joe Spencer 602.777.2307
On Sun, Aug 19, 2018 at 1:08 AM Takashi Iwai tiwai@suse.de wrote:
On Fri, 17 Aug 2018 09:23:35 +0200, Joseph Spencer wrote:
When plugging an audio interface in with nomodeset I see the following in the logs:
Aug 08 23:19:23 localhost.localdomain kernel: INFO: task pulseaudio:1750 blocked for more than 120 seconds. Aug 08 23:19:23 localhost.localdomain kernel: Tainted: G OE 4.17.11-200.fc28.x86_64+debug #1 Aug 08 23:19:23 localhost.localdomain kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Aug 08 23:19:23 localhost.localdomain kernel: pulseaudio D12408
1750
1268 0x00000000 Aug 08 23:19:23 localhost.localdomain kernel: Call Trace:
Aug 08 23:19:23 localhost.localdomain kernel: ? __schedule+0x2ba/0xaf0
Aug 08 23:19:23 localhost.localdomain kernel: ? prepare_to_wait_event+0xd2/0x180 Aug 08 23:19:23 localhost.localdomain kernel: schedule+0x2f/0x90
Aug 08 23:19:23 localhost.localdomain kernel:
usX2Y_urbs_start+0x208/0x470
[snd_usb_usx2y] Aug 08 23:19:23 localhost.localdomain kernel: ? finish_wait+0x80/0x80
(snip)
So this is waiting for the event to be triggered by the urb completion, but it didn't happen by some reason on your machine.
The audio interface doesn't work and without nomodeset X freezes.
Any help pointing me in the right direction would be greatly appreciated. It looks like an issue with the snd_usb_usx2y driver to me, but I'm not sure.
Unfortunately the driver is very special and does somewhat magical way only the author knows of well. You need to follow the code, and at least check whether the urb submission at the playback start worked properly as expected.
Takashi
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (2)
-
Joseph Spencer
-
Takashi Iwai