如何调查运行时Linux内核警告

时间:2015-09-01 12:27:41

标签: linux-kernel

我的设备正在运行基于Linux Kernel 2.6.32的软件。 发生内核警告如下:

WARNING,Aug 27 21:55:09,"------------[ cut here ]------------"
WARNING,Aug 27 21:55:09,"WARNING: at net/sched/sch_generic.c:255 dev_watchdog+0x144/0x224()"
INFORMATIONAL,Aug 27 21:55:09,"NETDEV WATCHDOG: eth1 (cdc_ether): transmit queue 0 timed out"
WARNING,Aug 27 21:55:09,"Modules linked in: GobiSerial GobiNet g_ether leddrv cryptr_micro gpio_event_drv [last unloaded: wlan]"
WARNING,Aug 27 21:55:09,"[<c0a7b518>] (unwind_backtrace+0x0/0xdc) from [<c0a9cfb0>] (warn_slowpath_common+0x48/0x60)"
WARNING,Aug 27 21:55:09,"[<c0a9cfb0>] (warn_slowpath_common+0x48/0x60) from [<c0a9d000>] (warn_slowpath_fmt+0x24/0x30)"
WARNING,Aug 27 21:55:09,"[<c0a9d000>] (warn_slowpath_fmt+0x24/0x30) from [<c0ccae98>] (dev_watchdog+0x144/0x224)"
WARNING,Aug 27 21:55:09,"[<c0ccae98>] (dev_watchdog+0x144/0x224) from [<c0aa56a8>] (run_timer_softirq+0x138/0x1b4)"
WARNING,Aug 27 21:55:09,"[<c0aa56a8>] (run_timer_softirq+0x138/0x1b4) from [<c0aa1a60>] (__do_softirq+0x70/0xf4)"
WARNING,Aug 27 21:55:09,"[<c0aa1a60>] (__do_softirq+0x70/0xf4) from [<c0aa1b24>] (irq_exit+0x40/0x8c)"
WARNING,Aug 27 21:55:09,"[<c0aa1b24>] (irq_exit+0x40/0x8c) from [<c0a75070>] (asm_do_IRQ+0x70/0x8c)"
WARNING,Aug 27 21:55:09,"[<c0a75070>] (asm_do_IRQ+0x70/0x8c) from [<c0a75a70>] (__irq_svc+0x30/0x80)"
WARNING,Aug 27 21:55:09,"Exception stack(0xc0ed7f80 to 0xc0ed7fc8)"
WARNING,Aug 27 21:55:09,"7f80: 00000000 40000013 00712778 00003505 c0ed6000 c0f11f1c c0a6d3f4 c0ed9bd8"
WARNING,Aug 27 21:55:09,"7fa0: 80027104 411fc087 0000001f 00000000 c0edb8e0 c0ed7fc8 c0a85cc4 c0a864a4"
WARNING,Aug 27 21:55:09,"7fc0: 60000013 ffffffff"
WARNING,Aug 27 21:55:09,"[<c0a75a70>] (__irq_svc+0x30/0x80) from [<c0a864a4>] (omap3_pm_idle+0x48/0x4c)"
WARNING,Aug 27 21:55:09,"[<c0a864a4>] (omap3_pm_idle+0x48/0x4c) from [<c0a773e4>] (cpu_idle+0x48/0x88)"
WARNING,Aug 27 21:55:09,"[<c0a773e4>] (cpu_idle+0x48/0x88) from [<c0008a68>] (start_kernel+0x234/0x28c)"
WARNING,Aug 27 21:55:09,"[<c0008a68>] (start_kernel+0x234/0x28c) from [<80008034>] (0x80008034)"
WARNING,Aug 27 21:55:09,"---[ end trace 7fe9ba4a7fb84cb4 ]---"

它不会经常发生,但是当它连接到eth1时,模块无法正常工作,只有设备重启才有帮助。

调查此类内核问题或在以后的内核版本中查找与此相关的最终修补程序的步骤是什么?

感谢。

1 个答案:

答案 0 :(得分:1)

没有一般程序,因为内核调试是一个非常广泛的主题。但是,在您的情况下,您有一个警告,指向打印它的确切代码行 - net/sched/sch_generic.c第255行。您应该首先阅读这行代码并了解这实际意味着什么以及为什么会发生这种情况。下一步可能是为此代码或崩溃内核添加一些调试打印,以便对内存转储进行一些事后分析。

在您的情况下,它看起来像是一个不时运行的看门狗功能,并检查您的设备是否运行良好。我猜你的卡片刚刚停止工作,这个警告就表明了这一点。看起来内核不能归咎于内核(但有可能)。