cvs commit: src/sys/i386/i386 pmap.c src/sys/kern kern_mbuf.c
src/sys/vm uma.h uma_core.c
Alan Cox
alc at FreeBSD.org
Fri Apr 4 18:41:13 UTC 2008
alc 2008-04-04 18:41:12 UTC
FreeBSD src repository
Modified files:
sys/i386/i386 pmap.c
sys/kern kern_mbuf.c
sys/vm uma.h uma_core.c
Log:
Reintroduce UMA_SLAB_KMAP; however, change its spelling to
UMA_SLAB_KERNEL for consistency with its sibling UMA_SLAB_KMEM.
(UMA_SLAB_KMAP met its original demise in revision 1.30 of
vm/uma_core.c.) UMA_SLAB_KERNEL is now required by the jumbo frame
allocators. Without it, UMA cannot correctly return pages from the
jumbo frame zones to the VM system because it resets the pages' object
field to NULL instead of the kernel object. In more detail, the jumbo
frame zones are created with the option UMA_ZONE_REFCNT. This causes
UMA to overwrite the pages' object field with the address of the slab.
However, when UMA wants to release these pages, it doesn't know how to
restore the object field, so it sets it to NULL. This change teaches
UMA how to reset the object field to the kernel object.
Crashes reported by: kris
Fix tested by: kris
Fix discussed with: jeff
MFC after: 6 weeks
Revision Changes Path
1.614 +3 -1 src/sys/i386/i386/pmap.c
1.40 +2 -1 src/sys/kern/kern_mbuf.c
1.32 +1 -0 src/sys/vm/uma.h
1.149 +4 -0 src/sys/vm/uma_core.c
More information about the cvs-src
mailing list