Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 May 2010 17:35:31 +0000 (UTC)
From:      Alan Cox <alc@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r207576 - head/sys/vm
Message-ID:  <201005031735.o43HZV6V046523@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005031735.o43HZV6V046523>