Dans la page de manuel, vous ksoftirqd
trouverez un thread de noyau per-cpu qui s'exécute lorsque la machine subit une lourde charge d'interruptions logicielles.
Vous pouvez modifier un peu les paramètres en définissant quel processeur prend une certaine interruption. Vous faites cela en changeant le contenu de /proc/irq/$interrupt_number/smp_affinity
. Vous pouvez obtenir une liste d'interruptions et leur signification en faisant:
cat /proc/interrupts
Le nombre dans smp_affinity
est un bitmap de CPU, représenté en code hexadécimal. Le bit le plus à droite est le moins significatif. Par exemple, mon système a 8 cœurs. Si je voulais utiliser uniquement les coeurs 1, 3 et 4, je définirais le paramètre smp_affinity sur 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, j'ai configuré n'importe quel processeur pour pouvoir recevoir l'interruption 29 (eth0 dans mon système à 8 cœurs) avec:
sudo echo ff > /proc/irq/29/smp_affinity
Eduardo Bezerra
la source