Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Feb 2013 14:50:35 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r246408 - user/attilio/vmc-playground/sys/vm
Message-ID:  <201302061450.r16EoZFR049339@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: attilio
Date: Wed Feb  6 14:50:34 2013
New Revision: 246408
URL: http://svnweb.freebsd.org/changeset/base/246408

Log:
  Now that vm_page_cache_free() and vm_page_cache_transfer() are
  reimplemented as ranged operations, sync vm_page_is_cached() semantic
  with HEAD.

Modified:
  user/attilio/vmc-playground/sys/vm/vm_page.c
  user/attilio/vmc-playground/sys/vm/vm_page.h

Modified: user/attilio/vmc-playground/sys/vm/vm_page.c
==============================================================================
--- user/attilio/vmc-playground/sys/vm/vm_page.c	Wed Feb  6 14:29:05 2013	(r246407)
+++ user/attilio/vmc-playground/sys/vm/vm_page.c	Wed Feb  6 14:50:34 2013	(r246408)
@@ -1117,12 +1117,12 @@ vm_page_cache_transfer(vm_object_t orig_
 }
 
 /*
- *	Returns a pointer to the cached page associated with the given object
- *	and offset, NULL otherwise.
+ *	Returns TRUE if a cached page is associated with the given object and
+ *	offset, and FALSE otherwise.
  *
  *	The object must be locked.
  */
-vm_page_t
+boolean_t
 vm_page_is_cached(vm_object_t object, vm_pindex_t pindex)
 {
 	vm_page_t m;
@@ -1135,10 +1135,12 @@ vm_page_is_cached(vm_object_t object, vm
 	 * exist.
 	 */
 	VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+	if (vm_object_cache_is_empty(object))
+		return (FALSE);
 	mtx_lock(&vm_page_queue_free_mtx);
 	m = vm_page_cache_lookup(object, pindex);
 	mtx_unlock(&vm_page_queue_free_mtx);
-	return (m);
+	return (m != NULL);
 }
 
 /*

Modified: user/attilio/vmc-playground/sys/vm/vm_page.h
==============================================================================
--- user/attilio/vmc-playground/sys/vm/vm_page.h	Wed Feb  6 14:29:05 2013	(r246407)
+++ user/attilio/vmc-playground/sys/vm/vm_page.h	Wed Feb  6 14:50:34 2013	(r246408)
@@ -388,7 +388,7 @@ vm_page_t vm_page_find_least(vm_object_t
 vm_page_t vm_page_getfake(vm_paddr_t paddr, vm_memattr_t memattr);
 void vm_page_initfake(vm_page_t m, vm_paddr_t paddr, vm_memattr_t memattr);
 void vm_page_insert (vm_page_t, vm_object_t, vm_pindex_t);
-vm_page_t vm_page_is_cached(vm_object_t object, vm_pindex_t pindex);
+boolean_t vm_page_is_cached(vm_object_t object, vm_pindex_t pindex);
 vm_page_t vm_page_lookup (vm_object_t, vm_pindex_t);
 vm_page_t vm_page_next(vm_page_t m);
 int vm_page_pa_tryrelock(pmap_t, vm_paddr_t, vm_paddr_t *);



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