23.7. 设置 smp_affinity 掩码
smp_affinity
值存储为代表系统中所有处理器的十六进制位掩码。每个位配置不同的 CPU。最重要的位是 CPU 0。掩码的默认值为 f
,这意味着可在系统中的任何处理器上处理中断请求。将此值设置为 1
表示只有处理器 0
才能处理中断。
流程
二进制代码,对于处理中断的 CPU 使用值
1
。例如,要设置 CPU0
和 CPU7
以处理中断,请使用0000000010000001
作为二进制代码:Expand 表 23.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
将二进制代码转换为十六进制代码:
例如,使用 Python 转换二进制代码:
>>> hex(int('0000000010000001', 2)) '0x81'
>>> hex(int('0000000010000001', 2)) '0x81'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在有 32 个处理器的系统上,您必须限制离散的 32 位组的
smp_affinity
值。例如,如果您只想 64 位处理器系统的第一个 32 个处理器来服务中断请求,请使用0xffffffff,00000000
。特定中断请求的中断关联性值存储在关联的
/proc/irq/irq_number/smp_affinity
文件中。在此文件中设置smp_affinity
mask:echo mask > /proc/irq/irq_number/smp_affinity
# echo mask > /proc/irq/irq_number/smp_affinity
Copy to Clipboard Copied! Toggle word wrap Toggle overflow