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에 고정된 상태로 유지됩니다.
나는 한동안 해결책을 찾고 있었는데 일부 답변에 따르면 커널 2.6.32.431을 실행할 때 Redhat 6.5에 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 매개변수는 예상대로 작동합니다. 어떤 답변이라도 미리 감사드립니다.