我在 AWS EC2 上有一个运行内核 2.6.32.431 的 RedHat 6.5,我已经使用文档推荐的最低版本安装了 ixgbevf 驱动程序。配置完成后系统现在有2个队列(IRQ):
grep eth0-TxRx /proc/中断
48: 7986 0 0 0 0 0 0 0 PCI-MSI 边缘 eth0-TxRx-0
49: 7026 0 0 0 0 0 0 0 PCI-MSI 边缘 eth0-TxRx-1
然而,即使 /proc/irq/48/smp_affinity 或 /proc/irq/49/smp_affinity 更改为 4,似乎也没有任何变化。 “eth0-TxRx | /proc/interrupts”的输出保持不变。
grep eth0-TxRx /proc/中断
48: 8025 0 0 0 0 0 0 0 PCI-MSI 边缘 eth0-TxRx-0
49: 7096 0 0 0 0 0 0 0 PCI-MSI 边缘 eth0-TxRx-1
队列仍然固定在 CPU 核心 0。
我一直在寻找解决方案一段时间,一些答案表明 Redhat 6.5 运行内核 2.6.32.431 时缺少 XENFEAT_hvm_pirqs 内核功能。但不知怎的,它可以在 RedHat 6.9 上运行:
grep Tx /proc/中断
48: 16 0 0 0 2810 0 0 0 PCI-MSI 边缘 eth0-TxRx-0
49: 22 2326 0 0 0 0 0 0 PCI-MSI 边缘 eth0-TxRx-1
因为如果使用 XENFEAT_hvm_pirqs,输出应显示 xen-pirq-msi,但此处 RedHat 6.9 和 RedHat 6.5 均显示 PCI-MSI-edge。我想他们都没有在这里使用 XENFEAT_hvm_pirqs 标志,是吗?
谁能帮忙弄清楚内核标志到底是什么? XENFEAT_hvm_pirqs 的目的是什么?这个标志与这个问题有什么关系吗?我可以使用任何向后移植来解决此问题吗?
顺便说一句,RedHat 6.5是从Vmware导入的,在Vmware上运行得很好。并且 smp_affinity 参数可以按预期工作。预先非常感谢您的任何答复。