spin_lock spin_lock_irq

  1.spin_lock会关闭中断。那么衍生出的spin_lock_irq跟它有什么区别呢?不是也是关闭中断吗?
       我的理解是spin_lock关闭的是软中断, 禁止了内核抢占;软中断有spin_lock_bh(), spin_lock_bh()是禁止软中断,  spin_lock()只是禁止了内核抢占。
       "非抢占单处理器的自旋锁被优化为不做任何事情" ,uninterruptible确实不是中断的意思,是打断。普通的spin_lock只禁止了preempt。没禁止中断。所以使用是有限制的。对于中断使用同一spinlock应该会出现死锁!而spin_lock_irq关的是硬件中断。

你可能感兴趣的:(优化)