首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免自旋锁死锁

避免自旋锁死锁
EN

Stack Overflow用户
提问于 2013-08-31 14:08:01
回答 1查看 1.6K关注 0票数 3

假设设备函数持有自旋锁以控制对设备的访问。当锁被持有时,设备发出一个中断,这将导致中断处理程序的运行。在访问设备之前,中断处理程序还必须获得锁。

假设中断处理程序与最初取出锁的代码在同一个处理器中执行。

知道保持自旋锁无法在相关处理器上抢占,是否有可能在另一个处理器上执行持有自旋锁的代码(因为该处理器的抢占性)?(我们假设这是一台SMP机器)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-31 14:47:43

是否有可能在另一个处理器上执行保存自旋锁的代码(因为该处理器的抢占性)?

不,代码一直在等待中断处理程序的返回。

只要使用spin_lock_irq*(),或者spin_lock_bh(),如果您也想保护不受软线程/微线程的影响。

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

https://stackoverflow.com/questions/18549018

复制
相关文章

相似问题

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