专栏中心

EEPW首页 > 专栏 > 设备驱动实现过程中的一个注意事项

设备驱动实现过程中的一个注意事项

发布人:mayer 时间:2009-08-06 来源:工程师 发布文章
设备驱动实现过程中的一个注意事项

 

        最近几天,我曾经实现的一个系统在与别人系统叠加使用的过程中出现了问题,问题是严重的数据正确性问题,存储到我的系统上的数据出现了正确性问题,引发的现象非常致命。对于这种问题一个非常棘手的事情是没有一个很好的测试用例能够在短时间内将这个问题重现,很难重现的问题就像一个定时炸弹一样随时在身旁爆炸。经过大家反复查阅代码,大胆假设推断,目前找到了一些问题的根源,在此,想说明一个驱动实现过程中page页使用的问题。

 

        bio传下来的page页尽量不要使用,如果驱动层增加bio的page页引用计数,然后在bio返回之后继续使用page页,那么在有些时候会导致数据的正确性问题。如果产生bio的请求是文件系统,并且这个page页是cache中的一部分,那么数据正确性的问题不存在;如果产生bio的请求是其他设备驱动,那么数据正确性问题将很容易产生。问题的根源在于page页中的ref_cnt只对cache管理算法有效,对于mem_pool之类的算法,这个标志位是透明的,所以会导致上下两层驱动对同一page页进行读写操作,这是导致数据正确性问题的原因。

 

        简单对发现的问题进行了说明,又类似问题的同学不妨考虑一下自己的page页使用是否正确?

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

VHDL数字系统设计实例

美国对运往中国的英伟达H200 AI芯片征收25%的关税

SK海力士发布了5位NAND,可分割单元,实现20×更快的读取速度

中国OSAT公司提升:通富微电子将筹资44亿元人民币;长电支持芯片基金

volatile 实例讲解

VHDL中Loop动态条件的可综合转化

终极3D集成,将颠覆未来的GPU

网络与存储 2026-01-19

双向可控硅实现调光技术细节

模拟技术 2026-01-19

【电动车和能效亮点】2026国际消费电子展:道通科技展示可互操作电动汽车充电解决方案

vb开发人员操作规程

基于PIC32的蜂窝网机器到机器(M2M)通信解决方案

联发科在台积电3nm和4nm 8500处理器上推出天玑9500,目标市场为中高端

MPLAB® X IDE 编辑功能

Visual C++ 6.0编程半日通

如何使用dsPIC® DSC 实现两路电机控制?

记忆巨头在供应紧张中绘制2025-26年度退出策略

小米汽车:新一代SU7 Max 24小时耐力挑战成绩4264km

芯科科技持续推动智能网联及边缘AI加速发展并获广泛赞誉

MPLAB® X IDE 入门(上)

MPLAB® X IDE 入门(下)

更多 培训课堂
更多 焦点
更多 视频

技术专区