svn commit: r247292 - user/attilio/vmc-playground/sys/vm
Attilio Rao
attilio at FreeBSD.org
Tue Feb 26 00:34:53 UTC 2013
Author: attilio
Date: Tue Feb 26 00:34:52 2013
New Revision: 247292
URL: http://svnweb.freebsd.org/changeset/base/247292
Log:
Revert wrongly added asserts: lookup and remove from the collection
of cached pages doesn't require the object lock to be held.
Sponsored by: EMC / Isilon storage division
Modified:
user/attilio/vmc-playground/sys/vm/vm_page.c
Modified: user/attilio/vmc-playground/sys/vm/vm_page.c
==============================================================================
--- user/attilio/vmc-playground/sys/vm/vm_page.c Tue Feb 26 00:27:27 2013 (r247291)
+++ user/attilio/vmc-playground/sys/vm/vm_page.c Tue Feb 26 00:34:52 2013 (r247292)
@@ -1006,8 +1006,6 @@ vm_page_rename(vm_page_t m, vm_object_t
* infinity. If the given object is backed by a vnode and it
* transitions from having one or more cached pages to none, the
* vnode's hold count is reduced.
- *
- * The object must be locked.
*/
void
vm_page_cache_free(vm_object_t object, vm_pindex_t start, vm_pindex_t end)
@@ -1015,8 +1013,6 @@ vm_page_cache_free(vm_object_t object, v
vm_page_t m;
boolean_t empty;
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
-
mtx_lock(&vm_page_queue_free_mtx);
if (vm_object_cache_is_empty(object)) {
mtx_unlock(&vm_page_queue_free_mtx);
@@ -1045,13 +1041,12 @@ vm_page_cache_free(vm_object_t object, v
* Returns the cached page that is associated with the given
* object and offset. If, however, none exists, returns NULL.
*
- * The free page queue and object must be locked.
+ * The free page queue must be locked.
*/
static inline vm_page_t
vm_page_cache_lookup(vm_object_t object, vm_pindex_t pindex)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
mtx_assert(&vm_page_queue_free_mtx, MA_OWNED);
return (vm_radix_lookup(&object->cache, pindex));
}
@@ -1083,7 +1078,7 @@ vm_page_cache_remove(vm_page_t m)
* empty. Offset 'offidxstart' in the original object must
* correspond to offset zero in the new object.
*
- * The new object and original object must be locked.
+ * The new object must be locked.
*/
void
vm_page_cache_transfer(vm_object_t orig_object, vm_pindex_t offidxstart,
@@ -1097,7 +1092,6 @@ vm_page_cache_transfer(vm_object_t orig_
* not.
*/
VM_OBJECT_LOCK_ASSERT(new_object, MA_OWNED);
- VM_OBJECT_LOCK_ASSERT(orig_object, MA_OWNED);
KASSERT(vm_object_cache_is_empty(new_object),
("vm_page_cache_transfer: object %p has cached pages",
new_object));
More information about the svn-src-user
mailing list