DragonFly commits List (threaded) for 2005-12
Re: cvs commit: src/sys/kern kern_descrip.c kern_exit.c kern_proc.c kern_sig.c kern_synch.c tty.c src/sys/sys proc.h src/sys/amd64/amd64 genassym.c src/sys/emulation/svr4 svr4_misc.c src/sys/i386/i386 genassym.c
:Matthew Dillon wrote:
:> Get rid of the p_stat SZOMB state. p_stat can now only be SIDL, SSLEEP, or
:> SRUN. Instead mark zombie processes with a new flag, P_ZOMBIE. The eproc
:> code will convert P_ZOMBIE into SZOMB for /bin/ps.
:yay. getting better and better: this makes it much more easy for lwp
Yup. I'll probably get rid of p_stat entirely after the release, but
right now I just want to stabilize the kernel for the release.
All the problems reported so far have been very easy to find and fix.
I also see a clear path to making the signal handling (psignal/issignal)
100% MPSAFE, again after the release. I'll use atomic add/subtract to
manage the p_lock counter and then any manipulation of the target process
will simply be done on the cpu owning the target process. psignal()
will need to bump the lock count to prevent the process getting ripped
out from under it while the IPIQ message is in transit, then send an
IPIQ message to forward the signal to the correct cpu. Then all process
state will be cpu-localized and no locks other then a simple critical
section will be required to mess with it.
The network code is in very good shape. Once the parallel routing goes
in post-release the ONLY thing left to lock-up will be ipfw/ipfilter,
and I think I'll be able to make the tcp and udp threads MPSAFE even
before we fix ipfw/ipfilter.