您的位置:首页 > 其它

spin_lock_irq和spin_lock_irqsave

2013-07-03 23:18 232 查看
http://hi.baidu.com/dayanhn/item/f52242ca3a16fa12505058e7

看了这篇文章差不多明白了一点,就是加入两个CPU同时执行两组spin_lock_irq1和spin_lock_irq2

假如spin_unlock_irq1先执行,那么被spin_lock_irq2保护的区域实际上中断已经打开。

但是我有点没搞明白,irqsave为什么可以保证两个irqrestore不会互相干涉,是否因为cli/sti是针对中断管理器,只有一个。

而irqsave保存的是EFLAGS寄存器,每个CPU有一个,所以不同CPU的不同进程执行的结果只影响自身。

但是这也解释不同,因为irqsave把CPU1的EFLAGS寄存器中断位置零了,而CPU2却没有,不是照样可以进入死锁吗?

恩,还要搞搞清楚。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: