svn commit: r234522 - user/attilio/vmcontention/sys/vm

Attilio Rao attilio at FreeBSD.org
Sat Apr 21 00:32:56 UTC 2012


Author: attilio
Date: Sat Apr 21 00:32:56 2012
New Revision: 234522
URL: http://svn.freebsd.org/changeset/base/234522

Log:
  Fix a brain-o.
  vm_page_lookup_cache() is not exported and cannot be used arbitrarely.
  
  Reported by:	pho

Modified:
  user/attilio/vmcontention/sys/vm/vm_mmap.c

Modified: user/attilio/vmcontention/sys/vm/vm_mmap.c
==============================================================================
--- user/attilio/vmcontention/sys/vm/vm_mmap.c	Sat Apr 21 00:28:29 2012	(r234521)
+++ user/attilio/vmcontention/sys/vm/vm_mmap.c	Sat Apr 21 00:32:56 2012	(r234522)
@@ -81,6 +81,7 @@ __FBSDID("$FreeBSD$");
 #include <vm/vm_pageout.h>
 #include <vm/vm_extern.h>
 #include <vm/vm_page.h>
+#include <vm/vm_radix.h>
 #include <vm/vnode_pager.h>
 
 #ifdef HWPMC_HOOKS
@@ -887,11 +888,13 @@ RestartScan:
 				    object->type == OBJT_VNODE) {
 					pindex = OFF_TO_IDX(current->offset +
 					    (addr - current->start));
-					m = vm_page_lookup(object, pindex);
+					m = vm_radix_lookup(&object->rtree,
+					    pindex, VM_RADIX_ANY);
+
+					/* Lock just for consistency. */
 					mtx_lock(&vm_page_queue_free_mtx);
-					if (m == NULL &&
-					    vm_page_cache_lookup(object,
-					    pindex) != NULL)
+					if (m != NULL &&
+					    (m->flags & PG_CACHED) != 0)
 						mincoreinfo = MINCORE_INCORE;
 					mtx_unlock(&vm_page_queue_free_mtx);
 					if (m != NULL && m->valid == 0)


More information about the svn-src-user mailing list