Linux kernel linux字符驱动程序中使用的正确锁

Linux kernel linux字符驱动程序中使用的正确锁,linux-kernel,linux-device-driver,Linux Kernel,Linux Device Driver,我正在写一个简单的字符设备驱动程序。(内核2.6.26) 需要多个并发读写器 我不确定哪种类型的锁最适合用于同步对内部结构的短期访问 如果您有任何建议,我们将不胜感激。以前存在互斥锁时的旧文档,但给定互斥锁是休眠锁,它们计入用户上下文 spinlock-spinlock_bh-互斥-信号量 如果只有由用户空间触发执行的函数才能访问数据结构,则所有锁原语都对您可用。这取决于“短通道”有多短的直觉 还有第五种方式是RCU,尽管它本身并不是一个锁定原语。(它与一个锁原语一起使用。)与比较。以前存在互斥

我正在写一个简单的字符设备驱动程序。(内核2.6.26) 需要多个并发读写器

我不确定哪种类型的锁最适合用于同步对内部结构的短期访问

如果您有任何建议,我们将不胜感激。以前存在互斥锁时的旧文档,但给定互斥锁是休眠锁,它们计入用户上下文

spinlock-spinlock_bh-互斥-信号量

如果只有由用户空间触发执行的函数才能访问数据结构,则所有锁原语都对您可用。这取决于“短通道”有多短的直觉

还有第五种方式是RCU,尽管它本身并不是一个锁定原语。(它与一个锁原语一起使用。)

与比较。以前存在互斥锁时的旧文档,但给定互斥锁是休眠锁,它们计入用户上下文

spinlock-spinlock_bh-互斥-信号量

如果只有由用户空间触发执行的函数才能访问数据结构,则所有锁原语都对您可用。这取决于“短通道”有多短的直觉


还有第五种方式是RCU,尽管它本身并不是一个锁定原语。(它与一个锁原语一起使用。)

互斥开始。一旦工作正常,您可以考虑重新设置锁定。

互斥开始。一旦你有了它的工作,你可以考虑返工锁定