IRQ Interrupt auf alle CPUs verteilen

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Kainan
Beiträge: 5
Registriert: 25.08.2012 08:59:09

IRQ Interrupt auf alle CPUs verteilen

Beitrag von Kainan » 25.08.2012 09:35:30

Hallo,

ich versuche gerade die Interrupts meiner NIC von derzeit einem Kern auf alle zu verteilen, hier mal die Ausgabe davor

cat /proc/interrupts

Code: Alles auswählen

	CPU0	CPU1	CPU2	CPU3	CPU4	CPU5	CPU6	CPU7
29:	1276	0		0		0		0		0		0		0		IR-PCI...eth0
Nachdem ich den Wert von smp_affinity auf ff (1111 1111) gesetzt habe, kommt folgende Ausgabe

cat /proc/interrupts

Code: Alles auswählen

	CPU0	CPU1	CPU2	CPU3	CPU4	CPU5	CPU6	CPU7
29:	1277	0		0		0		0		0		0		0		IR-PCI...eth0
cat /proc/irq/29/smp_affinity sollten die restlichen Kerne nicht auch irgendwelche Werte haben? Woran sehe ich, ob die Interrupts von eth0 auf alle Kerne verteilt werden?

Benutzeravatar
FANA
Beiträge: 482
Registriert: 30.03.2005 17:50:55

Re: IRQ Interrupt auf alle CPUs verteilen

Beitrag von FANA » 25.08.2012 13:26:39


Kainan
Beiträge: 5
Registriert: 25.08.2012 08:59:09

Re: IRQ Interrupt auf alle CPUs verteilen

Beitrag von Kainan » 25.08.2012 14:02:05

FANA hat geschrieben:Debianirqbalance
Danke für den Link, werde ich mir mal anschauen auch wenn mir eine native Lösung lieber wäre.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: IRQ Interrupt auf alle CPUs verteilen

Beitrag von rendegast » 25.08.2012 15:55:28

Ich habe hier keine besondere Einstellung, und da schlagen die irq verteilt auf:

Code: Alles auswählen

$ cat /proc/interrupts 
           CPU0       CPU1       
  0:     366117    7729142   IO-APIC-edge      timer
  1:        820      84406   IO-APIC-edge      i8042
  7:          1          0   IO-APIC-edge      parport0
  8:          0          1   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:       7749    1186680   IO-APIC-edge      i8042
 14:          0          0   IO-APIC-edge      pata_atiixp
 15:        749      86984   IO-APIC-edge      pata_atiixp
 16:          1        639   IO-APIC-fasteoi   ohci_hcd:usb3, ohci_hcd:usb4
 17:          0          0   IO-APIC-fasteoi   ehci_hcd:usb1
 18:          0          3   IO-APIC-fasteoi   ohci_hcd:usb5, ohci_hcd:usb6, ohci_hcd:usb7
 19:          0          0   IO-APIC-fasteoi   ehci_hcd:usb2
 20:         31       2646   IO-APIC-fasteoi   firewire_ohci
 22:      59755   23390355   IO-APIC-fasteoi   ahci

 42:       3347     679238   PCI-MSI-edge      eth0

 44:        131      11349   PCI-MSI-edge      fglrx[0]@PCI:1:0:0
NMI:          0          0   Non-maskable interrupts
LOC:    6800616    3196285   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:          0          0   Performance monitoring interrupts
IWI:          0          0   IRQ work interrupts
RES:   16624306   17614026   Rescheduling interrupts
CAL:       2411       1594   Function call interrupts
TLB:     222506     224044   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
MCE:          0          0   Machine check exceptions
MCP:        571        571   Machine check polls
(uptime 2 Tage)
Eventuell ist bei 1200 einfach noch zu früh nachgesehen,
oder das System ist so unausgelastet, daß alles locker vom ersten Kern erledigt wird.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Kainan
Beiträge: 5
Registriert: 25.08.2012 08:59:09

Re: IRQ Interrupt auf alle CPUs verteilen

Beitrag von Kainan » 26.08.2012 09:54:53

rendegast hat geschrieben:Eventuell ist bei 1200 einfach noch zu früh nachgesehen,
oder das System ist so unausgelastet, daß alles locker vom ersten Kern erledigt wird.
Das dachte ich auch zuerst, aber dem ist leider nicht so. Ich bekomme zwar andere Kerne zugewiesen, jedoch immer nur einen. Ich habe jetzt mal irqbalancer installiert, mal sehen wie es läuft.

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: IRQ Interrupt auf alle CPUs verteilen

Beitrag von cosmac » 26.08.2012 12:29:13

hi,

evt. möchte man bei manchen Netzwerkkarten die Interrupts sogar fest an eine CPU binden und evt. erzwingt der Treiber das.
'linux-3.5/Documentation/networking/cxgb.txt' hat geschrieben: KNOWN ISSUES
============
(...)
On a system with multiple CPUs, the interrupt (IRQ) for the network
controller may be bound to more than one CPU. This will cause TCP
retransmits if the packet data were to be split across different CPUs
and re-assembled in a different order than expected.
(...)
It is highly suggested that you do not run the irqbalance daemon on your
system, as this will change any smp_affinity setting you have applied.
In Documentation/networking/x25-iface.txt werden ähnliche Probleme erwähnt.
Beware of programmers who carry screwdrivers.

Antworten