cvs commit: src/sys/vm vm_contig.c vm_extern.h vm_glue.c vm_kern.c vm_kern.h vm_map.c vm_map.h vm_zone.c

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Jan 14 15:26:46 PST 2004


dillon      2004/01/14 15:26:14 PST

DragonFly src repository

  Modified files:
    sys/vm               vm_contig.c vm_extern.h vm_glue.c 
                         vm_kern.c vm_kern.h vm_map.c vm_map.h 
                         vm_zone.c 
  Log:
  Cleanup the vm_map_entry_[k]reserve/[k]release() API.  This API is used to
  guarentee that sufficient vm_map_entry structures are available for certain
  atomci VM operations.
  
  The kreserve/krelease API is only supposed to be used to dig into the kernel
  reserve, used when zalloc() must recurse into kmem_alloc() in order to
  allocate a new page.  Without this we can get into a kmem_alloc -> zalloc ->
  kmem_alloc deadlock.
  
  kreserve/krelease was being used improperly in my original work, causing it
  to be unable to guarentee the reserve and resulting in an occassional panic.
  This commit converts the improper usage back to using the non-k version of
  the API and (should) properly handle the zalloc() recursion case.
  
  Reported-by: David Rhodus <drhodus at xxxxxxxxx>
  
  Revision  Changes    Path
  1.3       +1 -1      src/sys/vm/vm_contig.c
  1.7       +8 -1      src/sys/vm/vm_extern.h
  1.19      +2 -2      src/sys/vm/vm_glue.c
  1.13      +24 -18    src/sys/vm/vm_kern.c
  1.8       +6 -0      src/sys/vm/vm_kern.h
  1.18      +14 -11    src/sys/vm/vm_map.c
  1.10      +1 -1      src/sys/vm/vm_map.h
  1.12      +1 -1      src/sys/vm/vm_zone.c


http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_contig.c.diff?r1=1.2&r2=1.3&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_extern.h.diff?r1=1.6&r2=1.7&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_glue.c.diff?r1=1.18&r2=1.19&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_kern.c.diff?r1=1.12&r2=1.13&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_kern.h.diff?r1=1.7&r2=1.8&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_map.c.diff?r1=1.17&r2=1.18&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_map.h.diff?r1=1.9&r2=1.10&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/vm/vm_zone.c.diff?r1=1.11&r2=1.12&f=h





More information about the Commits mailing list