2015-03-31 290 views
1

我們正在測試在嵌入式Linux上運行的防火牆應用程序。在測試過程中的某一點,Linux的掛起(死機),我們在控制檯上看到如下:這是Linux內核崩潰嗎?我如何解決它?

TCHDOG: eth0 (fsl-gianfar): transmit queue 0 timed out 
------------[ cut here ]------------ WARNING: at net/sched/sch_generic.c:279 Modules linked in: CPU: 0 PID: 0 Comm: 
swapper/0 Not tainted 3.12.19-rt30-gc29fe1a #27 task: c08f9300 ti: 
effea000 task.ti: c093a000 NIP: c052a98c LR: c052a98c CTR: c0327948 
REGS: effebe60 TRAP: 0700 Not tainted (3.12.19-rt30-gc29fe1a) MSR: 
00029000 <CE,EE,ME> CR: 44044022 XER: 20000000 

GPR00: c052a98c effebf10 c08f9300 0000003f c128c484 c128c9d0 c0328b54 
00021000 GPR08: 00000001 00000001 0099b000 00000312 24044024 0f003103 
effea000 c07f6f28 GPR16: 00000100 00200000 c0940000 c08f0000 001631a5 
00000000 000000a4 ffffffff GPR24: 00000000 00000000 effea000 00000004 
c0940000 c0940000 c74d0000 00000000 NIP [c052a98c] 
dev_watchdog+0x2dc/0x2ec LR [c052a98c] dev_watchdog+0x2dc/0x2ec Call 
Trace: [effebf10] [c052a98c] dev_watchdog+0x2dc/0x2ec (unreliable) 
[effebf40] [c005194c] call_timer_fn.isra.29+0x28/0x84 [effebf60] 
[c0051b28] run_timer_softirq+0x180/0x1fc [effebfa0] [c004a5e8] 
__do_softirq+0x100/0x1cc [effebff0] [c000d6e8] call_do_softirq+0x24/0x3c [c093be60] [c0004920] do_softirq+0x90/0xb8 
[c093be80] [c004afb4] irq_exit+0xa4/0xc8 [c093be90] [c0009c10] 
timer_interrupt+0x1a4/0x1d0 [c093bec0] [c000f594] 
ret_from_except+0x0/0x18 
--- Exception: 901 at arch_cpu_idle+0x24/0x5c 
    LR = arch_cpu_idle+0x24/0x5c [c093bf80] [c00ac4ec] rcu_idle_enter+0xac/0xec (unreliable) [c093bf90] [c0086b00] 
cpu_startup_entry+0x120/0x170 [c093bfc0] [c08a97a8] 
start_kernel+0x2f0/0x304 [c093bff0] [c00003fc] skpinv+0x2e8/0x324 
Instruction dump: 4e800421 80fe0204 4bffff44 7fc3f378 4bfe72e5 
7fc4f378 7c651b78 3c60c085 7fe6fb78 38632bf0 4cc63182 48184835 
<0fe00000> 39200001 993c9c37 4bffffb4 
---[ end trace d3f58d6e7db83823 ]--- 

它是一個內核崩潰?是什麼造成的?我如何解決它?如果您需要其他信息,請告訴我。

+0

這確實是內核崩潰。 – 0andriy 2015-04-01 15:09:13

+0

這次事故的原因是什麼?如何解決它? – Jay 2015-04-02 03:38:15

+0

嘗試重現最新的內核,即4.0-rc6。 – 0andriy 2015-04-02 10:45:56

回答

2

不,它不是內核崩潰。

這是來自內部看門狗定時器的警告通知,該通知監視飛思卡爾Gianfar以太網驅動程序的傳輸工作。

該消息意味着驅動程序已排隊一幀用於傳輸,並且超時從Ginafar硬件發送傳輸確認中斷(或其他指示)。

這可能是一個驅動程序問題 - 但它很可能是一個硬件問題(例如以太網MAC卡住)。

順便說一句,該消息的內容說明你的系統在看門狗定時器發生時沒有做任何事情(空閒)。

1

由於我們/我不知道,您究竟在做什麼而不挖掘代碼。但是,這裏有一個嘗試分析它一點;)

WARNING: at net/sched/sch_generic.c:279 Modules linked in: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.19-rt30-gc29fe1a 節目旁邊的一些核心數據(not tainted意味着你沒有加載閉源驅動)認爲,墜機發生here。堆棧跟蹤證實這也是原因。雖然這一行本身不是太有用(對我來說,我沒有進入內核源代碼),但它顯示了網絡調度程序失敗。如果你的防火牆不知何故與它混淆,你應該開始在那裏搜索。

如果沒有,您可能遇到了實際的內核錯誤。如果可能的話,首先要做的是更新你的版本。截止撰寫時有3.19和4.1。如果這沒有幫助(或者你真的需要這個版本),你可以file a kernel bug。由於你的內核沒有受到污染,你可以期待開發者的幫助。祝你好運:)