2

I am writing a simple character device driver. (kernel 2.6.26) Multiple concurrent reader & writers are expected.

I am not sure what type of lock is best used to synchronize a short access to internal structures.

Any advice will be most appreciated

4

2 回答 2

0

http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/c214.html进行比较。以前存在互斥锁的旧文档,但由于互斥锁是休眠锁,因此它们计入用户上下文。

自旋锁 — spinlock_bh — 互斥锁 — 信号量

如果你的数据结构只被用户空间触发的函数访问,那么所有的锁原语都对你可用。这取决于对“短访问”有多短的直觉。

然后是 RCU 作为第五种做事方式,尽管它本身并不是一个锁定原语。(它与锁原语之一一起使用。)

于 2010-11-21T14:35:04.193 回答
0

mutex. 一旦你让它工作,你可以考虑重新设计锁定。

于 2010-11-22T14:12:41.837 回答