Početak›Forumi›Linuks distribucije›Mandriva›Hardver›Šta je to PCI-MSI-EDGE interupt ???
- This topic has 4 odgovora, 2 glasa, and was last updated 12 years, 11 months ranije by dukenukem_4d.
-
AutorČlanci
-
13. maj 2010. u 4:37 pm #11890dukenukem_4dUčesnik
Šta je u stvari pci-msi-edge programski prekid (ili od mila ih zovemo IRQ/interupts)
??? 😀 😀 😀
negde sam naleteo da je to dobro i da je poželjno to koristiti od strane kernela jer je brže ???
(ne sećamse tačno gde ? gentoo wiki kod jedne slične ploče ?)mislim da je ovdebilo. vezano za SATA signalizaciju (ako je prikačen SATA drajv)
ali on ga koristi i za ethenet , koji je atheros u ovom slučaju 😀 😀
http://www.gentoo-wiki.info/Gigabyte_GA-G33M-S2H#Bus_Settings
šta ja dobijam ovime ?vidi se u liniji
221: 221271 700778 PCI-MSI-edge eth1[code]
# cat /proc/interrupts
CPU0 CPU1
0: 42 0 IO-APIC-edge timer
1: 18559 5 IO-APIC-edge i8042
4: 2 2 IO-APIC-edge lirc_serial
7: 0 0 IO-APIC-edge parport0
9: 0 0 IO-APIC-fasteoi acpi
12: 33 3 IO-APIC-edge i8042
14: 313275 13 IO-APIC-edge ide0
15: 0 0 IO-APIC-edge ide1
16: 1563468 1 IO-APIC-fasteoi uhci_hcd:usb5, HDA Intel, i915@pci:0000:00:02.0
18: 0 0 IO-APIC-fasteoi uhci_hcd:usb4
19: 982932 18 IO-APIC-fasteoi ata_piix, uhci_hcd:usb3, eth0
20: 2 1 IO-APIC-fasteoi ohci1394
23: 1 1 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2
221: 221271 700778 PCI-MSI-edge eth1
NMI: 0 0 Non-maskable interrupts
LOC: 8452867 8452834 Local timer interrupts
RES: 35021 47282 Rescheduling interrupts
CAL: 10083 191 function call interrupts
TLB: 1949 2322 TLB shootdowns
TRM: 0 0 Thermal event interrupts
SPU: 0 0 Spurious interrupts
ERR: 0
MIS: 0
[/code]edit
evo šta kaže na gornjem linkuIntel’s SATA AHCI implementation supports message signaled interrupts. “this enables a device to generate an interrupt using an inbound Memory Write on its PCI bus instead of asserting a device IRQ pin.” [Kernel 2.6.23].
???
ok kapiram izgleda da se uštedi po neka interrupt linija O0
(npr ako je 6 sata drajvova oni neće nijedan IRQ da potroše ? ??? )edit
mislim da se ta tehnologija koristi i za poneku gfx karticu ??? bilo ati ili nvid.
http://www.nvnews.net/vbulletin/showthread.php?t=120710&page=2ima i ovde nešto baš za network adaptere ???
Assigning Interrupts to Processor cores
http://download.intel.com/design/network/applnots/319935.pdfmože da dođe do nekih problema ili to rešava ovakve probleme ?
IRQ Conflict – Nvidia vs AHCI
http://ubuntuforums.org/showthread.php?p=458540313. maj 2010. u 4:54 pm #84297dukenukem_4dUčesnikhttp://www.screenage.de/blog/2008/06/02/my-package-of-the-day-irqbalance/
hm postoji neki irqbalance program za raspodelu irq po cpu jezgrama ???
a ovde lik ima od cpu0 do cpu8 auuuu 😀
http://www.groupsrv.com/linux/post-926370.html
[code]
[root at (no spam) testfw3 ~]# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0: 124666 0 0 0 0 0 0 0 IO-APIC-edge timer
1: 2 0 0 0 0 0 0 0 IO-APIC-edge i8042
3: 6 0 0 0 0 0 0 0 IO-APIC-edge serial
8: 1 0 0 0 0 0 0 0 IO-APIC-edge rtc0
9: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi acpi
12: 4 0 0 0 0 0 0 0 IO-APIC-edge i8042
16: 5119 0 0 0 0 0 0 0 IO-APIC-fasteoi ioc0
17: 291 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb1
18: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb2
19: 24 0 0 0 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb5
20: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb4
21: 42 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb3, ehci_hcd:usb6
23: 94 0 0 0 0 0 0 0 IO-APIC-fasteoi ata_piix
56: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
57: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
58: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
59: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv
65: 3263 0 0 0 0 0 0 0 PCI-MSI-edge eth4
75: 404 0 0 0 0 0 0 0 PCI-MSI-edge eth5
85: 1276 0 0 0 0 0 0 0 PCI-MSI-edge eth6
95: 826 0 0 0 0 0 0 0 PCI-MSI-edge eth7
NMI: 0 0 0 0 0 0 0 0 Non-maskable interrupts
LOC: 6095 62050 47672 5995 5593 23057 9556 24939 Local timer interrupts
SPU: 0 0 0 0 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 0 0 0 0 Performance monitoring interrupts
PND: 0 0 0 0 0 0 0 0 Performance pending work
RES: 40 56 117 43 47 115 321 322 Rescheduling interrupts
CAL: 36 60 62 59 52 58 57 46 Function call interrupts
TLB: 20 15 7 41 135 47 126 61 TLB shootdowns
TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 0 0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 0 0 0 0 Machine check exceptions
MCP: 3 3 3 3 3 3 3 3 Machine check polls
[/code]i ovde neki problemi sa 2.6.31
http://forum.nginx.org/read.php?30,53144
http://osdir.com/ml/users/2010-02/msg03586.html14. maj 2010. u 7:10 am #84298zokypokyUčesnik@dukenukem_4d
Programiranjem u Assembleru se ne bavim skoro 25 godina. Nekada davno na Sinclair ZX Spectrum 48K, sa Z80 procesorom, sam programirao u Assembleru. Nakon toga sam još jednom `92. posegao za njim, napisavši TO852 programče, koje je koristilo IRQ5, čini mi se, za štapmpanje preko BIOS-a.MS DOS je koristio IRQ5 liniju x86 procesora za slanje karaktera na LPT port. U prvih nekoliko kilobajta adresnog prostora CPU postojala je tabela vektora, odnosno tabela adresa na kojima se dotični IRQ zahtevi obrađuju. Ja sam u toj tabeli podmetnuo adersu svog programa, pa je sva štampa išla preko mog programa, gde su se YUASCII znakovi menjali sa znakovima iz 852 kodne strane. Moj program je bio TSR, odnosno bio je rezidentni i eto primera za upotrebu IRQ.
Naravno pojavom 32-bitnih OS potražnja za IRQ linijama je porasla, pa su počeli da ih multipleksiraju, odnosno da ih dele između više programa i uređaja. U svetu mikrokontrolera se IRQ linije uglavnom koriste za nasilno preusmeravanje rada procesora na programski kod za servis događaja koji je izazvao IRQ prekid. Ovo se uglavnom sve odvija na veoma niskom nivou i IRQ linije imaju najviši prioritet izvršavanja, recimo koriste ih hard diskovi, serijski i LPT portovi i td.
S obzirom da grafička kartica ima svoj CPU, odnosno GPU, onda se sinhronizacija sa glavnim CPU-ima uglavnom rešava pomoću IRQ linija, što je predmet tvog interesovanja. Na ovaj način se ostvaruje “handshaking” između dva procesora. To znači da svako od njih može raditi svoj posao, a kada jedan od njih nešto završi on to ovim putem saopšti onom drugom.
14. maj 2010. u 8:27 am #84299dukenukem_4dUčesnikda da kapiram za IRQ O0 😀
ali ovaj konkretan novi tip msi_edge je malo drugačiji izgleda da ne blokira neku liniju ???
(odnosno nije shared – njegova brojka je ‘way out’ visoka 😀 )njih je bilo 16 tako beše ?
pa su onda uveli apic , lapic i ‘acpi irq steering’ gde je išlo i više od 20 linija odvojenih u biosu ???a ovo je u stvari za pci-express kartice/linije runtime opcija? taj msi_edge
The MSI Driver Guide HOWTO – What is MSI/MSI-X? (Copyright 2003 Intel Corporation )
http://lwn.net/Articles/44139/dok irq balance kaže d anema neka poboljšanja na dual core , tek od quad-a ???
http://www.screenage.de/blog/2008/06/02/my-package-of-the-day-irqbalance/
http://www.irqbalance.org/
onaj gentoo linkDisable IRQ balancing, which provides no performance benefit for low SMP (ie: dualcore) systems: acpi_irq_balance=0
12. maj 2011. u 2:46 pm #86965dukenukem_4dGostAko se ovi prekidi ne pojave u cat /proc/interrupts
a sigurni ste da je donekle podrzano od hardverastavite u grub kao parametar
[code]
pci=msi
[/code]
i onda ce biti omoguceno , globalnoa ako postoje problemi onda se onemoguci
[code]
pci=nomsi
[/code]
http://www.linuxquestions.org/questions/linux-software-2/enabling-the-pci-based-msi-interrupts-800087/cesto se javi neki prob. :steve:
-
AutorČlanci
Forum ‘Hardver’ je zaključan za nove teme i odgovore.