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机制。
浙公网安备 33010602011771号