[alsa-devel] Asynchronous audio USB chips: choppy playback since 3.8-rc7
Hi ALSA developers,
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
Hi David,
On 03.04.2013 12:15, David Henningsson wrote:
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
There were no relevant changes for snd-usb between the two versions mentioned. The only patches that come in mind in this time window are:
3e619d041 "USB: EHCI: fix bug in scheduling periodic split transfers" b09a61cc0 "USB: EHCI: fix for leaking isochronous data"
And they have both been back-ported to stable. Copied Alan for reference.
Any chance some of the bug reporters could try and revert exactly those for testing?
Thanks, Daniel
Hi Daniel
On 03/04/13 12:23, Daniel Mack wrote:
Hi David,
On 03.04.2013 12:15, David Henningsson wrote:
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
There were no relevant changes for snd-usb between the two versions mentioned. The only patches that come in mind in this time window are:
3e619d041 "USB: EHCI: fix bug in scheduling periodic split transfers" b09a61cc0 "USB: EHCI: fix for leaking isochronous data"
This last one, doesn't give me any problem, just a memory leak and not a choppy playback (tested on 48Khz, 96Khz, 192Khz 32bit on OMAP3 device) and I don't think that it can be the reason of the problem.
http://www.m2tech.biz/hiface_dac.html
Michael
And they have both been back-ported to stable. Copied Alan for reference.
Any chance some of the bug reporters could try and revert exactly those for testing?
Thanks, Daniel
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Hi Daniel
On 03/04/13 15:55, Michael Trimarchi wrote:
Hi Daniel
On 03/04/13 12:23, Daniel Mack wrote:
Hi David,
On 03.04.2013 12:15, David Henningsson wrote:
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
There were no relevant changes for snd-usb between the two versions mentioned. The only patches that come in mind in this time window are:
3e619d041 "USB: EHCI: fix bug in scheduling periodic split transfers" b09a61cc0 "USB: EHCI: fix for leaking isochronous data"
This last one, doesn't give me any problem, just a memory leak and not a choppy playback (tested on 48Khz, 96Khz, 192Khz 32bit on OMAP3 device) and I don't think that it can be the reason of the problem.
Sorry the comment was for a bug that is not included in this list and recently fixed. USB: EHCI: fix bug in iTD/siTD DMA pool allocation
Michael
http://www.m2tech.biz/hiface_dac.html
Michael
And they have both been back-ported to stable. Copied Alan for reference.
Any chance some of the bug reporters could try and revert exactly those for testing?
Thanks, Daniel
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Hi Michael,
On 03.04.2013 16:11, Michael Trimarchi wrote:
On 03/04/13 15:55, Michael Trimarchi wrote:
On 03/04/13 12:23, Daniel Mack wrote:
Hi David,
On 03.04.2013 12:15, David Henningsson wrote:
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
There were no relevant changes for snd-usb between the two versions mentioned. The only patches that come in mind in this time window are:
3e619d041 "USB: EHCI: fix bug in scheduling periodic split transfers" b09a61cc0 "USB: EHCI: fix for leaking isochronous data"
This last one, doesn't give me any problem, just a memory leak and not a choppy playback (tested on 48Khz, 96Khz, 192Khz 32bit on OMAP3 device) and I don't think that it can be the reason of the problem.
Is OMAP3 at all a platform that is affected by the bug? It seems the effect is only seen on some special host controller hardware anyway.
Sorry the comment was for a bug that is not included in this list and recently fixed. USB: EHCI: fix bug in iTD/siTD DMA pool allocation
Sorry, you lost me. So what's the status of this issue now? Does "USB: EHCI: fix bug in iTD/siTD DMA pool allocation" fix it?
If not - and assuming you can reproduce the bug - which patches of the two I mentioned did you revert, and what was the effect of that? Did you try and remove both as well?
Thanks, Daniel
Hi Daniel
On 03/04/13 17:00, Daniel Mack wrote:
Hi Michael,
On 03.04.2013 16:11, Michael Trimarchi wrote:
On 03/04/13 15:55, Michael Trimarchi wrote:
On 03/04/13 12:23, Daniel Mack wrote:
Hi David,
On 03.04.2013 12:15, David Henningsson wrote:
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
There were no relevant changes for snd-usb between the two versions mentioned. The only patches that come in mind in this time window are:
3e619d041 "USB: EHCI: fix bug in scheduling periodic split transfers" b09a61cc0 "USB: EHCI: fix for leaking isochronous data"
This last one, doesn't give me any problem, just a memory leak and not a choppy playback (tested on 48Khz, 96Khz, 192Khz 32bit on OMAP3 device) and I don't think that it can be the reason of the problem.
Is OMAP3 at all a platform that is affected by the bug? It seems the effect is only seen on some special host controller hardware anyway.
Yes, omap3 ehci and m2tech products is not affected and I'm testing a dac with internal clock.
Sorry the comment was for a bug that is not included in this list and recently fixed. USB: EHCI: fix bug in iTD/siTD DMA pool allocation
Sorry, you lost me. So what's the status of this issue now? Does "USB: EHCI: fix bug in iTD/siTD DMA pool allocation" fix it?
With or without it, I don't have any choppy audio and this is not a fix of this bug.
If not - and assuming you can reproduce the bug - which patches of the two I mentioned did you revert, and what was the effect of that? Did you try and remove both as well?
In my version I have the other two commits applied. I doubt that these two commits are the reason of the choppy audio. What I can do, it test it on my laptop tomorrow and send feedback result
Michael
Thanks, Daniel
On 03.04.2013 17:19, Michael Trimarchi wrote:
Hi Daniel
On 03/04/13 17:00, Daniel Mack wrote:
Hi Michael,
On 03.04.2013 16:11, Michael Trimarchi wrote:
On 03/04/13 15:55, Michael Trimarchi wrote:
On 03/04/13 12:23, Daniel Mack wrote:
Hi David,
On 03.04.2013 12:15, David Henningsson wrote:
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
There were no relevant changes for snd-usb between the two versions mentioned. The only patches that come in mind in this time window are:
3e619d041 "USB: EHCI: fix bug in scheduling periodic split transfers" b09a61cc0 "USB: EHCI: fix for leaking isochronous data"
This last one, doesn't give me any problem, just a memory leak and not a choppy playback (tested on 48Khz, 96Khz, 192Khz 32bit on OMAP3 device) and I don't think that it can be the reason of the problem.
Is OMAP3 at all a platform that is affected by the bug? It seems the effect is only seen on some special host controller hardware anyway.
Yes, omap3 ehci and m2tech products is not affected and I'm testing a dac with internal clock.
Sorry the comment was for a bug that is not included in this list and recently fixed. USB: EHCI: fix bug in iTD/siTD DMA pool allocation
Sorry, you lost me. So what's the status of this issue now? Does "USB: EHCI: fix bug in iTD/siTD DMA pool allocation" fix it?
With or without it, I don't have any choppy audio and this is not a fix of this bug.
If you cannot reproduce the bug, how can you reproduce a fix then?
Also, if all users of snd-usb would be affected since 3.8-rc7, I'm sure this mailing list would be full of reports.
The bug is only triggered by some sort of hardware (appearantly such with an internal clock), and only with some patch applied that went in between 3.8-rc6 and 3.8-rc7.
Someone with hardware that shows the bug has to bisect between these two tags please. Given the number of patches between them (230), that shouldn't take long.
ALSA is certainly not the culprit here, as there where only ASoC patches in that range. I'm copying the linux-usb ML.
Thanks, Daniel
At Wed, 03 Apr 2013 12:15:25 +0200, David Henningsson wrote:
Hi ALSA developers,
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
Yes, there is no commits regarding usb-audio itself between 3.8-rc6 and rc7, so the likely culprit is in drivers/usb (usually either drivers/usb/host or drivers/usb/core). There are a bunch of changes there, so further bisection would be appreciated.
Takashi
On 03.04.2013 12:25, Takashi Iwai wrote:
At Wed, 03 Apr 2013 12:15:25 +0200, David Henningsson wrote:
Hi ALSA developers,
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
Yes, there is no commits regarding usb-audio itself between 3.8-rc6 and rc7, so the likely culprit is in drivers/usb (usually either drivers/usb/host or drivers/usb/core). There are a bunch of changes there, so further bisection would be appreciated.
Ok, Joseph Salisbury has build some bisection kernels, and Tyson Tan relentlessly tested all of them, and it turns out that
3e619d0415 ("USB: EHCI: fix bug in scheduling periodic split transfers")
Is the first bad commit. Also, reverting this commit from the current mainline head makes the problem disappear.
Alan, any idea?
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110
Thanks, Daniel
On Fri, 19 Apr 2013, Daniel Mack wrote:
On 03.04.2013 12:25, Takashi Iwai wrote:
At Wed, 03 Apr 2013 12:15:25 +0200, David Henningsson wrote:
Hi ALSA developers,
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
Yes, there is no commits regarding usb-audio itself between 3.8-rc6 and rc7, so the likely culprit is in drivers/usb (usually either drivers/usb/host or drivers/usb/core). There are a bunch of changes there, so further bisection would be appreciated.
Ok, Joseph Salisbury has build some bisection kernels, and Tyson Tan relentlessly tested all of them, and it turns out that
3e619d0415 ("USB: EHCI: fix bug in scheduling periodic split transfers")
Is the first bad commit. Also, reverting this commit from the current mainline head makes the problem disappear.
Alan, any idea?
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110
No ideas as to the cause.
For debugging, it would help to see a usbmon trace from a kernel where the problem occurs, together with a trace from another kernel where the problem does not occur.
Alan Stern
On 04/19/2013 10:48 PM, Alan Stern wrote:
On Fri, 19 Apr 2013, Daniel Mack wrote:
On 03.04.2013 12:25, Takashi Iwai wrote:
At Wed, 03 Apr 2013 12:15:25 +0200, David Henningsson wrote:
Hi ALSA developers,
Just to get your attention here on what seems to be an USB audio regression.
The bug is described in detail here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all
Quoting the bug:
" This bug seems to affect only a certain kind of hardware, which is called "Asynchronous USB Digital Audio Codec (DAC)". It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called "Synchronous USB DAC", uses the clock hosted by the mother board, which is not affected by this bug.
When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. "
According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though.
Yes, there is no commits regarding usb-audio itself between 3.8-rc6 and rc7, so the likely culprit is in drivers/usb (usually either drivers/usb/host or drivers/usb/core). There are a bunch of changes there, so further bisection would be appreciated.
Ok, Joseph Salisbury has build some bisection kernels, and Tyson Tan relentlessly tested all of them, and it turns out that
3e619d0415 ("USB: EHCI: fix bug in scheduling periodic split transfers")
Is the first bad commit. Also, reverting this commit from the current mainline head makes the problem disappear.
Alan, any idea?
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110
No ideas as to the cause.
For debugging, it would help to see a usbmon trace from a kernel where the problem occurs, together with a trace from another kernel where the problem does not occur.
Alan Stern
First, thanks for looking at this bug.
While a long-term solution is being discussed, this patch went to stable too, where it is causing regressions. Would it be okay just to revert this patch in the next stable series? (Even if this was a bug fix, few people seem to have noticed?) Or do you envision something else happening but the original -ENOSPC error showing up, due to other stuff that went to stable at the same time?
On Wed, 24 Apr 2013, David Henningsson wrote:
Ok, Joseph Salisbury has build some bisection kernels, and Tyson Tan relentlessly tested all of them, and it turns out that
3e619d0415 ("USB: EHCI: fix bug in scheduling periodic split transfers")
Is the first bad commit. Also, reverting this commit from the current mainline head makes the problem disappear.
Alan, any idea?
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110
No ideas as to the cause.
For debugging, it would help to see a usbmon trace from a kernel where the problem occurs, together with a trace from another kernel where the problem does not occur.
Alan Stern
First, thanks for looking at this bug.
While a long-term solution is being discussed, this patch went to stable too, where it is causing regressions. Would it be okay just to revert this patch in the next stable series? (Even if this was a bug fix, few people seem to have noticed?) Or do you envision something else happening but the original -ENOSPC error showing up, due to other stuff that went to stable at the same time?
I think reverting it from stable won't cause any new problems to show up (although the original problem will return, obviously). Go ahead.
At the same time, it would be nice to know that some people are really carrying out tests to find the reason for the new problem. Otherwise we end up with this commit reverted and nobody trying to figure out how to fix the original bug correctly.
Alan Stern
participants (5)
-
Alan Stern
-
Daniel Mack
-
David Henningsson
-
Michael Trimarchi
-
Takashi Iwai