Date: Tue, 5 Feb 2002 13:23:05 -0800 (PST) From: Alfred Perlstein <alfred@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/vm vm_extern.h vm_glue.c vm_map.c vm_map.h src/sys/kern kern_exit.c Message-ID: <200202052123.g15LN5f05643@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
alfred 2002/02/05 13:23:05 PST
Modified files:
sys/vm vm_extern.h vm_glue.c vm_map.c vm_map.h
sys/kern kern_exit.c
Log:
Fix a race with free'ing vmspaces at process exit when vmspaces are
shared.
Also introduce vm_endcopy instead of using pointer tricks when
initializing new vmspaces.
The race occured because of how the reference was utilized:
test vmspace reference,
possibly block,
decrement reference
When sharing a vmspace between multiple processes it was possible
for two processes exiting at the same time to test the reference
count, possibly block and neither one free because they wouldn't
see the other's update.
Submitted by: green
Revision Changes Path
1.147 +4 -3 src/sys/kern/kern_exit.c
1.51 +1 -0 src/sys/vm/vm_extern.h
1.123 +1 -1 src/sys/vm/vm_glue.c
1.212 +30 -17 src/sys/vm/vm_map.c
1.69 +2 -0 src/sys/vm/vm_map.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202052123.g15LN5f05643>
