在spin_lock_irqsave与spin_unlock_irqrestore中的内核抢占

来源:互联网 发布:js校验是否为数字 编辑:程序博客网 时间:2024/05/17 01:17

持有锁不可以抢占,一旦被抢占,锁将会长时间不能释放,在另外一个CPU的进程(如中断)如果也在等待该锁(如自旋锁),将会长时间等待。

检查是否需要抢占的时机:
1,中断返回内核之前
2,在锁释放的时候,因为释放锁时,锁的数值可能为0,这个时候内核就可以抢占,所以在释放锁时检查下是否有抢占(是否有紧急的任务需要执行)





0 0