Linux 驱动并发:自旋锁、互斥锁与中断上下文
Linux 驱动并发:自旋锁、互斥锁与中断上下文
难度:进阶。本文为中文技术整理,保留来源中的技术边界;示例只用于阅读,未在本服务器执行。
锁的选择取决于上下文是否允许睡眠。进程上下文可使用互斥锁;中断上下文通常使用自旋锁。共享数据还要固定锁顺序,避免死锁。
示例
spin_lock_irqsave(&state->lock, flags);
state->value = value;
spin_unlock_irqrestore(&state->lock, flags);
来源
- https://docs.kernel.org/locking/
Linux 驱动并发:自旋锁、互斥锁与中断上下文
https://blog.529808.xyz//archives/tech-b68472dd6fb4