首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMP系统的Linux设备驱动程序

SMP系统的Linux设备驱动程序
EN

Stack Overflow用户
提问于 2012-02-17 17:22:42
回答 1查看 849关注 0票数 1

我已经为CD设备开发了一个Linux块设备驱动程序。该驱动程序工作正常,但现在要求它应在SMP系统上运行。当我在SMP系统上进行测试时,我发现驱动程序的性能有所下降。与单核系统相比,数据光盘的比特率下降了很多。因此,我知道我的驱动程序需要修改,以使其SMP安全。

在我的驱动中,我使用了: 1.内核线程2.互斥锁3.信号量4.完成

我的SMP系统是: ARM Cortex-A9双核600 MHz

有人能告诉我在做这个移植时我应该记住什么因素吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-03 16:00:38

通常,对于SMP系统,共享资源(I/O资源)和全局变量必须以这样的方式处理,即同时执行任务时不能覆盖、损坏数据。为此,您可以使用spin_locks、信号量等来确保一次只有一个内核在该块/任务上执行操作。这是逻辑实现,你必须识别设备驱动程序中的潜在风险区域,如ISR,读写操作,并必须识别设备驱动程序的多个入口点和它们正在/将要走向的中央任务(在驱动程序中)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9325685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档