Portál AbcLinuxu, 9. srpna 2025 00:37


Dotaz: Vyznate se nekdo v IRQ routingu pod Linuxem?

10.8.2008 18:07 JF | skóre: 23
Vyznate se nekdo v IRQ routingu pod Linuxem?
Přečteno: 497×
Odpovědět | Admin
Dobry den, Koupil jsem si MB J7F2EDEN12G a zkousel ho zprovoznit jako router. Dost me zarazilo, ze se vsechna sitova IRQ pridelila do 10 (i kdyz pres to fungoval). Snazil jsem se to vyresit a zjistil jsem, ze at nastavuji v BIOSu cokoliv, Linux si stejne priradi IRQ po svem. Zabral mi prikazovy radek: append="pci=biosirq,noacpi,usepirqmask" Pak se sice IRQ priradily o poznani lepe - rozhodily se na 5, 10, 11 (Dle BIOSu) ovsem pri bootu to na me sypou neprijemne hlasky (snad se z nich Linux zotavi): PCI: Assigned IRQ 5 for device 0000:00:0f.0 IRQ routing conflict for 0000:00:0c.0, have irq 11, want irq 5
IRQ routing conflict for 0000:00:12.0, have irq 11, want irq 5
PCI: VIA VLink IRQ fixup for 0000:00:0f.0, from 120 to 5
- ale funguje to. Teoreticky bych mel byt schopen zarizeni eth0, wifi0, eth1, eth2, eth3 rozhodit na 4 ruzne IRQ (uz proto, ze visi na LNKA, LNKB, LNKC a LNKD). Chtel bych to udelat ciste a bez chyb. Nemate s necim podobnym nejake zkusennosti. root@xxx:~# cat /proc/interrupts CPU0
0: 1120957 XT-PIC-XT timer
1: 8 XT-PIC-XT i8042
2: 0 XT-PIC-XT cascade
5: 3803 XT-PIC-XT eth0
6: 3 XT-PIC-XT floppy
8: 1 XT-PIC-XT rtc
9: 0 XT-PIC-XT acpi
10: 765042 XT-PIC-XT wifi0
11: 77120 XT-PIC-XT eth1, eth2, eth3
14: 43512 XT-PIC-XT ide0
NMI: 0
LOC: 1120862
ERR: 0
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.8.2008 20:49 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nějak nechápu co se snažíš řešit ?

Nech to tak jak si to Linux udělá sám. (Do toho se zasahuje pouze jak to začne blbnout)

Viz třeba moje:
[petr@soban ~]$ cat /proc/interrupts
           CPU0       
  0:        100   IO-APIC-edge      timer
  1:        721   IO-APIC-edge      i8042
  7:          1   IO-APIC-edge    
  8:          2   IO-APIC-edge      rtc0
  9:          0   IO-APIC-fasteoi   acpi
 10:          0   IO-APIC-edge      MPU401 UART
 14:        218   IO-APIC-edge      pata_amd
 15:      25254   IO-APIC-edge      pata_amd
 16:     238280   IO-APIC-fasteoi   nvidia
 17:      90816   IO-APIC-fasteoi   saa7133[0]
 20:          0   IO-APIC-fasteoi   sata_nv
 21:      46098   IO-APIC-fasteoi   sata_nv
 22:      52791   IO-APIC-fasteoi   ohci_hcd:usb2, HDA Intel
 23:     247459   IO-APIC-fasteoi   ehci_hcd:usb1, eth0
NMI:          0   Non-maskable interrupts
LOC:     911722   Local timer interrupts
RES:          0   Rescheduling interrupts
CAL:          0   function call interrupts
TLB:          0   TLB shootdowns
TRM:          0   Thermal event interrupts
THR:          0   Threshold APIC interrupts
SPU:          0   Spurious interrupts
ERR:          1
Spíš pokud to má APIC tak to skus zapnout.
10.8.2008 22:09 JF | skóre: 23
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
A pokud nechapes, o co mi jde: rychlost odezvy na preruseni je snizovana poctem zarizeni sedicich na tomto preruseni. U beznych zarizeni to asi moc nevadi, ale treba zrovna gigove ethernetove karty mohou nagenerovat docela rychle velky pocet preruseni.

Pri kazdem IRQ se musi prohledavat pool vsech preruseni. A uz jsem videl, ze nekdo presne kvuli tomuto patchoval kernel.

Prave, ze to Linux sam od sebe dela blbe. Nejak se z toho sice zotavi, ale vsechny sitove karty na jednom IRQ je velice hloupe. Je to stejne jako bys koupil 1GB pameti a Linux pouzil 800MB. Soucasny stav s vypnutym ACPI se mi take nelibi, ale je to lepsi, ze jsou alespon pouzita 3 oddelena IRQ podle BIOSu. BIOS to udela lepe.

Ty to mas hezky rozvrstvene a take tam mas jedinou sitovou kartu. USB ji nikdy nemuze tak zatizit. U tveho storo bych o necem podobnem ani neuvazoval. U stolniho PC to nechavam tak jak to je.

Jeste na priklad: Prenos 100MB souboru vyvola 155000 preruseni na vystupnim eth a 155000 na vstupnim pri 2 min prenosu to je asi tak jedno preruseni za 300us. A to to nejelo naplno - rychlost pod 1MB/s.
10.8.2008 22:29 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
No nechápu co řešíš - fyzicky jsou na MB pouze 4 dráty (na PCI A B C a D)a integrováné zařízení máš zase zapojené na jeden z drátů (A, B, C nebo D), takže se stejně CPU musí dotazovat kdo to vyvolal.

Od toho aby to fungovalo rychleji je APIC jinak APIC není ACPI to jsou dva různé pojmy.

A pokud to fakt stíhá tak to neřeš - pokud to nestíhá zjisti zda ten MB má APIC.

Jinak taky bych skusil jinak ty karty proházet na PCI sběrnici.

No a jinak potom natahovat moduly pro karty ručně s optiony ethx irq=x doufám že ten modul to umí, vím že dřív to tak nějak šlo.
10.8.2008 23:14 JF | skóre: 23
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
O tech 4 dratech to vim. Me to zacalo zajimat, kdyz Linux delal neco uplne jineho, nez co reportoval BIOS. Oni asi BIOSy casto lzou. Soucasny stav se 3 IRQ je lepsi nez implicitni (a funguje to) a kdyz nic nevymyslim, tak u nej zustanu. Karty bohuzel poprehazet nelze, sic jsou spajeny od vyrobce dohromady: http://www.mitxpc.com/proddetail.asp?prod=JAD3RTLANG Jestli to stiha nebo ne se pozna, az to pouzije vic lidi. Nekde to ten traffic urcite zarizne. Mozna bych pridal par %. Zatim neumim odhadnout. Mozna by to chtelo necim promerit, ale to bych musel mit 2 PC a jednim chrlit data a druhym je chytat a proverit sdileni IRQ. A take je mi jasne, ze vsechna zarizeni na LNKA musi sdilet jeden IRQ, to same plati pro skupinu na LNKB .... Pouzil jsem ACPI, protoze tohle na me sypalo ACPI. A pak z neznameho duvodu se IRQ od eth prestehovala do 10.
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
Boot video device is 0000:01:00.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 6 7 *10 11 12)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 6 7 10 11 12) *5
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 6 7 10 *11 12)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 6 7 10 *11 12)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 6 7 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 6 7 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNK0] (IRQs 3 4 6 7 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 6 7 10 11 12) *0, disabled.
ACPI: PCI Interrupt Link [ALKA] (IRQs *20), disabled.
ACPI: PCI Interrupt Link [ALKB] (IRQs *21), disabled.
ACPI: PCI Interrupt Link [ALKC] (IRQs *22), disabled.
ACPI: PCI Interrupt Link [ALKD] (IRQs *23)
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
pnp: PnP ACPI: found 13 devices
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Using ACPI for IRQ routing
PCI: Routing PCI interrupts for all devices because "pci=routeirq" specified
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
11.8.2008 01:17 Figo
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
No pokud ses az takhle narocnej tak se na naky ctyri sitovky vybodni pac stejne ty preruseni sou krute znat. Porid si poradnej switch a routuj prez VLAN, mnohem lepsi nez soucasnej stav. dalsi mozny reseni mas pak az cisco,3com atd. Pokud se jedna o HODNE vytizenej router tak i 2 sitovky sou podle mne uz tak akorat...
11.8.2008 09:09 R
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
Pouzi IOAPIC.
11.8.2008 09:32 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
Však mu to říkám že APIC není ACPI aby použil APIC a né zastaralý AT, XT řadič IRQ.

Ta deska by ho snad měla mít.

A pokud ta deska je k tomu s 3x1G tak by to snad mělo stíhat.
11.8.2008 09:41 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
PS. Ještě bych se koukl zda pro to není novější BIOS.
11.8.2008 10:38 JF | skóre: 23
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
Dekuji moc za rady.

BIOS novejsi na netu je. Jak jsem premyslel, tak BIOS prirazuje IRQ dobre a je to i v souladu s papirovym navodem. Linux na to ovsem po zkusenostech s BIOSy dlabe a netusi, ze ma nejake nestandardni zarizeni.

Na APIC se podivam.

A ne abych byl spatne pochopen, presne naroky zatim neumim odhadnout. Chtel jsem z toho vymackat alespon co se da, az se to zprovozni tak uz do toho nebudu moct prilis vrtat.
11.8.2008 10:53 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
V první chvíli bych vyskoušel novější BIOS (starý zazálohovat) přiřazování IRQ bych nechal v biosu na auto, smazal to ruční nastavení.

Nechal zapnuté ACPI a pokud je tam položka o APIC tak zapnout.
11.8.2008 11:10 JF | skóre: 23
Rozbalit Rozbalit vše Re: Vyznate se nekdo v IRQ routingu pod Linuxem?
přiřazování IRQ bych nechal v biosu na auto, smazal to ruční nastavení.
To mam auto. Jedine, co neni auto je prinuceni Linuxu pouzivat prirazeni dle BIOSu a ne to svoje.
12.8.2008 11:05 JF | skóre: 23
Rozbalit Rozbalit vše Vyreseno
Dekuji, APIC zabral. Musel jsem prejit na kernel 2.6.24 (s 2.6.26 nefunguje MadWiFi) a po par hodkach boju se stalo to co jsem puvodne chtel. A pak ze MB neumi priradit kazde karte jiny IRQ: root@xxx:~# cat /proc/interrupts
CPU0
0: 141329 IO-APIC-edge timer
1: 8 IO-APIC-edge i8042
2: 0 XT-PIC-XT cascade
6: 3 IO-APIC-edge floppy
8: 1 IO-APIC-edge rtc
9: 0 IO-APIC-edge acpi
14: 44255 IO-APIC-edge ide0
16: 0 IO-APIC-fasteoi eth2
17: 127159 IO-APIC-fasteoi wifi0
18: 0 IO-APIC-fasteoi eth0
19: 2677 IO-APIC-fasteoi eth1
23: 248 IO-APIC-fasteoi eth3
NMI: 0 Non-maskable interrupts
LOC: 2343 Local timer interrupts
TRM: 0 Thermal event interrupts
SPU: 0 Spurious interrupts
ERR: 0
MIS: 0

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.