* USB sound card freezes USB after resume from suspend @ 2023-04-25 18:19 Jakub Kicinski 2023-04-26 5:24 ` Takashi Iwai 0 siblings, 1 reply; 9+ messages in thread From: Jakub Kicinski @ 2023-04-25 18:19 UTC (permalink / raw) To: Jaroslav Kysela, Takashi Iwai Cc: alsa-devel, linux-usb, Greg Kroah-Hartman, regressions Hi! For a few weeks now I can't use any USB devices if I suspend my laptop with my USB sound card active and resuming it without it connected. USB worker threads seems to be sitting in: [<0>] snd_pcm_dev_disconnect+0x1e8/0x280 [snd_pcm] [<0>] snd_device_disconnect_all+0x42/0x80 [snd] [<0>] snd_card_disconnect+0x128/0x290 [snd] [<0>] usb_audio_disconnect+0x11a/0x2c0 [snd_usb_audio] [<0>] usb_unbind_interface+0x8c/0x270 [<0>] device_release_driver_internal+0x1b2/0x230 [<0>] bus_remove_device+0xd8/0x150 [<0>] device_del+0x18b/0x410 [<0>] usb_disable_device+0xc6/0x1e0 [<0>] usb_disconnect+0xda/0x2c0 [<0>] usb_disconnect+0xbf/0x2c0 [<0>] usb_disconnect+0xbf/0x2c0 [<0>] usb_disconnect+0xbf/0x2c0 [<0>] hub_event+0xf01/0x1cd0 [<0>] process_one_work+0x1c4/0x3d0 [<0>] worker_thread+0x4d/0x380 [<0>] kthread+0xe6/0x110 [<0>] ret_from_fork+0x29/0x50 Which is: snd_pcm_dev_disconnect (/usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:818 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:812 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:1129) snd_pcm It happens on Fedora 37 and Fedora 38, it seems to have coincided with the 6.2 kernel but I'm not 100% sure. The USB devices come back after half an hour or so, silently. There's nothing of note in dmesg. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: USB sound card freezes USB after resume from suspend 2023-04-25 18:19 USB sound card freezes USB after resume from suspend Jakub Kicinski @ 2023-04-26 5:24 ` Takashi Iwai 2023-04-26 5:46 ` Geraldo Nascimento 2023-04-26 8:01 ` Jaroslav Kysela 0 siblings, 2 replies; 9+ messages in thread From: Takashi Iwai @ 2023-04-26 5:24 UTC (permalink / raw) To: Jakub Kicinski Cc: Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-usb, Greg Kroah-Hartman, regressions On Tue, 25 Apr 2023 20:19:24 +0200, Jakub Kicinski wrote: > > Hi! > > For a few weeks now I can't use any USB devices if I suspend my laptop > with my USB sound card active and resuming it without it connected. > > USB worker threads seems to be sitting in: > > [<0>] snd_pcm_dev_disconnect+0x1e8/0x280 [snd_pcm] > [<0>] snd_device_disconnect_all+0x42/0x80 [snd] > [<0>] snd_card_disconnect+0x128/0x290 [snd] > [<0>] usb_audio_disconnect+0x11a/0x2c0 [snd_usb_audio] > [<0>] usb_unbind_interface+0x8c/0x270 > [<0>] device_release_driver_internal+0x1b2/0x230 > [<0>] bus_remove_device+0xd8/0x150 > [<0>] device_del+0x18b/0x410 > [<0>] usb_disable_device+0xc6/0x1e0 > [<0>] usb_disconnect+0xda/0x2c0 > [<0>] usb_disconnect+0xbf/0x2c0 > [<0>] usb_disconnect+0xbf/0x2c0 > [<0>] usb_disconnect+0xbf/0x2c0 > [<0>] hub_event+0xf01/0x1cd0 > [<0>] process_one_work+0x1c4/0x3d0 > [<0>] worker_thread+0x4d/0x380 > [<0>] kthread+0xe6/0x110 > [<0>] ret_from_fork+0x29/0x50 > > Which is: > > snd_pcm_dev_disconnect (/usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:818 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:812 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:1129) snd_pcm > > It happens on Fedora 37 and Fedora 38, it seems to have coincided with > the 6.2 kernel but I'm not 100% sure. > > The USB devices come back after half an hour or so, silently. > There's nothing of note in dmesg. AFAIK, there has been no similar report, so far. Is it a regression? If yes, could you figure out which kernel version starts showing the problem (or at best bisection)? thanks, Takashi ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: USB sound card freezes USB after resume from suspend 2023-04-26 5:24 ` Takashi Iwai @ 2023-04-26 5:46 ` Geraldo Nascimento 2023-04-26 6:02 ` Takashi Iwai 2023-04-26 8:01 ` Jaroslav Kysela 1 sibling, 1 reply; 9+ messages in thread From: Geraldo Nascimento @ 2023-04-26 5:46 UTC (permalink / raw) To: Takashi Iwai Cc: Jakub Kicinski, Takashi Iwai, alsa-devel, linux-usb, Greg Kroah-Hartman, regressions Hello Jakub and Takashi, On Wed, Apr 26, 2023 at 07:24:50AM +0200, Takashi Iwai wrote: > On Tue, 25 Apr 2023 20:19:24 +0200, > Jakub Kicinski wrote: > > > > Hi! > > > > For a few weeks now I can't use any USB devices if I suspend my laptop > > with my USB sound card active and resuming it without it connected. Takashi, did you pay attention to the workflow of triggering Jakub's bug? He suspends the computer with the sound card active, disconnects the sound card and expects to resume his computer back to an usable state. IMHO this is a very believable report and I can see something going possibly wrong with this workflow. I understand you need the bisection from Jakub to get a clearer picture, I was just emphasizing the point that Jakub seems to be disconnecting the USB sound card during suspend and then resuming, at least that's what I was able to understand. Thanks, Geraldo Nascimento > > > > USB worker threads seems to be sitting in: > > > > [<0>] snd_pcm_dev_disconnect+0x1e8/0x280 [snd_pcm] > > [<0>] snd_device_disconnect_all+0x42/0x80 [snd] > > [<0>] snd_card_disconnect+0x128/0x290 [snd] > > [<0>] usb_audio_disconnect+0x11a/0x2c0 [snd_usb_audio] > > [<0>] usb_unbind_interface+0x8c/0x270 > > [<0>] device_release_driver_internal+0x1b2/0x230 > > [<0>] bus_remove_device+0xd8/0x150 > > [<0>] device_del+0x18b/0x410 > > [<0>] usb_disable_device+0xc6/0x1e0 > > [<0>] usb_disconnect+0xda/0x2c0 > > [<0>] usb_disconnect+0xbf/0x2c0 > > [<0>] usb_disconnect+0xbf/0x2c0 > > [<0>] usb_disconnect+0xbf/0x2c0 > > [<0>] hub_event+0xf01/0x1cd0 > > [<0>] process_one_work+0x1c4/0x3d0 > > [<0>] worker_thread+0x4d/0x380 > > [<0>] kthread+0xe6/0x110 > > [<0>] ret_from_fork+0x29/0x50 > > > > Which is: > > > > snd_pcm_dev_disconnect (/usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:818 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:812 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:1129) snd_pcm > > > > It happens on Fedora 37 and Fedora 38, it seems to have coincided with > > the 6.2 kernel but I'm not 100% sure. > > > > The USB devices come back after half an hour or so, silently. > > There's nothing of note in dmesg. > > AFAIK, there has been no similar report, so far. > > Is it a regression? If yes, could you figure out which kernel version > starts showing the problem (or at best bisection)? > > > thanks, > > Takashi ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: USB sound card freezes USB after resume from suspend 2023-04-26 5:46 ` Geraldo Nascimento @ 2023-04-26 6:02 ` Takashi Iwai 2023-04-26 6:05 ` Geraldo Nascimento 0 siblings, 1 reply; 9+ messages in thread From: Takashi Iwai @ 2023-04-26 6:02 UTC (permalink / raw) To: Geraldo Nascimento Cc: Jakub Kicinski, Takashi Iwai, alsa-devel, linux-usb, Greg Kroah-Hartman, regressions On Wed, 26 Apr 2023 07:46:47 +0200, Geraldo Nascimento wrote: > > Hello Jakub and Takashi, > > On Wed, Apr 26, 2023 at 07:24:50AM +0200, Takashi Iwai wrote: > > On Tue, 25 Apr 2023 20:19:24 +0200, > > Jakub Kicinski wrote: > > > > > > Hi! > > > > > > For a few weeks now I can't use any USB devices if I suspend my laptop > > > with my USB sound card active and resuming it without it connected. > > Takashi, did you pay attention to the workflow of triggering Jakub's > bug? He suspends the computer with the sound card active, disconnects > the sound card and expects to resume his computer back to an usable > state. It's a pretty normal procedure for many people; most of USB type-C docks have a USB audio built-in, and people remove the machine from the dock after suspend. So that's an operation that is seen everyday everywhere. Still I haven't heard this issue, and it implies that it's either something new or specific to the machine or the environment. Or we've been just lucky... Takashi > IMHO this is a very believable report and I can see something going > possibly wrong with this workflow. I understand you need the bisection > from Jakub to get a clearer picture, I was just emphasizing the point > that Jakub seems to be disconnecting the USB sound card during suspend > and then resuming, at least that's what I was able to understand. > > Thanks, > Geraldo Nascimento > > > > > > > USB worker threads seems to be sitting in: > > > > > > [<0>] snd_pcm_dev_disconnect+0x1e8/0x280 [snd_pcm] > > > [<0>] snd_device_disconnect_all+0x42/0x80 [snd] > > > [<0>] snd_card_disconnect+0x128/0x290 [snd] > > > [<0>] usb_audio_disconnect+0x11a/0x2c0 [snd_usb_audio] > > > [<0>] usb_unbind_interface+0x8c/0x270 > > > [<0>] device_release_driver_internal+0x1b2/0x230 > > > [<0>] bus_remove_device+0xd8/0x150 > > > [<0>] device_del+0x18b/0x410 > > > [<0>] usb_disable_device+0xc6/0x1e0 > > > [<0>] usb_disconnect+0xda/0x2c0 > > > [<0>] usb_disconnect+0xbf/0x2c0 > > > [<0>] usb_disconnect+0xbf/0x2c0 > > > [<0>] usb_disconnect+0xbf/0x2c0 > > > [<0>] hub_event+0xf01/0x1cd0 > > > [<0>] process_one_work+0x1c4/0x3d0 > > > [<0>] worker_thread+0x4d/0x380 > > > [<0>] kthread+0xe6/0x110 > > > [<0>] ret_from_fork+0x29/0x50 > > > > > > Which is: > > > > > > snd_pcm_dev_disconnect (/usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:818 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:812 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:1129) snd_pcm > > > > > > It happens on Fedora 37 and Fedora 38, it seems to have coincided with > > > the 6.2 kernel but I'm not 100% sure. > > > > > > The USB devices come back after half an hour or so, silently. > > > There's nothing of note in dmesg. > > > > AFAIK, there has been no similar report, so far. > > > > Is it a regression? If yes, could you figure out which kernel version > > starts showing the problem (or at best bisection)? > > > > > > thanks, > > > > Takashi > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: USB sound card freezes USB after resume from suspend 2023-04-26 6:02 ` Takashi Iwai @ 2023-04-26 6:05 ` Geraldo Nascimento 0 siblings, 0 replies; 9+ messages in thread From: Geraldo Nascimento @ 2023-04-26 6:05 UTC (permalink / raw) To: Takashi Iwai Cc: Jakub Kicinski, Takashi Iwai, alsa-devel, linux-usb, Greg Kroah-Hartman, regressions On Wed, Apr 26, 2023 at 08:02:58AM +0200, Takashi Iwai wrote: > On Wed, 26 Apr 2023 07:46:47 +0200, > Geraldo Nascimento wrote: > > > > Hello Jakub and Takashi, > > > > On Wed, Apr 26, 2023 at 07:24:50AM +0200, Takashi Iwai wrote: > > > On Tue, 25 Apr 2023 20:19:24 +0200, > > > Jakub Kicinski wrote: > > > > > > > > Hi! > > > > > > > > For a few weeks now I can't use any USB devices if I suspend my laptop > > > > with my USB sound card active and resuming it without it connected. > > > > Takashi, did you pay attention to the workflow of triggering Jakub's > > bug? He suspends the computer with the sound card active, disconnects > > the sound card and expects to resume his computer back to an usable > > state. > > It's a pretty normal procedure for many people; most of USB type-C > docks have a USB audio built-in, and people remove the machine from > the dock after suspend. So that's an operation that is seen everyday > everywhere. > > Still I haven't heard this issue, and it implies that it's either > something new or specific to the machine or the environment. Or we've > been just lucky... > > > Takashi Understood, sorry for adding noise then. Thanks, Geraldo Nascimento ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: USB sound card freezes USB after resume from suspend 2023-04-26 5:24 ` Takashi Iwai 2023-04-26 5:46 ` Geraldo Nascimento @ 2023-04-26 8:01 ` Jaroslav Kysela 2023-04-26 8:14 ` Takashi Iwai 1 sibling, 1 reply; 9+ messages in thread From: Jaroslav Kysela @ 2023-04-26 8:01 UTC (permalink / raw) To: Takashi Iwai, Jakub Kicinski Cc: Takashi Iwai, alsa-devel, linux-usb, Greg Kroah-Hartman, regressions On 26. 04. 23 7:24, Takashi Iwai wrote: > On Tue, 25 Apr 2023 20:19:24 +0200, > Jakub Kicinski wrote: >> >> Hi! >> >> For a few weeks now I can't use any USB devices if I suspend my laptop >> with my USB sound card active and resuming it without it connected. >> >> USB worker threads seems to be sitting in: >> >> [<0>] snd_pcm_dev_disconnect+0x1e8/0x280 [snd_pcm] >> [<0>] snd_device_disconnect_all+0x42/0x80 [snd] >> [<0>] snd_card_disconnect+0x128/0x290 [snd] >> [<0>] usb_audio_disconnect+0x11a/0x2c0 [snd_usb_audio] >> [<0>] usb_unbind_interface+0x8c/0x270 >> [<0>] device_release_driver_internal+0x1b2/0x230 >> [<0>] bus_remove_device+0xd8/0x150 >> [<0>] device_del+0x18b/0x410 >> [<0>] usb_disable_device+0xc6/0x1e0 >> [<0>] usb_disconnect+0xda/0x2c0 >> [<0>] usb_disconnect+0xbf/0x2c0 >> [<0>] usb_disconnect+0xbf/0x2c0 >> [<0>] usb_disconnect+0xbf/0x2c0 >> [<0>] hub_event+0xf01/0x1cd0 >> [<0>] process_one_work+0x1c4/0x3d0 >> [<0>] worker_thread+0x4d/0x380 >> [<0>] kthread+0xe6/0x110 >> [<0>] ret_from_fork+0x29/0x50 >> >> Which is: >> >> snd_pcm_dev_disconnect (/usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:818 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:812 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:1129) snd_pcm >> >> It happens on Fedora 37 and Fedora 38, it seems to have coincided with >> the 6.2 kernel but I'm not 100% sure. >> >> The USB devices come back after half an hour or so, silently. >> There's nothing of note in dmesg. > > AFAIK, there has been no similar report, so far. > > Is it a regression? If yes, could you figure out which kernel version > starts showing the problem (or at best bisection)? It seems that it may be related to free_chmap(): (gdb) l *(snd_pcm_dev_disconnect+0x1e8) 0xef0 is in snd_pcm_dev_disconnect (sound/core/pcm.c:817). 812 static void free_chmap(struct snd_pcm_str *pstr) 813 { 814 if (pstr->chmap_kctl) { 815 struct snd_card *card = pstr->pcm->card; 816 817 down_write(&card->controls_rwsem); 818 snd_ctl_remove(card, pstr->chmap_kctl); 819 up_write(&card->controls_rwsem); 820 pstr->chmap_kctl = NULL; 821 } I think that the chmap should be freed only in snd_pcm_free_stream() to avoid possible nested mutex locks. This operation does not belong to disconnect. But I cannot reproduce this lock here. Jaroslav -- Jaroslav Kysela <perex@perex.cz> Linux Sound Maintainer; ALSA Project; Red Hat, Inc. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: USB sound card freezes USB after resume from suspend 2023-04-26 8:01 ` Jaroslav Kysela @ 2023-04-26 8:14 ` Takashi Iwai 2023-04-26 11:04 ` Jaroslav Kysela 0 siblings, 1 reply; 9+ messages in thread From: Takashi Iwai @ 2023-04-26 8:14 UTC (permalink / raw) To: Jaroslav Kysela Cc: Jakub Kicinski, Takashi Iwai, alsa-devel, linux-usb, Greg Kroah-Hartman, regressions On Wed, 26 Apr 2023 10:01:11 +0200, Jaroslav Kysela wrote: > > On 26. 04. 23 7:24, Takashi Iwai wrote: > > On Tue, 25 Apr 2023 20:19:24 +0200, > > Jakub Kicinski wrote: > >> > >> Hi! > >> > >> For a few weeks now I can't use any USB devices if I suspend my laptop > >> with my USB sound card active and resuming it without it connected. > >> > >> USB worker threads seems to be sitting in: > >> > >> [<0>] snd_pcm_dev_disconnect+0x1e8/0x280 [snd_pcm] > >> [<0>] snd_device_disconnect_all+0x42/0x80 [snd] > >> [<0>] snd_card_disconnect+0x128/0x290 [snd] > >> [<0>] usb_audio_disconnect+0x11a/0x2c0 [snd_usb_audio] > >> [<0>] usb_unbind_interface+0x8c/0x270 > >> [<0>] device_release_driver_internal+0x1b2/0x230 > >> [<0>] bus_remove_device+0xd8/0x150 > >> [<0>] device_del+0x18b/0x410 > >> [<0>] usb_disable_device+0xc6/0x1e0 > >> [<0>] usb_disconnect+0xda/0x2c0 > >> [<0>] usb_disconnect+0xbf/0x2c0 > >> [<0>] usb_disconnect+0xbf/0x2c0 > >> [<0>] usb_disconnect+0xbf/0x2c0 > >> [<0>] hub_event+0xf01/0x1cd0 > >> [<0>] process_one_work+0x1c4/0x3d0 > >> [<0>] worker_thread+0x4d/0x380 > >> [<0>] kthread+0xe6/0x110 > >> [<0>] ret_from_fork+0x29/0x50 > >> > >> Which is: > >> > >> snd_pcm_dev_disconnect (/usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:818 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:812 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:1129) snd_pcm > >> > >> It happens on Fedora 37 and Fedora 38, it seems to have coincided with > >> the 6.2 kernel but I'm not 100% sure. > >> > >> The USB devices come back after half an hour or so, silently. > >> There's nothing of note in dmesg. > > > > AFAIK, there has been no similar report, so far. > > > > Is it a regression? If yes, could you figure out which kernel version > > starts showing the problem (or at best bisection)? > > It seems that it may be related to free_chmap(): > > (gdb) l *(snd_pcm_dev_disconnect+0x1e8) > 0xef0 is in snd_pcm_dev_disconnect (sound/core/pcm.c:817). > 812 static void free_chmap(struct snd_pcm_str *pstr) > 813 { > 814 if (pstr->chmap_kctl) { > 815 struct snd_card *card = pstr->pcm->card; > 816 > 817 down_write(&card->controls_rwsem); > 818 snd_ctl_remove(card, pstr->chmap_kctl); > 819 up_write(&card->controls_rwsem); > 820 pstr->chmap_kctl = NULL; > 821 } > > I think that the chmap should be freed only in snd_pcm_free_stream() > to avoid possible nested mutex locks. This operation does not belong > to disconnect. A good point, it'll be a patch like below. But we still need to figure out what's actually happening there. > But I cannot reproduce this lock here. Here too. Could be tied with the config or the device? thanks, Takashi -- 8< -- --- a/sound/core/pcm.c +++ b/sound/core/pcm.c @@ -1126,7 +1126,6 @@ static int snd_pcm_dev_disconnect(struct snd_device *device) pcm_call_notify(pcm, n_disconnect); for (cidx = 0; cidx < 2; cidx++) { snd_unregister_device(&pcm->streams[cidx].dev); - free_chmap(&pcm->streams[cidx]); } mutex_unlock(&pcm->open_mutex); mutex_unlock(®ister_mutex); ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: USB sound card freezes USB after resume from suspend 2023-04-26 8:14 ` Takashi Iwai @ 2023-04-26 11:04 ` Jaroslav Kysela 2023-04-26 13:59 ` Jakub Kicinski 0 siblings, 1 reply; 9+ messages in thread From: Jaroslav Kysela @ 2023-04-26 11:04 UTC (permalink / raw) To: Takashi Iwai Cc: Jakub Kicinski, Takashi Iwai, alsa-devel, linux-usb, Greg Kroah-Hartman, regressions On 26. 04. 23 10:14, Takashi Iwai wrote: > On Wed, 26 Apr 2023 10:01:11 +0200, > Jaroslav Kysela wrote: >> >> On 26. 04. 23 7:24, Takashi Iwai wrote: >>> On Tue, 25 Apr 2023 20:19:24 +0200, >>> Jakub Kicinski wrote: >>>> >>>> Hi! >>>> >>>> For a few weeks now I can't use any USB devices if I suspend my laptop >>>> with my USB sound card active and resuming it without it connected. >>>> >>>> USB worker threads seems to be sitting in: >>>> >>>> [<0>] snd_pcm_dev_disconnect+0x1e8/0x280 [snd_pcm] >>>> [<0>] snd_device_disconnect_all+0x42/0x80 [snd] >>>> [<0>] snd_card_disconnect+0x128/0x290 [snd] >>>> [<0>] usb_audio_disconnect+0x11a/0x2c0 [snd_usb_audio] >>>> [<0>] usb_unbind_interface+0x8c/0x270 >>>> [<0>] device_release_driver_internal+0x1b2/0x230 >>>> [<0>] bus_remove_device+0xd8/0x150 >>>> [<0>] device_del+0x18b/0x410 >>>> [<0>] usb_disable_device+0xc6/0x1e0 >>>> [<0>] usb_disconnect+0xda/0x2c0 >>>> [<0>] usb_disconnect+0xbf/0x2c0 >>>> [<0>] usb_disconnect+0xbf/0x2c0 >>>> [<0>] usb_disconnect+0xbf/0x2c0 >>>> [<0>] hub_event+0xf01/0x1cd0 >>>> [<0>] process_one_work+0x1c4/0x3d0 >>>> [<0>] worker_thread+0x4d/0x380 >>>> [<0>] kthread+0xe6/0x110 >>>> [<0>] ret_from_fork+0x29/0x50 >>>> >>>> Which is: >>>> >>>> snd_pcm_dev_disconnect (/usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:818 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:812 /usr/src/debug/kernel-6.2.12/linux-6.2.12-300.fc38.x86_64/sound/core/pcm.c:1129) snd_pcm >>>> >>>> It happens on Fedora 37 and Fedora 38, it seems to have coincided with >>>> the 6.2 kernel but I'm not 100% sure. >>>> >>>> The USB devices come back after half an hour or so, silently. >>>> There's nothing of note in dmesg. >>> >>> AFAIK, there has been no similar report, so far. >>> >>> Is it a regression? If yes, could you figure out which kernel version >>> starts showing the problem (or at best bisection)? >> >> It seems that it may be related to free_chmap(): >> >> (gdb) l *(snd_pcm_dev_disconnect+0x1e8) >> 0xef0 is in snd_pcm_dev_disconnect (sound/core/pcm.c:817). >> 812 static void free_chmap(struct snd_pcm_str *pstr) >> 813 { >> 814 if (pstr->chmap_kctl) { >> 815 struct snd_card *card = pstr->pcm->card; >> 816 >> 817 down_write(&card->controls_rwsem); >> 818 snd_ctl_remove(card, pstr->chmap_kctl); >> 819 up_write(&card->controls_rwsem); >> 820 pstr->chmap_kctl = NULL; >> 821 } >> >> I think that the chmap should be freed only in snd_pcm_free_stream() >> to avoid possible nested mutex locks. This operation does not belong >> to disconnect. > > A good point, it'll be a patch like below. It looks good. Reviewed-by: Jaroslav Kysela <perex@perex.cz> > But we still need to figure out what's actually happening there. > >> But I cannot reproduce this lock here. > > Here too. Could be tied with the config or the device? Perhaps. Jakub, could you do more debugging (printk, traces)? Jaroslav -- Jaroslav Kysela <perex@perex.cz> Linux Sound Maintainer; ALSA Project; Red Hat, Inc. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: USB sound card freezes USB after resume from suspend 2023-04-26 11:04 ` Jaroslav Kysela @ 2023-04-26 13:59 ` Jakub Kicinski 0 siblings, 0 replies; 9+ messages in thread From: Jakub Kicinski @ 2023-04-26 13:59 UTC (permalink / raw) To: Jaroslav Kysela Cc: Takashi Iwai, Takashi Iwai, alsa-devel, linux-usb, Greg Kroah-Hartman, regressions On Wed, 26 Apr 2023 13:04:15 +0200 Jaroslav Kysela wrote: > > A good point, it'll be a patch like below. > > It looks good. > > Reviewed-by: Jaroslav Kysela <perex@perex.cz> > > > But we still need to figure out what's actually happening there. > > > >> But I cannot reproduce this lock here. > > > > Here too. Could be tied with the config or the device? > > Perhaps. Jakub, could you do more debugging (printk, traces)? Let me get back to you on Saturday - I'll test the patch and try a bit of bisecting. Can't promise much in terms of printing, because IDK what to print :( ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-04-26 13:59 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-04-25 18:19 USB sound card freezes USB after resume from suspend Jakub Kicinski 2023-04-26 5:24 ` Takashi Iwai 2023-04-26 5:46 ` Geraldo Nascimento 2023-04-26 6:02 ` Takashi Iwai 2023-04-26 6:05 ` Geraldo Nascimento 2023-04-26 8:01 ` Jaroslav Kysela 2023-04-26 8:14 ` Takashi Iwai 2023-04-26 11:04 ` Jaroslav Kysela 2023-04-26 13:59 ` Jakub Kicinski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).