svn commit: r266688 - in user/attilio/rm_vmobj_cache/sys: kern vm

Attilio Rao attilio at FreeBSD.org
Mon May 26 13:11:39 UTC 2014


Author: attilio
Date: Mon May 26 13:11:38 2014
New Revision: 266688
URL: http://svnweb.freebsd.org/changeset/base/266688

Log:
  Fixup 2 cases where we were allocating via vm_page_grab().

Modified:
  user/attilio/rm_vmobj_cache/sys/kern/kern_sharedpage.c
  user/attilio/rm_vmobj_cache/sys/vm/vm_object.c

Modified: user/attilio/rm_vmobj_cache/sys/kern/kern_sharedpage.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/kern/kern_sharedpage.c	Mon May 26 12:28:34 2014	(r266687)
+++ user/attilio/rm_vmobj_cache/sys/kern/kern_sharedpage.c	Mon May 26 13:11:38 2014	(r266688)
@@ -108,7 +108,8 @@ shared_page_init(void *dummy __unused)
 	shared_page_obj = vm_pager_allocate(OBJT_PHYS, 0, PAGE_SIZE,
 	    VM_PROT_DEFAULT, 0, NULL);
 	VM_OBJECT_WLOCK(shared_page_obj);
-	m = vm_page_grab(shared_page_obj, 0, VM_ALLOC_NOBUSY | VM_ALLOC_ZERO);
+	m = vm_page_grab(shared_page_obj, 0, VM_ALLOC_NOBUSY | VM_ALLOC_ZERO |
+	    VM_ALLOC_WIRED);
 	m->valid = VM_PAGE_BITS_ALL;
 	VM_OBJECT_WUNLOCK(shared_page_obj);
 	addr = kva_alloc(PAGE_SIZE);

Modified: user/attilio/rm_vmobj_cache/sys/vm/vm_object.c
==============================================================================
--- user/attilio/rm_vmobj_cache/sys/vm/vm_object.c	Mon May 26 12:28:34 2014	(r266687)
+++ user/attilio/rm_vmobj_cache/sys/vm/vm_object.c	Mon May 26 13:11:38 2014	(r266688)
@@ -2044,8 +2044,12 @@ vm_object_populate(vm_object_t object, v
 	int rv;
 
 	VM_OBJECT_ASSERT_WLOCKED(object);
+	KASSERT((object->flags & OBJ_UNMANAGED) != 0,
+            ("vm_object_populate: object %p cannot contain unmanaged pages",
+	    object));
 	for (pindex = start; pindex < end; pindex++) {
-		m = vm_page_grab(object, pindex, VM_ALLOC_NORMAL);
+		m = vm_page_grab(object, pindex, VM_ALLOC_NORMAL |
+		    VM_ALLOC_WIRED);
 		if (m->valid != VM_PAGE_BITS_ALL) {
 			ma[0] = m;
 			rv = vm_pager_get_pages(object, ma, 1, 0);


More information about the svn-src-user mailing list