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 dillon at apollo.backplane.com
Thu Dec 1 11:19:15 PST 2005


:Matthew Dillon wrote:
:>   Log:
:>   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.

						-Matt






More information about the Commits mailing list