svn commit: r207576 - head/sys/vm
Alan Cox
alc at FreeBSD.org
Mon May 3 17:35:32 UTC 2010
Author: alc
Date: Mon May 3 17:35:31 2010
New Revision: 207576
URL: http://svn.freebsd.org/changeset/base/207576
Log:
It makes more sense for the object-based backend allocator to use OBJT_PHYS
objects instead of OBJT_DEFAULT objects because we never reclaim or pageout
the allocated pages. Moreover, they are mapped with pmap_qenter(), which
creates unmanaged mappings.
Reviewed by: kib
Modified:
head/sys/vm/uma_core.c
Modified: head/sys/vm/uma_core.c
==============================================================================
--- head/sys/vm/uma_core.c Mon May 3 17:34:12 2010 (r207575)
+++ head/sys/vm/uma_core.c Mon May 3 17:35:31 2010 (r207576)
@@ -1022,12 +1022,8 @@ obj_alloc(uma_zone_t zone, int bytes, u_
while (pages != startpages) {
pages--;
p = TAILQ_LAST(&object->memq, pglist);
- vm_page_lock(p);
- vm_page_lock_queues();
vm_page_unwire(p, 0);
vm_page_free(p);
- vm_page_unlock_queues();
- vm_page_unlock(p);
}
retkva = 0;
goto done;
@@ -2893,13 +2889,11 @@ uma_zone_set_obj(uma_zone_t zone, struct
if (kva == 0)
return (0);
- if (obj == NULL) {
- obj = vm_object_allocate(OBJT_DEFAULT,
- pages);
- } else {
+ if (obj == NULL)
+ obj = vm_object_allocate(OBJT_PHYS, pages);
+ else {
VM_OBJECT_LOCK_INIT(obj, "uma object");
- _vm_object_allocate(OBJT_DEFAULT,
- pages, obj);
+ _vm_object_allocate(OBJT_PHYS, pages, obj);
}
ZONE_LOCK(zone);
keg->uk_kva = kva;
More information about the svn-src-all
mailing list