LINUX内核之普通自旋锁

LINUX内核之普通自旋锁普通自旋锁 自旋锁最常见的使用场景是创建一段临界区 : static DEFINE_SPINLOCK(xxx_lock); unsigned long flags; spin

LINUX内核之普通自旋锁 普通自旋锁 自旋锁最常见的使用场景是创建一段临界区 : static DEFINE_SPINLOCK(xxx_lock); unsigned long flags; spin_lock_irqsave(&xxx_lock, flags); ... critical section here .. spin_unlock_irqrestore(&xxx_lock, flags); 自旋锁使用时值得注意的是: 对于采用使用自旋锁以保证共享变量的存取安全时,仅当系统中所 到存取该共享变量的程序部分都采用成对的spin_lock、和spin_unlock来进 行操作有涉及 才能保证其安全性。 NOTE! The spin-lock is safe only when you _also_ use the lock itself to do locking across CPU's, which implies that EVERYTHING that touches ashared variable has to agree about the spinlock they want to use. 在Linux2.6.15.5中,自旋 体数据结构如下: 当配置CONFIG_SMP时,raw_spinlock_t才是一个含有slock变量的结构,该

腾讯文库LINUX内核之普通自旋锁