当我查看 /proc/interrupts 时:
$ cat /proc/interrupts CPU0 CPU1 (...) 12:4 0 IO-APIC 边缘 i8042 14:145 65310875 IO-APIC-边缘ide0 50:0 0 IO-APIC 级别 uhci_hcd:usb5,英特尔 ICH7 58:5388 7983508 IO-APIC 级别 libata 169:812427252 1236572641 IO-APIC 级别 skge,eth1 217: 6 0 IO-APIC 级别 ehci_hcd:usb1,uhci_hcd:usb2 225:0 0 IO APIC 级别 uhci_hcd:usb3 233:60 3108720778 IO-APIC 级别 uhci_hcd:usb4,skge
我能看到两个斯克吉和一个eth1条目。它们都是网卡。由于通用名称“skge”(这是卡的网络驱动程序的名称),我无法轻易识别哪个 NIC 占用了哪个中断。
如何让 linux 在条目中使用更具描述性的名称?
或者:除了 /proc/interrupt 之外,还有其他方法可以获取 INT 信息吗?
我的最终目标是操纵 NIC 的 smp_affinities。
答案1
在基于 RH 的系统上,你可以通过以下方式命名每个网卡ifcfg-* 脚本。
只需指定网卡的 MAC 地址即可将其关联到正确的硬件设备,然后为其指定您选择的设备名称。
这样你就应该列出的是“yournicname”,而不是“eth1”,这样你就可以轻松实现你的目标。
这是一篇好文章您可以按照多种方式根据不同情况进行调整;根据您的分布,它可能或多或少复杂。
答案2
查看 /sys/class/net/(界面)/设备/irq。
在 /proc/irq/ 中设置亲和性(打断)/smp_affinity。
我不知道为什么 skge 驱动程序没有为您提供单独的设备;也许它只能对所有接口使用单个 IRQ 线?