Não é possível atualizar o smp_affinity

2

Como parte dos experimentos que estamos executando para otimizar o desempenho dos aplicativos em nossa caixa Linux, estamos tentando atribuir todas as interrupções de rede a um único núcleo cpu.

Infelizmente, parece que não funciona da maneira que deveria. Por exemplo. nós temos uma interrupção aqui:

[root@shou18librh05 ~]# cat /proc/interrupts | grep 107
107:          0          0          0          0          0          0              0          0       PCI-MSI-X  eth-mlx4-0

Onde é processado atualmente?

[root@shou18librh05 ~]# cat /proc/irq/107/smp_affinity
7fffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff

Tentando movê-lo para, digamos, primeiro núcleo:

[root@shou18librh05 ~]# echo 1 > /proc/irq/107/smp_affinity

Isso mudou?

[root@shou18librh05 ~]# cat /proc/irq/107/smp_affinity
7fffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff

Não ...

Alguém tem uma idéia de por que isso pode estar acontecendo? Pesquisando não deu nenhuma solução / dicas óbvias ...

Linux é:

[root@shou18librh05 ~]# uname -a
Linux shou18librh05 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
    
por Sergey D 03.10.2013 / 17:03

1 resposta

0

Provavelmente existem alguns dispositivos desativados em seu sistema que utilizaram o espaço vetorial de interrupção da CPU1 e, particularmente, como os dispositivos não foram ativados, seu número de interrupção não aparece em / proc / interrupts. A atribuição do vetor irq para cpu é feita no APIC do kernel.

Por favor, tente se funciona para você:

  1. Identifique quaisquer dispositivos que não estejam conectados, mas que ainda não tenham sido ativados,
  2. ativá-los, por exemplo: ifup (para interfaces)
  3. O seu número int deve aparecer em / proc / interrupts
  4. Experimente e atribua todos os cpus, mas 1 a todas as interrupções.
  5. Em seguida, tente atribuir CPU1 a interrupções de sua preferência. Mas tenha em mente que é um limite de espaço vetorial por CPU, portanto, deve ser o número máximo de interrupções que podem ser atendidas por uma CPU específica.
por 11.12.2015 / 16:41