Всем привет!
Решил посмотреть как распределены irq у меня в системе:
CPU0 CPU1
0: 126 0 IO-APIC-edge timer
1: 16123 0 IO-APIC-edge i8042
4: 2 0 IO-APIC-edge
7: 0 0 IO-APIC-edge parport0
8: 1 0 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
16: 460792 0 IO-APIC-fasteoi pata_jmicron, uhci_hcd:usb3, nvidia
18: 20159 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb7, EMU10K1
19: 103951 0 IO-APIC-fasteoi ahci, ata_piix, ata_piix, uhci_hcd:usb6
20: 10966 0 IO-APIC-fasteoi ath
21: 0 0 IO-APIC-fasteoi uhci_hcd:usb4
23: 99919 0 IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb5
28: 131809 0 PCI-MSI-edge sky2@pci:0000:04:00.0
29: 243 0 PCI-MSI-edge hda_intel
NMI: 0 0 Non-maskable interrupts
LOC: 2357069 2347455 Local timer interrupts
SPU: 0 0 Spurious interrupts
PMI: 0 0 Performance monitoring interrupts
PND: 0 0 Performance pending work
RES: 38962 51144 Rescheduling interrupts
CAL: 2577 2454 Function call interrupts
TLB: 25613 25906 TLB shootdowns
TRM: 0 0 Thermal event interrupts
THR: 0 0 Threshold APIC interrupts
MCE: 0 0 Machine check exceptions
MCP: 26 26 Machine check polls
ERR: 1
MIS: 0
Что я вижу:
1) как я понял, у меня практически все прерывания обрабатываются одним процессором.
2) у меня на одном прерывании висят порой до трех устройств.
3) Устройства распределны по-глупому: ath (wifi который используется раз в пятилетку) занимает целый irq, тогда как два SATA винчестера висят на одном.
Посему у меня вопросы:
1) А как у вас?
2) А если два процессора будут обрабатывать irq будет лучше? Как это сделать?
3) Как «вручную» распределить девайсы по irq?
Буду благодарен за такую консультацию.