Pagina 1 di 1

Domanda sul bilanciamento delle IRQ

Inviato: gio 8 nov 2007, 16:03
da phobos3576
Ma secondo voi conviene abilitare nel kernel il bilanciamento delle IRQ per le CPU multicore?

Il problema mi si è presentato dopo che ho visto l'output di /proc/interrupts; in pratica, quasi tutte le IRQ venivano inviate ad una delle due CPU!
Dopo aver abilitato nel kernel l'opzione IRQ_BALANCING, adesso la situazione è questa:

Codice: Seleziona tutto

           CPU0       CPU1
  0:        357          0    XT-PIC-XT        timer
  1:      11046          9   IO-APIC-edge      i8042
  8:          1          1   IO-APIC-edge      rtc
  9:          0          0   IO-APIC-fasteoi   acpi
 12:     257475        131   IO-APIC-edge      i8042
 15:        103         25   IO-APIC-edge      ide1
 16:    1443639    1405954   IO-APIC-fasteoi   serial
 17:      34693      12925   IO-APIC-fasteoi   sata_nv, ohci_hcd:usb2
 18:     154755          1   IO-APIC-fasteoi   sata_nv, HDA Intel
 19:     262511          1   IO-APIC-fasteoi   saa7133[0], saa7133[0]
 20:     443600          1   IO-APIC-fasteoi   eth0
 21:          3          1   IO-APIC-fasteoi   ehci_hcd:usb1
 22:          2          1   IO-APIC-fasteoi   ohci1394
 23:     385288          1   IO-APIC-fasteoi   nvidia
NMI:          0          0
LOC:    4447562    4447643
ERR:          1
MIS:          0
Il bilanciamento è migliorato di poco ma, in ogni caso, non c'è nessuna differenza in termini di prestazioni; voglio precisare comunque che il mio PC è iperveloce anche con IRQ_BALANCING disabilitato.

Cercando con Google ho trovato diversi documenti nei quali si spiegava che il bilanciamento delle IRQ potrebbe essere anche controproducente; infatti, distribuendo equamente le IRQ tra tutte le CPU si potrebbe verificare in certi casi una congestione del sistema!

So che esiste anche un demone per Linux che risolve tutti questi problemi svolgendo il suo lavoro in userspace; a parte però il fatto che si tratterebbe dell'ennesimo demone (ce ne sono sin troppi già in esecuzione), non riesco a capire che senso abbia fare cose del genere in userspace. Se c'è una cosa che dovrebbe essere fatta in kernelspace quella è proprio il bilanciamento delle IRQ!

Voi che ne pensate?