排查麒麟系统硬件中断冲突需先用lsirq -v查看设备与IRQ映射关系,若未安装则sudo apt install linux-tools-common;也可通过lspci -vv与/proc/irq/*/device/name交叉验证,并检查MSI/MSI-X启用状态。

在麒麟系统中排查网卡卡顿、声卡爆音或USB设备间歇失联时,必须掌握所有硬件中断请求(IRQ)的分配情况,否则无法判断是否存在多设备共用同一IRQ导致的冲突。直接查看/proc/interrupts只能看到计数,看不到设备与IRQ的精确映射关系,容易误判。
用lsirq命令列出全部设备与IRQ绑定关系
lsirq是专为解析中断映射设计的工具,能将PCI设备、驱动名、CPU亲和性、中断类型(MSI/MSI-X/IO-APIC)一并呈现,比原始文件可读性强十倍。
第一步:确认lsirq是否已安装。在终端执行which lsirq,若返回空行,说明未安装。
第二步:安装lsirq工具。执行sudo apt install linux-tools-common,该包包含lsirq及配套内核调试工具。
第三步:以详细模式运行sudo lsirq -v,输出中每行对应一个IRQ号,含设备路径、驱动模块名、触发模式、当前绑定CPU列表及中断计数。
注意:不加-v参数时仅显示简表,丢失关键字段;必须加sudo,否则无法读取/proc/irq/*下的权限受限文件。
从/proc/interrupts手动提取设备与IRQ对应表
当lsirq不可用或需验证其输出准确性时,可结合/proc/interrupts与lspci交叉比对,这是最底层、最不可伪造的确认方式。
方法一:快速定位网卡或显卡IRQ号
执行lspci -vv | grep -A 10 "Interrupt:",找到目标设备的IRQ字段值(如IRQ 42)。
方法二:反向查该IRQ挂载的设备名
执行grep -H "" /proc/irq/*/device/name 2>/dev/null,输出形如/proc/irq/42/device/name:eth0,直接锁定设备。
方法三:查看该IRQ的CPU亲和性掩码
执行cat /proc/irq/42/smp_affinity,得到十六进制值(如00000001),表示仅绑定到CPU 0;00000003表示绑定CPU 0和1。
【重要】若某IRQ下无/device/name子目录,说明该中断未被任何驱动注册,可能是BIOS残留或未启用设备,需警惕硬件异常。
用lspci -vv深度验证PCI设备中断配置
此步骤专用于确认PCIe设备是否启用MSI/MSI-X高级中断机制,避免传统IO-APIC共享中断引发的性能瓶颈。
执行lspci -vv -s 00:1f.6(将00:1f.6替换为你设备的实际地址),在输出中查找Capabilities: [50]段落。
若含MSI:字样且Enable+,表示启用消息信号中断;若含MSI-X:且Enable+,则支持多向量独立中断——这是解决多网卡卡顿的关键前提。
若仅显示INT A或INT B,说明设备仍在使用老旧的引脚式中断,极易与其他设备冲突,需进入BIOS关闭Legacy IRQ选项。

















