我正在编写一个简单的字符设备驱动程序。 (内核2.6.26) 多个并发阅读器和作家是期待的。
我不确定哪种类型的锁最适合用于同步对内部结构的短访问。
任何建议都将受到赞赏
答案 0 :(得分:0)
与http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/c214.html比较。以前存在互斥锁时的旧文档,但是给定互斥锁是一个睡眠锁定,它们会计入用户上下文。
spinlock - spinlock_bh - 互斥锁 - 信号量
如果您的数据结构仅由用户空间触发执行的函数访问,则所有锁定原语都可供您使用。这取决于对“短途访问”有多短的直觉。
然后RCU作为第五种做法,尽管它本身并不是一种锁定原语。 (它与其中一个锁原语一起使用。)
答案 1 :(得分:0)
以mutex
开头。一旦你开始工作,你就可以考虑重新设计锁定。