A question about in lock usage in FreeBSD
baijiaju1990 at 163.com
Tue Jun 13 12:57:08 UTC 2017
I am a freshman in developing FreeBSD drivers, and I have a question in
lock usage in FreeBSD.
The kernel provides some kinds of locks in developing drivers, such as
"mutex lock", "mutex spin lock", "rw lock" and "sx lock". I want to know
which locks should be held when the thread can sleep.
From my knowledge of FreeBSD document, I make the following points:
(1) "rw lock" and "sx lock" can be used in this situation;
(2) "mutex lock" and "mutex spin lock" are forbidden in this situation.
If my points are right, I will make another point:
mutex_lock will let the thread sleep when the lock is requested, so the
mutex_lock can not be called in nested style (namely it is unsafe that
mutex_lock is called again when a "mutex lock" is held).
Are my points are right?
I am looking forward to useful opinions and answers :)
Thanks in advance :)
More information about the freebsd-questions