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