Domanda sul bilanciamento delle IRQ

Usate questo forum per richieste di aiuto e consigli sull'hardware montato nelle vostre macchine con GNU/Linux Slackware.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Citare il tipo di hardware coinvolto in modo dettagliato.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT. Non usare termini gergali come procio, mobo e simili per identificare i componenti hardware.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
phobos3576
Staff
Staff
Messaggi: 2980
Iscritto il: dom 17 apr 2005, 0:00
Slackware: 13.1
Kernel: 2.6.37-smp
Desktop: KDE 4.5.3

Domanda sul bilanciamento delle IRQ

Messaggio 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?

Rispondi