logo资料库

reboot卡死问题分析.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
Reboot 卡死问题分析 问题现象 设备:192.168.0.89 [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ 39.940000] PC is at yaffs_tags_marshall_write+0xc0/0xdc 39.940000] LR is at yaffs2_checkpt_flush_buffer+0x9c/0x294 39.940000] pc : [] lr : [] psr: 60000013 39.940000] [] (yaffs_tags_marshall_write+0x0/0xdc) from [] (yaffs2_checkpt_flush_buffer+0x9c/0x294) 39.940000] r9:c16915ec r8:00000001 r7:c16915f0 r6:0000004d r5:0000a18c 39.940000] r4:c62ea000 39.940000] [] (yaffs2_checkpt_flush_buffer+0x0/0x294) from [] (yaffs_checkpt_close+0x2c/0x130) 39.940000] r7:c16915f0 r6:c62ea000 r5:c6363388 r4:c62ea000 39.940000] [] (yaffs_checkpt_close+0x0/0x130) from [] (yaffs_checkpoint_save+0x140/0x504) 39.940000] r4:c62d93cc r3:00000000 39.940000] [] (yaffs_checkpoint_save+0x0/0x504) from [] (yaffs_flush_super+0x8c/0xa8) 39.940000] [] (yaffs_flush_super+0x0/0xa8) from [] (yaffs_sync_fs+0xd8/0x1b8) 39.940000] r9:00000001 r8:00000000 r7:00000001 r6:c62d9400 r5:c16915ec 39.940000] r4:c62ea000 39.940000] [] (yaffs_sync_fs+0x0/0x1b8) from [] (sync_fs_one_sb+0x30/0x34) 39.940000] [] (sync_fs_one_sb+0x0/0x34) from [] (iterate_supers+0xec/0x16c) 39.940000] [] (iterate_supers+0x0/0x16c) from [] (sys_sync+0x44/0xa0) 39.940000] [] (sys_sync+0x0/0xa0) from [] (ret_fast_syscall+0x0/0x34) 39.940000] r4:00000002
[ 39.940000] Code: e1a01006 e0850000 ebfffb71 eaffffec (e7f001f2) 问题分析; 首先了解一下 reboot 的调用流程,详见以下链接 Reboot 在进行调用的时候会调用 busybox 中 run_shutdown_and_kill_process 函数 该函数功能实现如下 Reboot 复位主要有三点
1. 发送 kill 信号 2. Sync 同步 3. 调用内核处理 restart 流程 我们问题出现在 sync 同步过程----》运行 yaffs tag 功能(用于记录文件信息) 经过信息收集,现场反馈设备网络不通,很有可能是另外一种现象。 在清明节 4.4~4.6 日搭建 4 台设备,开启 soap 服务,发现其中一台设备串口卡死,ip 无法 ping 通,怀疑和设备的日志系统重启守护进程有关。该现象和现场出问题反馈的问题相似。
解决方法 1. 应用层主要出现在对 reboot 调电处理不严谨造成,应用程序需要对 reboot 掉电流程进行 优化,以保证系统数据的稳定性 2. 内核层修改日志记录方式。 Reboot 使用之前做掉电处理,必须卸载 yaffs、必须卸 载 sd 卡、关闭网络和串口,同时进行线程和进程的资 源释放 具体应用关键流程如下
分享到:
收藏