配置恢复出发异常中断的解析

在我最近的一次项目中,要实现设备在启动时,恢复上次配置的时候,我将配置恢复的功能实现在内核态,虽然最后配置恢复下刷芯片等功能完全没有问题,但导致ping直连延时以及tftp下载上传速率很慢;下面介绍我处理这个问题所经历的几个阶段:1.由于刚开始的时候没有意识到这个问题,再后来的测试中,也一直以为是是由于端口的能力及达不到才导致这种情况;2.针对这种情况,我竟版本回退,然后依据二分法的方式测试那个版本出了问题,最终确定,虽然端口的能力级比较低,但是速率不会很慢以及ping直连不会延时很大(也可以说很大,达到100ms级别);是我在添加配置恢复功能是出了问题;3.针对这种情况,我把设备启动整体的流程分析了一边,发现在设备模块加载完成以后,会调用配置恢复功能,而配置恢复分为用户态和内核态两部分,内核态执行在前,用户态的配置恢复稍后;随后我将配置恢复的功能在用户态重新实现了一遍,测试时发现配置恢复功能正常,ping直连以及tftp上传下载功能都恢复为正常;4. 确定具体问题以后,我就才是着手查找问题的具体原因,因为用户态配置恢复和内核态配置恢复最终的执行流程是一样的,只不过是内核态执行在前,,用户态执行在后,所以开始的时候我很困惑,但是随着一步步的追踪,发现在设备初始化的时候,会首先设置接收中断的条件为没接收一个报文就会上报一次中断;而每次设备启动以后端口会进入流量,而此时cpu可能还没有初始化好所有寄存器,不太稳定,所以导致触发了异常中断;

没有伞的孩子必须努力奔跑!

配置恢复出发异常中断的解析

相关文章:

你感兴趣的文章:

标签云: