cvs commit: src/sys/kern kern_fork.c

David Xu davidxu at FreeBSD.org
Wed Oct 24 18:34:05 PDT 2007


Julian Elischer wrote:
> julian      2007-10-23 17:54:16 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/kern             kern_fork.c 
>   Log:
>   Take out the single-threading code in fork.
>   After discussions with jeff, alc, (various Ironport people), david Xu,
>   and mostly Alfred (who found the problem) it has been demonstrated that this
>   is not needed for our implementations of threads and represents a real
>   (as in we've seen it happen a lot) deadlock danger.
> ...

I think if process is forking a thread, that says flag RFPROC is not
set and flags RFCFDG or RFCFDG is set, you still need to call
thread_single(SINGLE_BOUNDARY), otherwise, for a threaded process,
the memory pointed by p_fd is freed while other threads are using it,
it will cause kernel to panic.

Regards,
David Xu



More information about the cvs-src mailing list