[linux-audio-user] APIC (Was: interrupt question)

Mark Knecht mknecht at controlnet.com
Mon Jan 19 12:30:47 EST 2004

   I asked some questions about this of the Linux kernel developers in
September of 2002. I received a couple of pretty informative answers. I
found them online for you and have attached the links below. At the outset
I'll admit that this information is not enough to really answer your
questions, but it will hopefully serve to point you in the right direction.

   By way of background, I designed chipsets and I/O devices for AMD in the
early 90's when the PC was getting more standardized, so I have a good
grounding in the original IBM architecture, but I've been on 1394 since the
APIC advances have happened and hove zero experience in this area. Take this
with a grain of salt.

My original question:

The two responses I received:


You'll need to puzzle out what this two responses really mean. The kernel
guys can be a bit terse. (Not in a negative way. They just give answers they
understand and that the rest of us probably need to dwell on for a few years
before we see the light.)

   The problems I had with these explanations was that they didn't clarify
the routing of physical interrupt lines to the order of the vector tables.
In motherboard design, the layout of the interrupt lines may possibly be a
single line between two or more devices. For instance, the physical
interrupt line for an AGP graphics controller is often the same physical
line routed to the upper most PCI slot. Since they share the same physical
line they have to be shared, but this discussion didn't clear up for me how
that's done. The devices go into their own vector even if they are shared.

   Also, the first link says 'For APICs, when two interrupts are present
when interrupts are enabled, the one with the highest interrupt vector
number will be taken first' and 'So, the last PCI interrupt source in the
MPS table will be the highest priority'.

   However the second link says 'The local APIC unit will handle interrupts
depending on vector, with lowest being highest priority. Here is a sample
table with NR being the IRQ e.g. 0 = 31;'

   For me this wording seems contradictory, but I think I was confusing the
interrupt number with the vector number somehow. I didn't have an SMP
machine to look at this with, and while one of my machines does have an
APICIO controller I don't use it and haven't been driven to try. (Sad - this
is over a year ago!) ;-) I am quite sure, however, that to make a PC work
well the PC chipset must be given the highest priority when servicing
interrupts since it contains the RTC and other things that must be serviced
very quickly, while PCI cards can be serviced (in general - not sound) when
ever the PC gets around to doing it.

   One other piece of interesting information was that you can supposedly
control the ordering of the interrupt table using some kernel type software.
This would be quite cool since you could then insert your sound card
anywhere into the list and give it the very best servicing that your machine
can provide.

   Good luck figuring this out. I'd like to understand it better myself, so
don't hesitate to pop back with some questions.


> -----Original Message-----
> From: linux-audio-user-bounces at music.columbia.edu
> [mailto:linux-audio-user-bounces at music.columbia.edu]On Behalf Of Jan
> Depner
> Sent: Sunday, January 18, 2004 1:59 AM
> To: A list for linux audio users
> Subject: Re: [linux-audio-user] APIC (Was: interrupt question)
> >From what I've heard/read, if you have a single processor machine you're
> better off turning APIC off.
> Jan
> On Sun, 2004-01-18 at 03:38, Robert Epprecht wrote:
> > Hi Derek
> >
> > derek holzer <derek at x-i.net> writes:
> >
> > > Robert Epprecht wrote:
> > >
> > >> lspci tells me something like "pin A routed to IRQ 23" (or similar)
> > >> I do not know anything about interrupt priority with these new irq's.
> > >> Pointers, informations or help highly appreciated.
> > >
> > > try here:
> > > http://myweb.cableone.net/eviltwin69/ALSA_JACK_ARDOUR.html
> > >
> > > specifically here:
> > > http://myweb.cableone.net/eviltwin69/Arcana.html#IRQs
> >
> > I do know these fine links and have consulted them before asking here.
> > Unfortunately they cover only the non-APIC interrupts.
> >
> >
> > So I try it again:  How do I best set up my sound card
> regarding interrupts
> > on a contemporary motherboard? (ASUS P4P800)
> >
> > Does APIC make the situation better or worse?
> > Should I try to switch it off?
> >
> > Please advice,
> > Robert Epprecht

More information about the Linux-audio-user mailing list