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>