Skip site navigation (1)Skip section navigation (2)
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>