繁体   English   中英

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

Is this a Linux Kernel Crash? How do I resolve it?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我们正在测试在嵌入式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 ]---

它是内核崩溃吗? 是什么原因造成的? 我该如何解决? 如果您需要其他任何信息,请告诉我。

2 个回复

不,这不是内核崩溃。

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

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

这可能是驱动程序问题-但很可能是硬件问题(例如,以太网MAC卡住了)。

顺便说一句,消息内容表明,在看门狗定时器发生时,您的系统未执行任何操作(处于空闲状态)。

既然我们/我不知道,那么您在不挖掘代码的情况下到底在做什么。 但是,这里尝试稍微分析一下;)

WARNING: at net/sched/sch_generic.c:279 Modules linked in: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.19-rt30-gc29fe1aWARNING: 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意味着您在没有加载封闭源代码驱动程序),崩溃发生在这里 堆栈跟踪也验证了这也是原因。 尽管该行本身并不太有用(对我来说,我不是内核源代码),但它表明网络调度程序失败了。 如果您的防火墙以某种方式使其混乱,则应开始在此处搜索。

如果不是,则可能是遇到了实际的内核错误。 如果可能的话,第一件事就是更新您的版本。 撰写本文时有3.19和4.1。 如果这没有帮助(或者您确实需要此版本),则可以提交内核错误 由于您的内核没有受到污染,因此您可以期望开发人员的帮助。 祝好运 :)

2 iPad内核出现紧急情况,如何解释崩溃报告?

在使用我的应用程序时,我的一名测试人员遇到了内核恐慌。 他发送给我的报告的扩展名为panic.crash,有人知道如何解释此类文件吗? 它似乎不包含堆栈跟踪,至少不是标称.crash格式。 ...

2010-06-15 14:55:43 1 549   ipad
3 编译Linux内核时如何解决此错误

我正在尝试在我的Ubuntu计算机上编译Linux内核源2.6.38.4,但是经过将近一个小时的处理后,出现以下给定错误 我试图在Google上查找它,但在那里找不到太多线索,有人可以让我知道我应该怎么做才能解决此问题。 ...

5 如何从内核空间调用Linux系统调用?

我正在移植为Linux 2.4编写的linux内核模块,以便与Linux 2.6一起使用。 在代码中使用了一些通过syscallN()宏声明并包含在set_fs()调用中的系统调用。 如何在Linux 2.6中仍然使用那些不存在这些宏的sycall? 我知道从内核空间使用系统调用是很糟 ...

6 如何获得linux内核服务中断所花费的时间

我想跟踪一段代码中的抖动,我知道有很多潜在的来源(任务切换,系统调用,缓存未命中,将任务移动到另一个CPU,cpu限制等),我知道如何跟踪所有这些但是唯一一个我不知道如何跟踪的是内核为中断服务的时间。 数据在/ proc / stat中,但是它以低分辨率测量soft-irq和irq中的时间,我 ...

7 如何编译用于Linux Ubuntu的驱动程序/内核模块?

仅用一些示例进行扩展,这里就是问题所在:给出以下来源: 和以下Makefile: 当我在与源文件和make文件相同的目录中键入make时,会收到以下消息:'all's no要做任何事情编译似乎已在此处停止,并且未创建目标文件。 现在只是为了测试,我尝试了一个新的更简单的Ma ...

8 如何在Buildroot中配置Linux内核?

我正在尝试为x86目标构建一个rootfs,这很简单。 但是我无法弄清楚我如何配置buildroot生成的内核。 第一次运行时出现了menuconfig,但从那时起缓存了.config,我无法看到在哪里更改它。 ~650MB的内核模块对嵌入式目标没有好处:P 有没有一种简单的方法 ...

9 如何使用Java程序加载/卸载Linux内核模块?

我正在寻找从我的Java程序中加载和卸载linux内核模块的方法。 我最初尝试通过使用ProcessBuilder来运行命令来执行此操作,但是由于该程序没有root用户访问权限而失败。 以root身份运行我的程序也会产生相同的问题,因为这是需要root访问权限的不同进程。 因此,我 ...

10 如何在Linux内核中创建多个僵尸?

我正在为类找到一个项目,找到僵尸并在Linux内核中获取它们。 我发现代码会创建一个单独的僵尸,它会在wait()之后获得,但我的程序必须收获很多,大约1000。 我对内核操作/多线程非常陌生,我在网上处理僵尸的资源要么太技术性,要么模棱两可。 这是我正在使用的代码: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM