Date: Tue, 13 Jun 2017 20:59:53 +0800 From: Jia-Ju Bai <baijiaju1990@163.com> To: freebsd-questions@freebsd.org, freebsd-drivers@freebsd.org Subject: A question about in lock usage in FreeBSD Message-ID: <593FE1C9.2060706@163.com>
next in thread | raw e-mail | index | archive | help
Hi, 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 :) Jia-Ju Bai
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?593FE1C9.2060706>