DragonFly kernel List (threaded) for 2005-06
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
CALL TO COMMITTERS! HELPING WITH SPL REMOVAL!
Ok, I spoke too soon. There are over 500 files still using SPLs.
In order to get this done in a reasonable length of time I would like
to call on those committers with a few hours to burn to help me
remove SPLs! To reduce overheads, I am only asking for people with a
commit bit here, because in this case it's almost as much effort to
make the changes as it would be to review a patch submission!
Basically, SPL operations have to be replaced by critical section
operations. So, for example, code that does this:
s = splblah();
...
splx(s);
would become:
[add #include <sys/thread2.h> if necessary]
[remove the 'int s' declaration]
crit_enter();
...
crit_exit();
There are a few cases where SPLs are assymetric, such as this:
s = splblah1();
splblah2();
...
splx(s);
SPLs can do that, critical sections cannot. Critical sections must
properly match up a crit_enter() to a crit_exit(). so that would become:
crit_enter();
...
crit_exit();
Critical sections CAN be nested, and CAN be held across a blocking
condition.
Committers wishing to help out should email me and I will assign you a
directory in /usr/src/sys. Work on that directory, make sure your kernel
still compiles and runs, then commit the work and I'll review it
from the commit message and do any followup commits if necessary.
Originally I wanted to keep SPLs intact so I could tell which parts of
the kernel need more involved SMP work, but frankly they are now just
getting in the way and they need to be replaced with critical sections.
Thanks!
-Matt
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]