Red Hat Training

A Red Hat training course is available for RHEL 8

20.5.2. Colocando a máscara smp_affinity

O valor smp_affinity é armazenado como uma máscara de bit hexadecimal representando todos os processadores do sistema. Cada bit configura uma CPU diferente. O bit menos significativo é a CPU 0. O valor padrão da máscara é f, o que significa que uma solicitação de interrupção pode ser tratada em qualquer processador do sistema. Ajustar este valor para 1 significa que apenas o processador 0 pode lidar com a interrupção.

Procedimento

  1. Em binário, use o valor 1 para CPUs que lidam com as interrupções. Por exemplo, para definir CPU 0 e CPU 7 para lidar com as interrupções, use 0000000010000001 como o código binário:

    Tabela 20.3. Bits binários para CPUs

    CPU1514131211109876543210

    Binário

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    1

  2. Converter o código binário em hexadecimal:

    Por exemplo, para converter o código binário usando Python:

    >>> hex(int('0000000010000001', 2))
    
    '0x81'

    Em sistemas com mais de 32 processadores, você deve delimitar os valores smp_affinity para grupos discretos de 32 bits. Por exemplo, se você quiser apenas os primeiros 32 processadores de um sistema com 64 processadores para atender a uma solicitação de interrupção, use 0xffffffff,00000000.

  3. O valor da afinidade de interrupção para uma determinada solicitação de interrupção é armazenado no arquivo /proc/irq/irq_number/smp_affinity associado. Coloque a máscara smp_affinity neste arquivo:

    # máscara echo > /proc/irq/irq_number/smp_affinity