Evaluations on the likelyhood of empty object cache cannot be made in
general way but must be evaluated case by case. Embedd the decision in the caller themselves rather than in a general purpose KPI. Sponsored by: EMC / Isilon storage division Reported by: alc Reviewed by: alc
This commit is contained in:
parent
a8671df14b
commit
709ad55889
@ -755,7 +755,7 @@ vm_object_terminate(vm_object_t object)
|
||||
if (__predict_false(!LIST_EMPTY(&object->rvq)))
|
||||
vm_reserv_break_all(object);
|
||||
#endif
|
||||
if (!vm_object_cache_is_empty(object))
|
||||
if (__predict_false(!vm_object_cache_is_empty(object)))
|
||||
vm_page_cache_free(object, 0, 0);
|
||||
|
||||
/*
|
||||
@ -1380,7 +1380,7 @@ retry:
|
||||
* should still be OBJT_DEFAULT and orig_object should not
|
||||
* contain any cached pages within the specified range.
|
||||
*/
|
||||
if (!vm_object_cache_is_empty(orig_object))
|
||||
if (__predict_false(!vm_object_cache_is_empty(orig_object)))
|
||||
vm_page_cache_transfer(orig_object, offidxstart,
|
||||
new_object);
|
||||
}
|
||||
@ -1729,7 +1729,8 @@ vm_object_collapse(vm_object_t object)
|
||||
/*
|
||||
* Free any cached pages from backing_object.
|
||||
*/
|
||||
if (!vm_object_cache_is_empty(backing_object))
|
||||
if (__predict_false(
|
||||
!vm_object_cache_is_empty(backing_object)))
|
||||
vm_page_cache_free(backing_object, 0, 0);
|
||||
}
|
||||
/*
|
||||
@ -1923,7 +1924,7 @@ again:
|
||||
}
|
||||
vm_object_pip_wakeup(object);
|
||||
skipmemq:
|
||||
if (!vm_object_cache_is_empty(object))
|
||||
if (__predict_false(!vm_object_cache_is_empty(object)))
|
||||
vm_page_cache_free(object, start, end);
|
||||
}
|
||||
|
||||
|
@ -235,7 +235,7 @@ static __inline boolean_t
|
||||
vm_object_cache_is_empty(vm_object_t object)
|
||||
{
|
||||
|
||||
return (__predict_true(object->cache.rt_root == 0));
|
||||
return (object->cache.rt_root == 0);
|
||||
}
|
||||
|
||||
vm_object_t vm_object_allocate (objtype_t, vm_pindex_t);
|
||||
|
@ -1017,7 +1017,7 @@ vm_page_cache_free(vm_object_t object, vm_pindex_t start, vm_pindex_t end)
|
||||
boolean_t empty;
|
||||
|
||||
mtx_lock(&vm_page_queue_free_mtx);
|
||||
if (vm_object_cache_is_empty(object)) {
|
||||
if (__predict_false(vm_object_cache_is_empty(object))) {
|
||||
mtx_unlock(&vm_page_queue_free_mtx);
|
||||
return;
|
||||
}
|
||||
@ -1136,7 +1136,7 @@ vm_page_is_cached(vm_object_t object, vm_pindex_t pindex)
|
||||
* exist.
|
||||
*/
|
||||
VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
|
||||
if (vm_object_cache_is_empty(object))
|
||||
if (__predict_true(vm_object_cache_is_empty(object)))
|
||||
return (FALSE);
|
||||
mtx_lock(&vm_page_queue_free_mtx);
|
||||
m = vm_page_cache_lookup(object, pindex);
|
||||
|
Loading…
x
Reference in New Issue
Block a user