[ardour-dev] Ancient history? - Problem identified

Mark Knecht markknecht at gmail.com
Thu Nov 11 10:32:07 PST 2004


On Thu, 11 Nov 2004 10:06:49 -0800 (PST), R Parker <rtp405 at yahoo.com> wrote:
> Hi Mark,
> 
> --- Mark Knecht <markknecht at gmail.com> wrote:
> 
> >    Even though you tried what appears to be a
> > similar kernel to the
> > one I'm using did you set up the kernel to make your
> > sound card
> > interrupt operate non-threaded? That was a useful
> > thing for me to do.
> 
> Is this a feature/user space capability of the 2.6
> kernels and not part of the 2.4 kernels? I run 2.4.
> 
> ron
> 

Yes - I guess... ;-) In my kernel there is a directory /proc/irq that
has an entry for each irq. (This is using APIC interrupts, not
traditional interrupts.) I set 'threaded' to 0 for my sound device:

First you search for the sound device interrupt:

flash mark $ cat /proc/interrupts 
           CPU0       
  0:   13647215    IO-APIC-edge  timer  0/47215
  1:      14250    IO-APIC-edge  i8042  3/14248
  5:     242452   IO-APIC-level  ATI IXP  0/42452
  8:          2    IO-APIC-edge  rtc  0/2
 12:        113    IO-APIC-edge  i8042  0/112
 14:      13878    IO-APIC-edge  ide0  0/13878
 15:         13    IO-APIC-edge  ide1  1/12
 16:    1184550   IO-APIC-level  ohci_hcd, ohci1394, yenta,
radeon at PCI:1:5:0  28554/84550
 17:          1   IO-APIC-level  yenta  0/1
 18:          0   IO-APIC-level  ohci_hcd  0/0
 19:       6766   IO-APIC-level  ohci_hcd, ohci_hcd, eth0, ehci_hcd  0/6766
 21:          4   IO-APIC-level  acpi  0/4
NMI:          0 
LOC:   13647742 
ERR:          0
MIS:          0
flash mark $ 

Mine is on irq5. Then you set it's interrupt to non-threaded by
echoing 0 to it's /proc/irq entry. I do this in
/etc/conf.d/local/start:

flash root # cat /etc/conf.d/local.start 
# /etc/conf.d/local.start:
# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/conf.d/local.start,v
1.4 2002/11/18 19:39:22 azarah Exp $

# This is a good place to load any misc.
# programs on startup ( 1>&2 )

# Set sound and CD to non-threaded operation

echo 0 > /proc/irq/5/ATI\ IXP/threaded
echo 0 > /proc/irq/15/ide1/threaded

true
flash root #

NOTE: PLease not the word 'true' at the very end. This is a hack and
it's sort of bad. It basically tells the system that this file
executed correctly even if it didn't. I don't know how to fix this.
Without 'true' I had some message problem. I don't remember the
message.

I can check it by reading back the value in the /proc filesystem:

flash root # cat /proc/irq/5/ATI\ IXP/threaded 
0
flash root #

Note - I also set my hard drive on this laptop to non-threaded just
for fun basically. I don't record anything except junk on this box in
Ardour as I only have the onboard sound chip. On my normal system I
set my 1394 interrupt to non-threaded and record to 1394. In your case
you would consider setting your SCSI controller to non-threaded if you
needed it.

Note 2: Everything is say is subject to some smart guy correcting me. ;-)

Note 3: All of this points out that in Joel's system he could be
sharing an interrupt between his video card and some other device and
that could be a problem. We should have asked him for that info
earlier... My bad...

- Mark



More information about the Ardour-Dev mailing list