tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

re: Modules loading modules?



> According to the mutex(9) man page:
> 
>      mutex_owned(mtx)
> 
>         For adaptive mutexes, return non-zero if the current LWP holds
>         the mutex. ...

this is an incomplete reading of the manual page, and you can not
use mutex_owned() the way you are trying to (regardless of what
pooka posted.) you can't even using it in various forms of assertions
safely.  from the man page:

        It should not be used to make locking decisions at run time, or to
        verify that a lock is not held.

ie, you can not even KASSERT(!mutex_owned()).

the documentation matches my experience with using mutex(9) and
KASSERT().

but i'm still not sure why we're going to such lengths to hold a
lock across such a heavy weight operation like loading a module.
that may involve disk speeds, and so you're looking at waiting
millions of cycles for the lock.  aka, what eeh posted.


.mrg


Home | Main Index | Thread Index | Old Index