Red Hat Training

A Red Hat training course is available for RHEL 8

28.4.2. smp_affinity マスクの設定

smp_affinity の値は、システム内のすべてのプロセッサーを表す 16 進数のビットマスクとして保存されます。各ビットは異なる CPU を設定します。最も大きなビットは CPU 0 です。

マスクのデフォルト値は f で、割り込み要求をシステム内のどのプロセッサーでも処理できることを意味します。この値を 1 に設定すると、プロセッサー 0 のみが割り込みを処理できます。

手順

  1. バイナリーでは、割り込みを処理する CPU に 1 の値を使用します。たとえば、割り込みを処理する CPU 0 と CPU 7 を設定するには、バイナリーコードに 0000000010000001 を使用します。

    表28.1 CPU のバイナリービット

    CPU

    15

    14

    13

    12

    11

    10

    9

    8

    7

    6

    5

    4

    3

    2

    1

    0

    バイナリー

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    1

  2. バイナリーコードを 16 進数に変換します。

    たとえば、Python を使用してバイナリーコードを変換するには、次のコマンドを実行します。

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

    プロセッサーが 32 個を超えるシステムでは、32 ビットグループごとに smp_affinity 値を区切る必要があります。たとえば、64 プロセッサーシステムの最初の 32 プロセッサーのみが割り込み要求を処理できるようにするには、0xffffffff,00000000 を使用します。

  3. 特定の割り込み要求の割り込み親和性の値は、関連付けられた /proc/irq/irq_number/smp_affinity ファイルに保存されます。このファイルで smp_affinity マスクを設定します。

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

関連情報

  • journalctl(1)irqbalance(1)、および taskset(1) の man ページ