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'在有 32 个处理器的系统上,您必须限制离散的 32 位组的
smp_affinity值。例如,如果您只想 64 位处理器系统的第一个 32 个处理器来服务中断请求,请使用0xffffffff,00000000。特定中断请求的中断关联性值存储在关联的
/proc/irq/irq_number/smp_affinity文件中。在此文件中设置smp_affinitymask:# echo mask > /proc/irq/irq_number/smp_affinity