alsa multi device + jackd duplex = alsa poll time out errors

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

alsa multi device + jackd duplex = alsa poll time out errors

Achim_Kuntz
Hi all,

I have a problem with jackd after upgrading a pc to newer alsa and jack
versions (due to upgrading to suse 9.3).

In short:
Alsa multi devices fail when starting jack in duplex mode.
(The same setup *worked/works* with older alsa and jack versions, see below)

In detail:
I have a 'multi' device called 'multi48' defined in my .asoundrc which
combines hw:1 and hw:2 (2 RME hdsp 9652 cards, see attachment for the
asoundrc)

Starting jackd in duplex mode with this device doesn't work. jackd
prints out "ALSA: poll time out, polled for 834743 usecs" messages and
the clients do not receive process callbacks.

I also found that the numbers in /proc/interrupts do not increase for
the hdsp cards when jackd was started in duplex mode with the multi48
device.

Excatly the same setup works if I start jackd in playback-only (-P) or
capture-only (-C) mode, i.e. the clients get process callbacks, I get
sound and the /proc/interrupt numbers increase for the hdsp cards.

A very similar problem is described in this mail:
http://www.mail-archive.com/linux-audio-dev@.../msg18272.html

There was also mentioned a solution here
http://www.mail-archive.com/linux-audio-dev@.../msg18108.html
which doesn't work for me. I installed alsa 1.0.10 which incorporates
this fix, but it didn't help.

As only duplex mode fails, I tried using the "asym" plugin with the
following results (I also created ctl.duplex{type hw; card 1;} for jackd):

+++++++++++ working asym devices:
pcm.duplex1{
         type asym
         playback.pcm "hw:1"
         capture.pcm "hw:2"
}
pcm.duplex2{
         type asym
         playback.pcm "hw:1"
         capture.pcm "multi48"
}
pcm.duplex3{
         type asym
         playback.pcm "hw:2"
         capture.pcm "multi48"
}


+++++++++++ failing ('poll time out') asym devices:
pcm.duplex4{
         type asym
         playback.pcm "multi48"
         capture.pcm "hw:1"
}
pcm.duplex5{
         type asym
         playback.pcm "multi48"
         capture.pcm "hw:2"
}
pcm.duplex6{
         type asym
         playback.pcm "multi48"
         capture.pcm "multi48"
}

I.e.:
* I can define a working duplex device with capture ports of both cards
but playback ports of one card only.
* I can *not* define a working duplex device using playback ports of
both cards.
* If I select a non-working duplex definition and start jack in simplex
mode, it works (but not duplex)

The pc is a dual opteron runnning suse 9.3,kernel 2.6.11.4-21.9-smp.

The same setup (same hardware, same asoundrc, duplex+multi device)
worked with older verions of alsa and jack (alsa < 1.0, jack ?, kernel
possibly 2.4).
On a similar setup (same asoundrc, duplex+multi device, but dual
pentiumIII, two digi9652) and older alsa (0.9.0rc5) and jack (0.61.0)
versions it still works perfectly.

Any ideas what I could try next?
Is anyone running a similar setup successfully, i.e. running a current
jack version in duplex mode using a multi device?
Are there any multichannel duplex alsa applications that I could try to
check if it's an alsa or a jack problem?

Thanks for any hints!
--achim


pcm.multi48 {
        type multi;
        slaves.a.pcm "hw:1,0";
        slaves.a.channels 26;
        slaves.b.pcm "hw:2,0";
        slaves.b.channels 26;
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
        bindings.2.slave a;
        bindings.2.channel 2;
        bindings.3.slave a;
        bindings.3.channel 3;
        bindings.4.slave a;
        bindings.4.channel 4;
        bindings.5.slave a;
        bindings.5.channel 5;
        bindings.6.slave a;
        bindings.6.channel 6;
        bindings.7.slave a;
        bindings.7.channel 7;
        bindings.8.slave a;
        bindings.8.channel 8;
        bindings.9.slave a;
        bindings.9.channel 9;
        bindings.10.slave a;
        bindings.10.channel 10;
        bindings.11.slave a;
        bindings.11.channel 11;
        bindings.12.slave a;
        bindings.12.channel 12;
        bindings.13.slave a;
        bindings.13.channel 13;
        bindings.14.slave a;
        bindings.14.channel 14;
        bindings.15.slave a;
        bindings.15.channel 15;
        bindings.16.slave a;
        bindings.16.channel 16;
        bindings.17.slave a;
        bindings.17.channel 17;
        bindings.18.slave a;
        bindings.18.channel 18;
        bindings.19.slave a;
        bindings.19.channel 19;
        bindings.20.slave a;
        bindings.20.channel 20;
        bindings.21.slave a;
        bindings.21.channel 21;
        bindings.22.slave a;
        bindings.22.channel 22;
        bindings.23.slave a;
        bindings.23.channel 23;
        bindings.24.slave b;
        bindings.24.channel 0;
        bindings.25.slave b;
        bindings.25.channel 1;
        bindings.26.slave b;
        bindings.26.channel 2;
        bindings.27.slave b;
        bindings.27.channel 3;
        bindings.28.slave b;
        bindings.28.channel 4;
        bindings.29.slave b;
        bindings.29.channel 5;
        bindings.30.slave b;
        bindings.30.channel 6;
        bindings.31.slave b;
        bindings.31.channel 7;
        bindings.32.slave b;
        bindings.32.channel 8;
        bindings.33.slave b;
        bindings.33.channel 9;
        bindings.34.slave b;
        bindings.34.channel 10;
        bindings.35.slave b;
        bindings.35.channel 11;
        bindings.36.slave b;
        bindings.36.channel 12;
        bindings.37.slave b;
        bindings.37.channel 13;
        bindings.38.slave b;
        bindings.38.channel 14;
        bindings.39.slave b;
        bindings.39.channel 15;
        bindings.40.slave b;
        bindings.40.channel 16;
        bindings.41.slave b;
        bindings.41.channel 17;
        bindings.42.slave b;
        bindings.42.channel 18;
        bindings.43.slave b;
        bindings.43.channel 19;
        bindings.44.slave b;
        bindings.44.channel 20;
        bindings.45.slave b;
        bindings.45.channel 21;
        bindings.46.slave b;
        bindings.46.channel 22;
        bindings.47.slave b;
        bindings.47.channel 23;
        bindings.48.slave a;
        bindings.48.channel 24;
        bindings.49.slave a;
        bindings.49.channel 25;
}
ctl.multi48 {
        type hw;
        card 1;
}

pcm.duplex{
        type asym
        playback.pcm "hw:1"
        capture.pcm "multi48"
}
ctl.duplex{
        type hw;
        card 1;
}
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

Lee Revell
On Mon, 2005-11-28 at 13:22 +0100, Achim_Kuntz wrote:
> The same setup (same hardware, same asoundrc, duplex+multi device)
> worked with older verions of alsa and jack (alsa < 1.0, jack ?, kernel
> possibly 2.4).
> On a similar setup (same asoundrc, duplex+multi device, but dual
> pentiumIII, two digi9652) and older alsa (0.9.0rc5) and jack (0.61.0)
> versions it still works perfectly.
>
> Any ideas what I could try next?

Yes.  Since you have a working and non working system you can do a
binary search between them to find out which change broke your setup.

First try to determine whether it's the ALSA or JACK version that causes
the problem, then just try to narrow down where the problem was
introduced.

I would recommend trying JACK first, as it's quicker to test than
recompiling ALSA.

Lee



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

Lee Revell
In reply to this post by Achim_Kuntz
On Mon, 2005-11-28 at 13:22 +0100, Achim_Kuntz wrote:
> Hi all,
>
> I have a problem with jackd after upgrading a pc to newer alsa and
> jack versions (due to upgrading to suse 9.3).
>

Hmm.  Some of these changes look like they could be related:

http://cvs.sourceforge.net/viewcvs.py/alsa/alsa-lib/src/pcm/pcm_multi.c?rev=1.93&view=log

Try backing them out one at a time.

Lee




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

Pasi Kärkkäinen
In reply to this post by Lee Revell
On Mon, Nov 28, 2005 at 12:21:19PM -0500, Lee Revell wrote:

> On Mon, 2005-11-28 at 13:22 +0100, Achim_Kuntz wrote:
> > The same setup (same hardware, same asoundrc, duplex+multi device)
> > worked with older verions of alsa and jack (alsa < 1.0, jack ?, kernel
> > possibly 2.4).
> > On a similar setup (same asoundrc, duplex+multi device, but dual
> > pentiumIII, two digi9652) and older alsa (0.9.0rc5) and jack (0.61.0)
> > versions it still works perfectly.
> >
> > Any ideas what I could try next?
>
> Yes.  Since you have a working and non working system you can do a
> binary search between them to find out which change broke your setup.
>
> First try to determine whether it's the ALSA or JACK version that causes
> the problem, then just try to narrow down where the problem was
> introduced.
>
> I would recommend trying JACK first, as it's quicker to test than
> recompiling ALSA.
>

I have the same problem, but with ice1712 devices rather than 9652 devices.

I _think_ the bug is in alsa multi plugin, but I haven't had time to really
dig into it.

I've read the jackd code, and debugged it for a while.. the poll time out
messages come from "failing" poll() call.. so it's quite certain that the
problem is in alsa. But, I'm not 100% sure because I haven't had time to
confirm this.

Other people are also having the same problem.
 
> Lee
>

-- Pasi Kärkkäinen
       
                                   ^
                                .     .
                                 Linux
                              /    -    \
                             Choice.of.the
                           .Next.Generation.


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
<a href="http://ads.osdn.com/?ad_idv37&alloc_id865&op=click">http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

Achim_Kuntz
on 11/28/2005 06:52 PM, Pasi Kärkkäinen wrote:
> On Mon, Nov 28, 2005 at 12:21:19PM -0500, Lee Revell wrote:
>
[...]

>
> I have the same problem, but with ice1712 devices rather than 9652 devices.
>
> I _think_ the bug is in alsa multi plugin, but I haven't had time to really
> dig into it.
>
> I've read the jackd code, and debugged it for a while.. the poll time out
> messages come from "failing" poll() call.. so it's quite certain that the
> problem is in alsa. But, I'm not 100% sure because I haven't had time to
> confirm this.
>
> Other people are also having the same problem.
>  
>
>>Lee
>>
>
>
> -- Pasi Kärkkäinen
>        
Some new results regarding the multi/duplex problem:
ecasound (alsa mode) seems to work where jack fails:

I have connected a cd player to the spdif input of first hdsp (=channels
24,25 of hw:1 = channels 48,49 of the alsa device multi48, asoundrc
attached as reference)

I mapped the spdif outputs of the first hdsp to the first two output
channels because I have connected my loudspeakers to the adat outs:

amixer -D hw:1 cset numid=5 50,0,3000
amixer -D hw:1 cset numid=5 51,1,3000
(remark: 50,51 in the lines above are the last two logical outputs of an
hdsp card, i.e. the channels 24,25 which would be mapped to the spdif
out by default)

Then I used ecasound (ver 2.3.3) to stream 1:1 from all 50 inputs to all
50 outputs of the multi48 device:

ecasound -f:32,50,44100 -i alsa,multi48 -o alsa,multi48

I can hear the cd sound until I stop ecasound, i.e. ecasound seems to
work perfectly with the multi48 device in duplex mode where jackd fails.

I can't test many different jack/alsa versions as I would have to ask
our sysadmin to change them every time. Maybe the ecasound test can give
a hint to track down the reason for jack failing when using the multi
device.

-- Achim



pcm.multi48 {
        type multi;
        slaves.a.pcm "hw:1,0";
        slaves.a.channels 26;
        slaves.b.pcm "hw:2,0";
        slaves.b.channels 26;
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
        bindings.2.slave a;
        bindings.2.channel 2;
        bindings.3.slave a;
        bindings.3.channel 3;
        bindings.4.slave a;
        bindings.4.channel 4;
        bindings.5.slave a;
        bindings.5.channel 5;
        bindings.6.slave a;
        bindings.6.channel 6;
        bindings.7.slave a;
        bindings.7.channel 7;
        bindings.8.slave a;
        bindings.8.channel 8;
        bindings.9.slave a;
        bindings.9.channel 9;
        bindings.10.slave a;
        bindings.10.channel 10;
        bindings.11.slave a;
        bindings.11.channel 11;
        bindings.12.slave a;
        bindings.12.channel 12;
        bindings.13.slave a;
        bindings.13.channel 13;
        bindings.14.slave a;
        bindings.14.channel 14;
        bindings.15.slave a;
        bindings.15.channel 15;
        bindings.16.slave a;
        bindings.16.channel 16;
        bindings.17.slave a;
        bindings.17.channel 17;
        bindings.18.slave a;
        bindings.18.channel 18;
        bindings.19.slave a;
        bindings.19.channel 19;
        bindings.20.slave a;
        bindings.20.channel 20;
        bindings.21.slave a;
        bindings.21.channel 21;
        bindings.22.slave a;
        bindings.22.channel 22;
        bindings.23.slave a;
        bindings.23.channel 23;
        bindings.24.slave b;
        bindings.24.channel 0;
        bindings.25.slave b;
        bindings.25.channel 1;
        bindings.26.slave b;
        bindings.26.channel 2;
        bindings.27.slave b;
        bindings.27.channel 3;
        bindings.28.slave b;
        bindings.28.channel 4;
        bindings.29.slave b;
        bindings.29.channel 5;
        bindings.30.slave b;
        bindings.30.channel 6;
        bindings.31.slave b;
        bindings.31.channel 7;
        bindings.32.slave b;
        bindings.32.channel 8;
        bindings.33.slave b;
        bindings.33.channel 9;
        bindings.34.slave b;
        bindings.34.channel 10;
        bindings.35.slave b;
        bindings.35.channel 11;
        bindings.36.slave b;
        bindings.36.channel 12;
        bindings.37.slave b;
        bindings.37.channel 13;
        bindings.38.slave b;
        bindings.38.channel 14;
        bindings.39.slave b;
        bindings.39.channel 15;
        bindings.40.slave b;
        bindings.40.channel 16;
        bindings.41.slave b;
        bindings.41.channel 17;
        bindings.42.slave b;
        bindings.42.channel 18;
        bindings.43.slave b;
        bindings.43.channel 19;
        bindings.44.slave b;
        bindings.44.channel 20;
        bindings.45.slave b;
        bindings.45.channel 21;
        bindings.46.slave b;
        bindings.46.channel 22;
        bindings.47.slave b;
        bindings.47.channel 23;
        bindings.48.slave a;
        bindings.48.channel 24;
        bindings.49.slave a;
        bindings.49.channel 25;
}
ctl.multi48 {
        type hw;
        card 1;
}

pcm.duplex{
        type asym
        playback.pcm "hw:1"
        capture.pcm "multi48"
}
ctl.duplex{
        type hw;
        card 1;
}

Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

Pasi Kärkkäinen
On Tue, Nov 29, 2005 at 10:41:51AM +0100, Achim_Kuntz wrote:

> on 11/28/2005 06:52 PM, Pasi Kärkkäinen wrote:
> >On Mon, Nov 28, 2005 at 12:21:19PM -0500, Lee Revell wrote:
> >
> [...]
> >
> >I have the same problem, but with ice1712 devices rather than 9652 devices.
> >
> >I _think_ the bug is in alsa multi plugin, but I haven't had time to really
> >dig into it.
> >
> >I've read the jackd code, and debugged it for a while.. the poll time out
> >messages come from "failing" poll() call.. so it's quite certain that the
> >problem is in alsa. But, I'm not 100% sure because I haven't had time to
> >confirm this.
> >
> >Other people are also having the same problem.
> >
> >
> >>Lee
> >>
> >
> >
> >-- Pasi Kärkkäinen
> >      
>
> Some new results regarding the multi/duplex problem:
> ecasound (alsa mode) seems to work where jack fails:
>
> I have connected a cd player to the spdif input of first hdsp (=channels
> 24,25 of hw:1 = channels 48,49 of the alsa device multi48, asoundrc
> attached as reference)
>
> I mapped the spdif outputs of the first hdsp to the first two output
> channels because I have connected my loudspeakers to the adat outs:
>
> amixer -D hw:1 cset numid=5 50,0,3000
> amixer -D hw:1 cset numid=5 51,1,3000
> (remark: 50,51 in the lines above are the last two logical outputs of an
> hdsp card, i.e. the channels 24,25 which would be mapped to the spdif
> out by default)
>
> Then I used ecasound (ver 2.3.3) to stream 1:1 from all 50 inputs to all
> 50 outputs of the multi48 device:
>
> ecasound -f:32,50,44100 -i alsa,multi48 -o alsa,multi48
>
> I can hear the cd sound until I stop ecasound, i.e. ecasound seems to
> work perfectly with the multi48 device in duplex mode where jackd fails.
>
> I can't test many different jack/alsa versions as I would have to ask
> our sysadmin to change them every time. Maybe the ecasound test can give
> a hint to track down the reason for jack failing when using the multi
> device.
>

Is ecasound using MMAP_COMPLEX mode like jackd is using (well, you need to
patch jackd with MMAP_COMPLEX patch first).

I am/was using MMAP_COMPLEX patched jackd when I get this "poll time out"
error.

- Pasi Kärkkäinen
 
> -- Achim
>

>
> pcm.multi48 {
>         type multi;
>         slaves.a.pcm "hw:1,0";
>         slaves.a.channels 26;
>         slaves.b.pcm "hw:2,0";
>         slaves.b.channels 26;
>         bindings.0.slave a;
>         bindings.0.channel 0;
>         bindings.1.slave a;
>         bindings.1.channel 1;
>         bindings.2.slave a;
>         bindings.2.channel 2;
>         bindings.3.slave a;
>         bindings.3.channel 3;
>         bindings.4.slave a;
>         bindings.4.channel 4;
>         bindings.5.slave a;
>         bindings.5.channel 5;
>         bindings.6.slave a;
>         bindings.6.channel 6;
>         bindings.7.slave a;
>         bindings.7.channel 7;
>         bindings.8.slave a;
>         bindings.8.channel 8;
>         bindings.9.slave a;
>         bindings.9.channel 9;
>         bindings.10.slave a;
>         bindings.10.channel 10;
>         bindings.11.slave a;
>         bindings.11.channel 11;
>         bindings.12.slave a;
>         bindings.12.channel 12;
>         bindings.13.slave a;
>         bindings.13.channel 13;
>         bindings.14.slave a;
>         bindings.14.channel 14;
>         bindings.15.slave a;
>         bindings.15.channel 15;
>         bindings.16.slave a;
>         bindings.16.channel 16;
>         bindings.17.slave a;
>         bindings.17.channel 17;
>         bindings.18.slave a;
>         bindings.18.channel 18;
>         bindings.19.slave a;
>         bindings.19.channel 19;
>         bindings.20.slave a;
>         bindings.20.channel 20;
>         bindings.21.slave a;
>         bindings.21.channel 21;
>         bindings.22.slave a;
>         bindings.22.channel 22;
>         bindings.23.slave a;
>         bindings.23.channel 23;
>         bindings.24.slave b;
>         bindings.24.channel 0;
>         bindings.25.slave b;
>         bindings.25.channel 1;
>         bindings.26.slave b;
>         bindings.26.channel 2;
>         bindings.27.slave b;
>         bindings.27.channel 3;
>         bindings.28.slave b;
>         bindings.28.channel 4;
>         bindings.29.slave b;
>         bindings.29.channel 5;
>         bindings.30.slave b;
>         bindings.30.channel 6;
>         bindings.31.slave b;
>         bindings.31.channel 7;
>         bindings.32.slave b;
>         bindings.32.channel 8;
> bindings.33.slave b;
>         bindings.33.channel 9;
> bindings.34.slave b;
>         bindings.34.channel 10;
> bindings.35.slave b;
>         bindings.35.channel 11;
> bindings.36.slave b;
>         bindings.36.channel 12;
> bindings.37.slave b;
>         bindings.37.channel 13;
> bindings.38.slave b;
>         bindings.38.channel 14;
> bindings.39.slave b;
>         bindings.39.channel 15;
> bindings.40.slave b;
>         bindings.40.channel 16;
> bindings.41.slave b;
>         bindings.41.channel 17;
> bindings.42.slave b;
>         bindings.42.channel 18;
> bindings.43.slave b;
>         bindings.43.channel 19;
> bindings.44.slave b;
>         bindings.44.channel 20;
> bindings.45.slave b;
>         bindings.45.channel 21;
> bindings.46.slave b;
>         bindings.46.channel 22;
> bindings.47.slave b;
>         bindings.47.channel 23;
> bindings.48.slave a;
>         bindings.48.channel 24;
> bindings.49.slave a;
>         bindings.49.channel 25;
> }
> ctl.multi48 {
>         type hw;
>         card 1;
> }
>
> pcm.duplex{
> type asym
> playback.pcm "hw:1"
> capture.pcm "multi48"
> }
> ctl.duplex{
>         type hw;
>         card 1;
> }
>


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
<a href="http://ads.osdn.com/?ad_idv37&alloc_id865&op=click">http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

John Rigg-3
On Tue, Nov 29, 2005 at 01:47:54PM +0200, Pasi Kärkkäinen wrote:
> Is ecasound using MMAP_COMPLEX mode like jackd is using (well, you need to
> patch jackd with MMAP_COMPLEX patch first).
>
> I am/was using MMAP_COMPLEX patched jackd when I get this "poll time out"
> error.

The fact that Achim got an older system to work in duplex with two digi9652 and
jack-0.61.0 would suggest that MMAP_COMPLEX isn't needed with RME cards
(digi9652 at least). I don't think that's the case with multi ice1712.

John


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

Achim_Kuntz
In reply to this post by Pasi Kärkkäinen
on 11/29/2005 12:47 PM, Pasi Kärkkäinen wrote:
[...]

>>
>>ecasound -f:32,50,44100 -i alsa,multi48 -o alsa,multi48
>>
>>I can hear the cd sound until I stop ecasound, i.e. ecasound seems to
>>work perfectly with the multi48 device in duplex mode where jackd fails.
>>
>>I can't test many different jack/alsa versions as I would have to ask
>>our sysadmin to change them every time. Maybe the ecasound test can give
>>a hint to track down the reason for jack failing when using the multi
>>device.
>>
>
>
> Is ecasound using MMAP_COMPLEX mode like jackd is using (well, you need to
> patch jackd with MMAP_COMPLEX patch first).
>
> I am/was using MMAP_COMPLEX patched jackd when I get this "poll time out"
> error.
>
> - Pasi Kärkkäinen
>
I never used a MMAP_COMPLEX patched jackd as I never needed it (is it
maybe needed for ice1712 cards only?). Older jackd versions (which use
alsa < 1.0) worked with the multi+duplex setup.
At first I also thought it would be an alsa bug (because the error
message is caused by the alsa IO module) but as ecasound's alsa
interface works I'm not sure any more. I don't know any ecasound
implementation details, sorry.
-- Achim


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

John Rigg-3
In reply to this post by Pasi Kärkkäinen
On Mon, Nov 28, 2005 at 07:52:50PM +0200, Pasi Kärkkäinen wrote:
> I _think_ the bug is in alsa multi plugin, but I haven't had time to really
> dig into it.
>
> I've read the jackd code, and debugged it for a while.. the poll time out
> messages come from "failing" poll() call.. so it's quite certain that the
> problem is in alsa. But, I'm not 100% sure because I haven't had time to
> confirm this.

Further info:
Poll timeout also occurs with alsa-lib-1.0.9rc3 (pcm_multi rev 1.91).
jackd is still 0.100.7 with MMAP_COMPLEX patch.
I'll try an earlier version of alsa-lib next (several changes involving
poll occurred in pcm_multi.c in early 1.0.9rc*).

John


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

John Rigg-3
In reply to this post by Pasi Kärkkäinen
On Mon, Nov 28, 2005 at 07:52:50PM +0200, Pasi Kärkkäinen wrote:
> I _think_ the bug is in alsa multi plugin, but I haven't had time to really
> dig into it.
>
> I've read the jackd code, and debugged it for a while.. the poll time out
> messages come from "failing" poll() call.. so it's quite certain that the
> problem is in alsa. But, I'm not 100% sure because I haven't had time to
> confirm this.

I've narrowed the problem down further.

alsa-lib-1.0.8 (in Debian 3.1) works with multi ice1712 in duplex
with jack 0.100.7 with MMAP_COMPLEX patch.

alsa-lib-1.0.9-rc3 gives poll timeout with same jack version.

I tested 1.0.8 on i386 Debian 3.1, standard apart from jackd, running
on dual Opteron w. i386 UP kernel 2.6.8.
1.0.9rc3 tested on same machine but with Debian sid amd64 w. 2.6.14-rt20
SMP kernel.

John


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

John Rigg-3
On Sat, Dec 03, 2005 at 01:41:15PM +0000, John Rigg wrote:
> On Mon, Nov 28, 2005 at 07:52:50PM +0200, Pasi Kärkkäinen wrote:
> > I _think_ the bug is in alsa multi plugin, but I haven't had time to really
> > dig into it.
> I've narrowed the problem down further.
>
> alsa-lib-1.0.8 (in Debian 3.1) works with multi ice1712 in duplex
> with jack 0.100.7 with MMAP_COMPLEX patch.
>
> alsa-lib-1.0.9-rc3 gives poll timeout with same jack version.

OK, found where it broke.
alsa-lib-1.0.9rc1 gives poll timeout error
alsa-lib-1.0.8 works

These were both tested on same Debian 3.1 system with same jackd 0.100.7
with MMAP_COMPLEX patch.

John


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

Pasi Kärkkäinen
On Sat, Dec 03, 2005 at 02:37:24PM +0000, John Rigg wrote:

> On Sat, Dec 03, 2005 at 01:41:15PM +0000, John Rigg wrote:
> > On Mon, Nov 28, 2005 at 07:52:50PM +0200, Pasi Kärkkäinen wrote:
> > > I _think_ the bug is in alsa multi plugin, but I haven't had time to really
> > > dig into it.
> > I've narrowed the problem down further.
> >
> > alsa-lib-1.0.8 (in Debian 3.1) works with multi ice1712 in duplex
> > with jack 0.100.7 with MMAP_COMPLEX patch.
> >
> > alsa-lib-1.0.9-rc3 gives poll timeout with same jack version.
>
> OK, found where it broke.
> alsa-lib-1.0.9rc1 gives poll timeout error
> alsa-lib-1.0.8 works
>
> These were both tested on same Debian 3.1 system with same jackd 0.100.7
> with MMAP_COMPLEX patch.
>

Great, thanks for narrowing this down!

Now, we need to figure out what is the change that causes the problem..
gonna read the 1.0.8 -> 1.0.9rc1 patch/diff now.
 
> John
>

-- Pasi Kärkkäinen
       
                                   ^
                                .     .
                                 Linux
                              /    -    \
                             Choice.of.the
                           .Next.Generation.


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
<a href="http://ads.osdn.com/?ad_idv37&alloc_id865&op=click">http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

John Rigg-3
On Sun, Dec 04, 2005 at 06:14:35PM +0200, Pasi Kärkkäinen wrote:
> Great, thanks for narrowing this down!
>
> Now, we need to figure out what is the change that causes the problem..
> gonna read the 1.0.8 -> 1.0.9rc1 patch/diff now.

Pasi

Did you get the email I sent to alsa-devel? (I Cc'd you).
I've got duplex pcm_multi to work.
You need to go into alsa-lib-1.0.10/src/pcm/pcm_multi.c and
comment out lines 600-641, along with lines 729 and 731. This removes
an addition made in pcm_multi.c rev 1.89. Recompile and it should work
if you specify -C and -P devices separately on the jackd command line,
eg.:

jackd -d alsa -C multi_capture -P multi_playback

Right now I'm debugging that section of code to see if I can work out
why it breaks. So far I've discovered that it only executes in duplex
mode, and then it executes twice.

John


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel
Reply | Threaded
Open this post in threaded view
|

Re: alsa multi device + jackd duplex = alsa poll time out errors

Pasi Kärkkäinen
On Sun, Dec 04, 2005 at 05:28:41PM +0000, John Rigg wrote:

> On Sun, Dec 04, 2005 at 06:14:35PM +0200, Pasi Kärkkäinen wrote:
> > Great, thanks for narrowing this down!
> >
> > Now, we need to figure out what is the change that causes the problem..
> > gonna read the 1.0.8 -> 1.0.9rc1 patch/diff now.
>
> Pasi
>
> Did you get the email I sent to alsa-devel? (I Cc'd you).
> I've got duplex pcm_multi to work.
> You need to go into alsa-lib-1.0.10/src/pcm/pcm_multi.c and
> comment out lines 600-641, along with lines 729 and 731. This removes
> an addition made in pcm_multi.c rev 1.89. Recompile and it should work
> if you specify -C and -P devices separately on the jackd command line,
> eg.:
>
> jackd -d alsa -C multi_capture -P multi_playback
>
> Right now I'm debugging that section of code to see if I can work out
> why it breaks. So far I've discovered that it only executes in duplex
> mode, and then it executes twice.
>

Yes, I got your mail, but I noticed it after replying to your message in
jack-dev :)

Good to know you found the change that causes the problem.

I'm not at home right now (with the ice1712 hw), but I'll try to find the
bug when I get back home tomorrow.

> John
>
>

-- Pasi Kärkkäinen
       
                                   ^
                                .     .
                                 Linux
                              /    -    \
                             Choice.of.the
                           .Next.Generation.


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
<a href="http://ads.osdn.com/?ad_idv37&alloc_id865&op=click">http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
Jackit-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jackit-devel