Linux kernel 这是Linux内核崩溃吗?我如何解决它?

Linux kernel 这是Linux内核崩溃吗?我如何解决它?,linux-kernel,crash,embedded-linux,Linux Kernel,Crash,Embedded 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 N

我们正在测试一个在嵌入式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 ]---
TCHDOG:eth0(fsl gianfar):传输队列0超时
------------[cut here]------警告:at net/sched/sch_generic.c:279模块链接到:CPU:0 PID:0 Comm:
交换程序/0未受污染3.12.19-rt30-gc29fe1a#27任务:c08f9300 ti:
effea000 task.ti:c093a000 NIP:c052a98c LR:c052a98c CTR:c0327948
REGS:effebe60陷阱:0700未污染(3.12.19-rt30-gc29fe1a)MSR:
00029000 CR:44044022 XER:20000000
GPR00:c052a98c-BF10 C08F93000000 3F c128c484 c128c9d0 c0328b54
00021000 GPR08:00000001 00000001 0099b000 00000312 24044024 0f003103
影响A000 c07f6f28 GPR16:00000 100 200000 c0940000 c08f0000 001631a5
000000000000 A4 ffffffff GPR24:00000000000000有效期为1000000000004
c0940000 c0940000 c74d0000 00000000 NIP[c052a98c]
开发看门狗+0x2dc/0x2ec LR[c052a98c]开发看门狗+0x2dc/0x2ec调用
跟踪:[effebf10][c052a98c]开发看门狗+0x2dc/0x2ec(不可靠)
[effebf40][c005194c]呼叫计时器\u fn.isra.29+0x28/0x84[effebf60]
[c0051b28]运行定时器软件IRQ+0x180/0x1fc[effebfa0][c004a5e8]
__DOU DOU softirq+0x100/0x1cc[effebff0][c000d6e8]调用DOU DOU softirq+0x24/0x3c[c093be60][c0004920]DOU softirq+0x90/0xb8
[c093be80][c004afb4]irq_出口+0xa4/0xc8[c093be90][c0009c10]
定时器_中断+0x1a4/0x1d0[c093bec0][c000f594]
从除+0x0/0x18之外的其他位置返回
---例外情况:cpu空闲+0x24/0x5c时为901
LR=arch_cpu_idle+0x24/0x5c[c093bf80][c00ac4ec]rcu_idle_enter+0xac/0xec(不可靠)[c093bf90][c0086b00]
cpu_启动_条目+0x120/0x170[c093bfc0][c08a97a8]
启动内核+0x2f0/0x304[c093bff0][c00003fc]skpinv+0x2e8/0x324
指令转储:4e800421 80fe0204 4bffff44 7fc3f378 4bfe72e5
7fc4f378 7c651b78 3c60c085 7fe6fb78 38632bf0 4cc63182 48184835
39200001 993c9c37 4bffffb4
---[结束记录道d3f58d6e7db83823]---

这是内核崩溃吗?是什么引起的?我如何解决它?如果您需要任何其他信息,请告诉我。

因为我们/我不知道,在不深入代码的情况下,您到底在做什么。然而,这里有一个尝试来分析一下;)

线路
警告:at net/sched/schu generic.c:279个模块链接到:CPU:0 PID:0通信:
交换程序/0未受污染3.12.19-rt30-gc29fe1a
在发生崩溃的某些内核数据旁边显示(
未受污染
表示未加载封闭源代码驱动程序)。堆栈跟踪也验证了这是原因。虽然这一行本身没有太大帮助(对我来说,我不太了解内核源代码),但它表明网络调度器失败了。如果你的防火墙不知怎么搞砸了,你应该开始在那里搜索


否则,您可能会遇到实际的内核错误。如果可能的话,首先要做的就是更新你的版本。截至编写时,有3.19和4.1可用。如果这没有帮助(或者你真的需要这个版本),你可以。因为你的内核没有被污染,你可以期待开发者的帮助。祝你好运:)

因为我们/我不知道,没有深入挖掘代码,你到底在做什么。然而,这里有一个尝试来分析一下;)

线路
警告:at net/sched/schu generic.c:279个模块链接到:CPU:0 PID:0通信:
交换程序/0未受污染3.12.19-rt30-gc29fe1a
在发生崩溃的某些内核数据旁边显示(
未受污染
表示未加载封闭源代码驱动程序)。堆栈跟踪也验证了这是原因。虽然这一行本身没有太大帮助(对我来说,我不太了解内核源代码),但它表明网络调度器失败了。如果你的防火墙不知怎么搞砸了,你应该开始在那里搜索


否则,您可能会遇到实际的内核错误。如果可能的话,首先要做的就是更新你的版本。截至编写时,有3.19和4.1可用。如果这没有帮助(或者你真的需要这个版本),你可以。因为你的内核没有被污染,你可以期待开发者的帮助。祝你好运:)

不,这不是内核崩溃

这是来自内部看门狗计时器的警告通知,该计时器监视飞思卡尔Gianfar以太网驱动程序的传输工作

该消息意味着驱动程序已将一帧排队等待传输,并从Ginafar硬件获取传输确认中断(或其他指示)超时

这可能是一个驱动程序问题,但也可能是一个硬件问题(例如以太网MAC卡滞)


顺便说一句,消息的内容说,在看门狗定时器发生时,您的系统没有做任何事情(处于空闲状态)

不,这不是内核崩溃

这是来自内部看门狗计时器的警告通知,该计时器监视飞思卡尔Gianfar以太网驱动程序的传输工作

该消息意味着驱动程序已将一帧排队等待传输,并从Ginafar硬件获取传输确认中断(或其他指示)超时

这可能是一个驱动程序问题,但也可能是一个硬件问题(例如以太网MAC卡滞)


顺便说一句,消息的内容说,在看门狗定时器发生时,您的系统没有做任何事情(处于空闲状态)

这确实是内核崩溃。导致崩溃的原因是什么?如何解决它?试着在最新的内核上复制,现在是4.0-rc6。这确实是内核崩溃。造成这个崩溃的原因是什么?如何解决呢?试着在最新的内核上复制,现在是4.0-rc6。