This reduces the number of spinlock operations.
这样可以减少自旋锁的数目。
First you create a new spinlock through a simple declaration.
首先通过一个简单的声明创建一个新的自旋锁。
This version of the spinlock disables soft interrupts on the local CPU.
这种自旋锁禁用了本地CPU上的软中断。
The kernel preemption case is handled by the spinlock code itself.
内核的抢占机制被它自己操作自旋锁的代码所控制。
Taking out a spinlock in an interrupt handler is a legitimate thing to do;
在中断服务函数中获得一个自旋锁完全合理;
Make sure this copying happens inside the critical section by holding a spinlock.
确保这个拷贝是在一个具有自旋锁的临界区中发生的。
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).
spin_unlock _ irqrestore函数释放自旋锁,并且(通过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.
显然,如果您使用的是原版的读/写锁,那么按照标准自旋锁的用法使用这个自旋锁,而不区分读线程和写线程。
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.
显然,如果您使用的是原版的读/写锁,那么按照标准自旋锁的用法使用这个自旋锁,而不区分读线程和写线程。
应用推荐