Red Hat Training

A Red Hat training course is available for RHEL 8

20.5.2. Configuración de la máscara smp_affinity

El valor de smp_affinity se almacena como una máscara de bits hexadecimal que representa a todos los procesadores del sistema. Cada bit configura una CPU diferente. El bit menos significativo es la CPU 0. El valor por defecto de la máscara es f, lo que significa que una petición de interrupción puede ser manejada en cualquier procesador del sistema. Poner este valor a 1 significa que sólo el procesador 0 puede manejar la interrupción.

Procedimiento

  1. En binario, utilice el valor 1 para las CPUs que manejan las interrupciones. Por ejemplo, para que la CPU 0 y la CPU 7 manejen las interrupciones, utilice 0000000010000001 como código binario:

    Tabla 20.3. Bits binarios para CPUs

    CPU1514131211109876543210

    Binario

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    1

  2. Convierte el código binario a hexadecimal:

    Por ejemplo, para convertir el código binario utilizando Python:

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

    En sistemas con más de 32 procesadores, debe delimitar los valores de smp_affinity para grupos discretos de 32 bits. Por ejemplo, si desea que sólo los primeros 32 procesadores de un sistema de 64 procesadores atiendan una solicitud de interrupción, utilice 0xffffffff,00000000.

  3. El valor de afinidad de la interrupción para una solicitud de interrupción particular se almacena en el archivo asociado /proc/irq/irq_number/smp_affinity. Establezca la máscara smp_affinity en este archivo:

    # echo mask > /proc/irq/irq_number/smp_affinity