uiomove and mutex

H.Fazaeli fazaeli at sepehrs.com
Mon Jan 11 19:57:46 UTC 2010


dear gurus

man mutex(9) states that:

"No mutexes should be held (except for Giant) across functions which
access memory in userspace, such as copyin(9), copyout(9), uiomove(9),
fuword(9), etc.  No locks are needed when calling these functions."

can someone pls. explain why it is so?

Suppose I have a kernel buffer to which kernel writes and
userland processes read via a character device. In the device
read method, If we unlock the mutex just before uiomove, is it
guaranteed that kernel does not write to the buffer in the middle
of uiomove? If yes, how? What is the solution in such a situation?
rwlocks? an intermediate buffer?


-- 

Best regards.
Hooman Fazaeli






More information about the freebsd-hackers mailing list