Linux 了解内核消息“没人关心(尝试使用“irqpoll”选项启动)”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13861282/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Understanding kernel message 'nobody cared (try booting with the "irqpoll" option)'
提问by AbhijitG
I'm trying to understand the meaning of the following message:
我试图理解以下消息的含义:
irq N:nobody cared (try booting with the "irqpoll" option)
Does this mean the IRQ handler not processing the response even it has gotten the interrupt? Or that the scheduler failed to call an irq handler?
这是否意味着 IRQ 处理程序即使收到中断也不处理响应?或者调度程序未能调用 irq 处理程序?
In what condition is this happening?
这是在什么情况下发生的?
采纳答案by Raber
it means that either no handler is registered for that irq or the one that is returned status indicating that the irq was not for him (from hardware he is supporting) in case of shared interrupts probably a faulty HW/FW or buggy driver
这意味着要么没有为该 irq 注册处理程序,要么返回状态表明该 irq 不适合他(来自他支持的硬件)的处理程序,以防共享中断可能是硬件/固件有问题或有问题的驱动程序
回答by Riccardo
In my case after reloading the driver because the network card had billions of errors in a short period of time.
就我而言,在重新加载驱动程序后,因为网卡在短时间内出现了数十亿次错误。
modprobe -r ixgbe && modprobe ixgbe
lspci showed an unknown device where the 'card' used to be
lspci 显示了一个未知的设备,其中“卡”曾经是
after a reboot the card disappeared never to be seen again.
重新启动后,卡消失了,再也看不到了。
So the error might also show failing hardware.
所以错误也可能显示硬件故障。
回答by askb
Ideally, the above message should be followed by a stack trace, which should help you determine which subsystem is causing the issue. This message means the interrupt handler got stuck due to a overhead, and did not return thus causing the system to disable IRQ#X. This is seen in cases of a buggy firmware.
理想情况下,上面的消息应该跟在堆栈跟踪之后,这应该可以帮助您确定哪个子系统导致了问题。此消息意味着中断处理程序由于开销而卡住,并且没有返回从而导致系统禁用 IRQ#X。这在有错误固件的情况下可见。
The irqpoll
option needs to be added to grub.conf, which means, when an interrupt is not handled, search all known interrupt handlers for the appropriate handlers and also check all handlers on each timer interrupt. This is sometimes useful to get systems with broken firmware running. The kernel command line in grub.conf should look like the following:
该irqpoll
选项需要添加到 grub.conf 中,这意味着,当没有处理中断时,搜索所有已知的中断处理程序以获取适当的处理程序,并检查每个定时器中断的所有处理程序。这有时对于让固件损坏的系统运行很有用。grub.conf 中的内核命令行应如下所示:
kernel /vmlinuz-version ro root=/dev/sda1 quiet irqpoll
内核/vmlinuz-version ro root=/dev/sda1 quiet irqpoll
回答by leesagacious
see here:
看这里:
static inline int bad_action_ret(irqreturn_t action_ret)
{
if (likely(action_ret <= (IRQ_HANDLED | IRQ_WAKE_THREAD)))
return 0;
return 1;
}