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