如何查看网卡驱动ISR运行CPU及手动设置IRQ亲和性(Fedora19)
配置网卡IRQ亲和性并查看ISR运行CPU(Fedora 19)
针对你在低延迟性能实验中需要手动控制网卡IRQ亲和性、查看ISR运行CPU的需求,我整理了Fedora 19系统下的具体操作流程,刚好适配你的em1网卡场景:
1. 确认网卡与中断号
你已经通过ifconfig确认网卡名称为em1,并找到对应中断号为76。如果后续需要重新核对中断号,可执行cat /proc/interrupts命令,在输出中找到em1对应的行即可获取中断号。
2. 设置IRQ亲和性
要将网卡中断绑定到特定CPU核心,需修改/proc/irq/[中断号]/smp_affinity文件。这里的smp_affinity值是十六进制的CPU掩码,比如你执行的命令:
echo 20 > /proc/irq/76/smp_affinity
20转二进制为100000,代表将中断绑定到第5个CPU核心(CPU核心从0开始计数,对应二进制位为1的位置)。
3. 查看ISR运行的CPU核心
在Fedora 19中,top命令可以直观展示中断服务程序(ISR)的运行位置:
- 终端执行
top命令 - 按下
f键进入字段选择界面,勾选P(Last Used Cpu)字段,这样就能看到每个中断对应的运行CPU - 返回top主界面,找到名为
irq/76-em1的条目,其P列的数值就是ISR当前运行的CPU核心
验证配置生效
设置完成后,可通过以下命令确认亲和性配置是否生效:
cat /proc/irq/76/smp_affinity
输出应为20,同时在top中观察irq/76-em1的CPU绑定是否稳定在目标核心上,以此验证配置效果。
内容的提问来源于stack exchange,提问作者cwang.sh




