De la page de manuel, ksoftirqd
est un thread de noyau par processeur qui s'exécute lorsque la machine est soumise à une forte charge d'interruption douce.
Vous pouvez modifier un peu les paramètres, en définissant quel processeur prend en charge une certaine interruption. Vous faites cela en changeant le contenu du fichier /proc/irq/$interrupt_number/smp_affinity
. Vous pouvez obtenir une liste des interruptions et leur signification en faisant :
cat /proc/interrupts
Le nombre en smp_affinity
est un bitmap de cpus, représenté en code hexadécimal. Le bit le plus à droite est le moins significatif. Par exemple, mon système possède 8 cœurs. Si je voulais utiliser uniquement les cœurs 1, 3 et 4, je définirais la valeur smp_affinity à 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)
Personnellement, je configure n'importe quel processeur pour qu'il puisse capter l'interruption 29 (eth0 dans mon système à 8 cœurs) :
echo ff | sudo tee /proc/irq/29/smp_affinity