12-22-04 12:47 PM
"Mona" <indian.monalisa@gmail.com> writes:
>Can anyone explain me, role played by spls in kernel locks ?
This depends very much on the specific kernel you are playing with.
In traditional Unix kernel, the spl*() function are used to lock
out interrupts and some other activities while manipulating certain
data structures. In those systems, spl*() functions as a primitive
locking scheme.
If you take a modern, multi-threaded kernel, like Solaris, you'll
find that you can no longer manipulate interrupt masks inside drivers;
rather, the system does it all for you. With each driver mutex
Solaris associates a "cookie" which describes the interrupt properties
of the driver. The interrupt handler can then safely obtain the lock
and lower level code can also safely obtain the lock as the kernel
will magically prevent interrupts from occuring while the lock is held.
Casper
--
Expressed in this posting are my opinions. They are in no way related
to opinions held by my employer, Sun Microsystems.
Statements on Sun products included here are not gospel and may
be fiction rather than truth.
[ Post a follow-up to this message ]
|