Ze strony podręcznika ksoftirqd
jest wątek jądra na procesor, który działa, gdy maszyna jest obciążona dużym miękkim przerwaniem.
Możesz nieco poprawić ustawienia, określając, które procesor odbiera określone przerwanie. Robisz to, zmieniając zawartość /proc/irq/$interrupt_number/smp_affinity
. Możesz uzyskać listę przerwań i ich znaczenie, wykonując:
cat /proc/interrupts
Liczba w smp_affinity
to bitmapa cpus, reprezentowana w kodzie szesnastkowym. Najbardziej prawy bit jest najmniej znaczący. Na przykład mój system ma 8 rdzeni. Gdybym chciał używać tylko rdzeni 1, 3 i 4, ustawiłbym smp_affinity na 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)
Osobiście skonfigurowałem dowolną jednostkę centralną, aby móc odbierać przerwanie 29 (eth0 w moim 8-rdzeniowym systemie) za pomocą:
sudo echo ff > /proc/irq/29/smp_affinity