免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 785 | 回复: 0
打印 上一主题 下一主题

不合理的需求一概咔掉 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:44 |只看该作者 |倒序浏览

鱼头那边有个插了PCI卡开了DMA Rx偶尔会死机bug。有狗会被狗复位,拔狗会挂住。
只有两种情况,1)关中断然后进入死循环 2)中断向量被覆盖掉了。
鱼头已经确认是中断向量被擦掉DMA查掉了,但是还没有查出源头在哪里。
目前中断向量是从0地址开始放,这家伙居然想到把中断向量挪到内存顶端、以避免被狗咬。

从技术的角度讲,通过配置EBase寄存器可以将MIPS中断向量入口重定向到任意地址。
但是有两个问题:
1)增加了一定量代码后这个bug有可能不重现了,那bug还是解决不了。
2)现在是DMA写了0地址(低端内存),要求把中断向量搬到高端内存。
说不定哪天DMA又写到高端,岂不是又出问题。所以这样搞是不行的。

我跟他讲系统软件不支持,鱼头估计是有点心不死又跑去问叶导、叶导来问我,我还是说系统软件不支持。
还是老梁说得好,直接跟他们说作做不了他们死心了。May be,O(∩_∩)O~

----
4.2更新
目前查到是PCIe重新初始化引起的。
bootloader和kernel都对PCIe controller进行初始化,将kernel跳过PCIe controller初始化就可以规避这个问题。准确的说是kernel中跳过CPU PCIe core和PCIe总线初始化。
怀疑点一:这个CPU PCIe core reset两次会有bug,但这个无法向上游求证。
怀疑点二:第二次复位PCIe总线过程中总线上的设备(交换芯片)有有一定概率没有完全复位,到时设备运行过程中出问题。但是bootloader和kernel这部分代码是复用的,为什么kernel下面会有问题呢,是不是交换芯片有bug。另,试下将总线复位时间拉到足够长来验证一下。
疑点:交换芯片没有被初始化好,DMA写着写着就写乱了、写到0地址去了?

PS:以往类现象的bug都不是平台的问题,但这次真的是平台问题,哈。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP