spinlock
- 网络自旋锁
-
First you create a new spinlock through a simple declaration .
首先通过一个简单的声明创建一个新的自旋锁。
-
Make sure this copying happens inside the critical section by holding a spinlock .
确保这个拷贝是在一个具有自旋锁的临界区中发生的。
-
The task in the session is waiting for a spinlock to become free .
会话中的任务正在等待调节锁变为可用。
-
The kernel preemption case is handled by the spinlock code itself .
内核的抢占机制被它自己操作自旋锁的代码所控制。
-
The last important rule for spinlock usage is that spinlocks must always be held for the minimum time possible .
使用自旋锁的最后一条重要规则就是自旋锁被控制的时间要尽可能的短暂。
-
This version of the spinlock disables soft interrupts on the local CPU .
这种自旋锁禁用了本地CPU上的软中断。
-
Taking out a spinlock in an interrupt handler is a legitimate thing to do ;
在中断服务函数中获得一个自旋锁完全合理;
-
The spinlock is needed here , because the kernel thread will be running independently and will access the global structure .
此处的确需要自旋锁,因为内核线程是独立运行的,而且要访问这个全局结构。
-
Finally , if your kernel thread shares data with a bottom half , then you can use another variant of the spinlock .
最后,如果内核线程通过bottomhalf方式共享数据,那么可以使用自旋锁的另一个变体。
-
Now that you have a spinlock defined , there are a number of locking variants that you can use .
定义了自旋锁之后,就可以使用大量的锁定变量了。
-
The spin_unlock_irqrestore function releases the spinlock and restores the interrupts ( via the flags argument ) .
spinunlockirqrestore函数释放自旋锁,并且(通过flags参数)恢复中断。
-
Obviously , if your use of the lock is reader / writer in nature , this spinlock should be used over the standard spinlock , which doesn 't differentiate between readers and writers .
显然,如果您使用的是原版的读/写锁,那么按照标准自旋锁的用法使用这个自旋锁,而不区分读线程和写线程。