public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* IRQ splitting
@ 2007-04-05 10:40 Jan Engelhardt
  2007-04-05 12:13 ` Jiri Kosina
  2007-04-05 14:14 ` Lennart Sorensen
  0 siblings, 2 replies; 8+ messages in thread
From: Jan Engelhardt @ 2007-04-05 10:40 UTC (permalink / raw)
  To: Linux Kernel Mailing List

Hello list,



let's take the following /proc/interrupts dump (CPU2,CPU3 trimmed)...

           CPU0       CPU1
  0:   37041766   37038991  IO-APIC-edge  timer
  1:         10          2  IO-APIC-edge  i8042
  8:          0          0  IO-APIC-edge  rtc
  9:          0          0  IO-APIC-level  acpi
 12:        114          0  IO-APIC-edge  i8042
 14:      25219    5800049  IO-APIC-edge  ide0
201:     260381     238454  IO-APIC-level  aacraid
209:          0          0  IO-APIC-level  ohci_hcd:usb1
217:          0          0  IO-APIC-level  ehci_hcd:usb2
225:   57531742          0  IO-APIC-level  eth0,radeon@pci:0000:03:00.0
233:         26          0  IO-APIC-level  eth1
NMI:       1661       1397
LOC:  147579966  147579949
ERR:          0
MIS:          0

My question is whether it is possible that eth0's interrupts go to CPU0
and radeon's to CPU1, and if so, how I would enable that. Alternatively,
is it possible to just move eth0 or radeon to a different interrupt?



Jan
-- 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: IRQ splitting
  2007-04-05 10:40 Jan Engelhardt
@ 2007-04-05 12:13 ` Jiri Kosina
  2007-04-05 13:11   ` Mark Hounschell
  2007-04-05 14:14 ` Lennart Sorensen
  1 sibling, 1 reply; 8+ messages in thread
From: Jiri Kosina @ 2007-04-05 12:13 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Linux Kernel Mailing List

On Thu, 5 Apr 2007, Jan Engelhardt wrote:

> My question is whether it is possible that eth0's interrupts go to CPU0 

Documentation/IRQ-affinity.txt

-- 
Jiri Kosina

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: IRQ splitting
  2007-04-05 12:13 ` Jiri Kosina
@ 2007-04-05 13:11   ` Mark Hounschell
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Hounschell @ 2007-04-05 13:11 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: Jan Engelhardt, Linux Kernel Mailing List

Jiri Kosina wrote:
> On Thu, 5 Apr 2007, Jan Engelhardt wrote:
> 
>> My question is whether it is possible that eth0's interrupts go to CPU0 
> 
> Documentation/IRQ-affinity.txt
> 

There is nothing in there tells ya how to get them off the same IRQ.
That has to be done first usually be moving one of them to another
slot/bus. Then Documentation/IRQ-affinity.txt can be referenced.

Somehow I think Jan already knew that and really wants to know
how to keep them from sharing the same irq without having to
change slot assignments. I know I would.

Mark

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: IRQ splitting
  2007-04-05 10:40 Jan Engelhardt
  2007-04-05 12:13 ` Jiri Kosina
@ 2007-04-05 14:14 ` Lennart Sorensen
  1 sibling, 0 replies; 8+ messages in thread
From: Lennart Sorensen @ 2007-04-05 14:14 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Linux Kernel Mailing List

On Thu, Apr 05, 2007 at 12:40:57PM +0200, Jan Engelhardt wrote:
> let's take the following /proc/interrupts dump (CPU2,CPU3 trimmed)...
> 
>            CPU0       CPU1
>   0:   37041766   37038991  IO-APIC-edge  timer
>   1:         10          2  IO-APIC-edge  i8042
>   8:          0          0  IO-APIC-edge  rtc
>   9:          0          0  IO-APIC-level  acpi
>  12:        114          0  IO-APIC-edge  i8042
>  14:      25219    5800049  IO-APIC-edge  ide0
> 201:     260381     238454  IO-APIC-level  aacraid
> 209:          0          0  IO-APIC-level  ohci_hcd:usb1
> 217:          0          0  IO-APIC-level  ehci_hcd:usb2
> 225:   57531742          0  IO-APIC-level  eth0,radeon@pci:0000:03:00.0
> 233:         26          0  IO-APIC-level  eth1
> NMI:       1661       1397
> LOC:  147579966  147579949
> ERR:          0
> MIS:          0
> 
> My question is whether it is possible that eth0's interrupts go to CPU0
> and radeon's to CPU1, and if so, how I would enable that. Alternatively,
> is it possible to just move eth0 or radeon to a different interrupt?

Check the motherboard manual.  Sometimes they explictly list which slots
share IRQs (And by share I mean are physically tied to the same wire).
I know many Asus boards have that information in the manual.

So in many cases other than changing slots, there is nothing you can do
to change the IRQ sharing, since the slots are physically sharing the
interrupt.

--
Len Sorensen

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: IRQ splitting
       [not found] <fa.21iotKLTgoLpkKhrbSxrjy5v7hM@ifi.uio.no>
@ 2007-04-05 14:34 ` Robert Hancock
  2007-04-05 19:23   ` Stephen Hemminger
  0 siblings, 1 reply; 8+ messages in thread
From: Robert Hancock @ 2007-04-05 14:34 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Linux Kernel Mailing List

Jan Engelhardt wrote:
> Hello list,
> 
> 
> 
> let's take the following /proc/interrupts dump (CPU2,CPU3 trimmed)...
> 
>            CPU0       CPU1
>   0:   37041766   37038991  IO-APIC-edge  timer
>   1:         10          2  IO-APIC-edge  i8042
>   8:          0          0  IO-APIC-edge  rtc
>   9:          0          0  IO-APIC-level  acpi
>  12:        114          0  IO-APIC-edge  i8042
>  14:      25219    5800049  IO-APIC-edge  ide0
> 201:     260381     238454  IO-APIC-level  aacraid
> 209:          0          0  IO-APIC-level  ohci_hcd:usb1
> 217:          0          0  IO-APIC-level  ehci_hcd:usb2
> 225:   57531742          0  IO-APIC-level  eth0,radeon@pci:0000:03:00.0
> 233:         26          0  IO-APIC-level  eth1
> NMI:       1661       1397
> LOC:  147579966  147579949
> ERR:          0
> MIS:          0
> 
> My question is whether it is possible that eth0's interrupts go to CPU0
> and radeon's to CPU1, and if so, how I would enable that. Alternatively,
> is it possible to just move eth0 or radeon to a different interrupt?

Generally (at least in APIC mode) the IRQ assignments are based on 
hard-wired interrupt lines on the board. In this case, the slots that 
the Radeon and eth0 card are in likely share a physical interrupt line 
and there is no way to separate them in software. You can try moving the 
  card(s) to different slots..

-- 
Robert Hancock      Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: IRQ splitting
  2007-04-05 14:34 ` IRQ splitting Robert Hancock
@ 2007-04-05 19:23   ` Stephen Hemminger
  2007-04-05 20:37     ` Jan Engelhardt
  0 siblings, 1 reply; 8+ messages in thread
From: Stephen Hemminger @ 2007-04-05 19:23 UTC (permalink / raw)
  To: linux-kernel

On Thu, 05 Apr 2007 08:34:59 -0600
Robert Hancock <hancockr@shaw.ca> wrote:

> Jan Engelhardt wrote:
> > Hello list,
> > 
> > 
> > 
> > let's take the following /proc/interrupts dump (CPU2,CPU3 trimmed)...
> > 
> >            CPU0       CPU1
> >   0:   37041766   37038991  IO-APIC-edge  timer
> >   1:         10          2  IO-APIC-edge  i8042
> >   8:          0          0  IO-APIC-edge  rtc
> >   9:          0          0  IO-APIC-level  acpi
> >  12:        114          0  IO-APIC-edge  i8042
> >  14:      25219    5800049  IO-APIC-edge  ide0
> > 201:     260381     238454  IO-APIC-level  aacraid
> > 209:          0          0  IO-APIC-level  ohci_hcd:usb1
> > 217:          0          0  IO-APIC-level  ehci_hcd:usb2
> > 225:   57531742          0  IO-APIC-level  eth0,radeon@pci:0000:03:00.0
> > 233:         26          0  IO-APIC-level  eth1
> > NMI:       1661       1397
> > LOC:  147579966  147579949
> > ERR:          0
> > MIS:          0
> > 
> > My question is whether it is possible that eth0's interrupts go to CPU0
> > and radeon's to CPU1, and if so, how I would enable that. Alternatively,
> > is it possible to just move eth0 or radeon to a different interrupt?
> 
> Generally (at least in APIC mode) the IRQ assignments are based on 
> hard-wired interrupt lines on the board. In this case, the slots that 
> the Radeon and eth0 card are in likely share a physical interrupt line 
> and there is no way to separate them in software. You can try moving the 
>   card(s) to different slots..
> 

If the radeon and/or the Ethernet driver support MSI, that would split
out the IRQ's as well.

-- 
Stephen Hemminger <shemminger@linux-foundation.org>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: IRQ splitting
  2007-04-05 20:37     ` Jan Engelhardt
@ 2007-04-05 19:45       ` Stephen Hemminger
  0 siblings, 0 replies; 8+ messages in thread
From: Stephen Hemminger @ 2007-04-05 19:45 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: linux-kernel

On Thu, 5 Apr 2007 22:37:45 +0200 (MEST)
Jan Engelhardt <jengelh@linux01.gwdg.de> wrote:

> Hello Stephen,
> 
> On Apr 5 2007 12:23, Stephen Hemminger wrote:
> >
> >If the radeon and/or the Ethernet driver support MSI, that would split
> >out the IRQ's as well.
> 
> Would Linux do that automatically? How to find out whether a given
> device -- or device driver? -- supports MSI?
> 
> 
> Thanks,
> Jan

lspci -vv will show if hardware is capable. The device driver needs
to have code that does the necessary MSI setup, some have it but
many don't. MSI is also broken on some chipsets (mostly AMD).

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: IRQ splitting
  2007-04-05 19:23   ` Stephen Hemminger
@ 2007-04-05 20:37     ` Jan Engelhardt
  2007-04-05 19:45       ` Stephen Hemminger
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Engelhardt @ 2007-04-05 20:37 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: linux-kernel

Hello Stephen,

On Apr 5 2007 12:23, Stephen Hemminger wrote:
>
>If the radeon and/or the Ethernet driver support MSI, that would split
>out the IRQ's as well.

Would Linux do that automatically? How to find out whether a given
device -- or device driver? -- supports MSI?


Thanks,
Jan
-- 

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-04-05 20:45 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <fa.21iotKLTgoLpkKhrbSxrjy5v7hM@ifi.uio.no>
2007-04-05 14:34 ` IRQ splitting Robert Hancock
2007-04-05 19:23   ` Stephen Hemminger
2007-04-05 20:37     ` Jan Engelhardt
2007-04-05 19:45       ` Stephen Hemminger
2007-04-05 10:40 Jan Engelhardt
2007-04-05 12:13 ` Jiri Kosina
2007-04-05 13:11   ` Mark Hounschell
2007-04-05 14:14 ` Lennart Sorensen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox