Desde la página de manual, ksoftirqd
hay un subproceso de kernel por CPU que se ejecuta cuando la máquina está bajo una carga pesada de interrupción suave.
Puede ajustar un poco la configuración, definiendo qué CPU recoge una interrupción determinada. Para ello, cambia el contenido de /proc/irq/$interrupt_number/smp_affinity
. Puede obtener una lista de interrupciones y su significado haciendo:
cat /proc/interrupts
El número en smp_affinity
es un mapa de bits de cpus, representado en código hexadecimal. El bit más a la derecha es el menos significativo. Por ejemplo, mi sistema tiene 8 núcleos. Si quisiera usar solo los núcleos 1, 3 y 4, establecería smp_affinity en 1a
:
cpu_7 cpu_6 cpu_5 cpu_4 cpu_3 cpu_2 cpu_1 cpu_0
0 0 0 1 1 0 1 0 = 0001 1010 = 1a (in hex)
Personalmente, configuré cualquier CPU para poder recoger la interrupción 29 (eth0 en mi sistema de 8 núcleos) con:
sudo echo ff > /proc/irq/29/smp_affinity