linux内核对MSI网卡队列的smp_affinity亲和CPU选择

 

如题

linux内核对MSI网卡队列的smp_affinity亲和CPU是如何进行选择的?

答案是:只选smp_affinity_list中的第一个有效CPU。

 

例子

给268号中断设置5-8CPU时,所有中断都被5号CPU处理

 

 改成4-8后,所有中断都被4号CPU处理。

 

内核代码

通过如下内核代码,可以看到,MSI的中断只在列表中选择第一个有效CPU

 

 

 

 

 

分析

这也很合理。

因为MSI/MSI-X网卡都是多队列的。负载分担已经在选择队列时完成了,没有必要再为单队列轮询多个CPU,显得冗余。

且,后边还有RPS,RFS机制。

 

posted on 2025-07-16 16:30  toong  阅读(48)  评论(2)    收藏  举报