MCPcopy Create free account
hub / github.com/F-Stack/f-stack / vm_object_backing_collapse_wait

Function vm_object_backing_collapse_wait

freebsd/vm/vm_object.c:852–873  ·  view source on GitHub ↗

* Waits for a backing object to clear a pending collapse and returns * it locked if it is an ANON object. */

Source from the content-addressed store, hash-verified

850 * it locked if it is an ANON object.
851 */
852static vm_object_t
853vm_object_backing_collapse_wait(vm_object_t object)
854{
855 vm_object_t backing_object;
856
857 VM_OBJECT_ASSERT_WLOCKED(object);
858
859 for (;;) {
860 backing_object = object->backing_object;
861 if (backing_object == NULL ||
862 (backing_object->flags & OBJ_ANON) == 0)
863 return (NULL);
864 VM_OBJECT_WLOCK(backing_object);
865 if ((backing_object->flags & (OBJ_DEAD | OBJ_COLLAPSING)) == 0)
866 break;
867 VM_OBJECT_WUNLOCK(object);
868 vm_object_pip_sleep(backing_object, "vmbckwait");
869 counter_u64_add(object_collapse_waits, 1);
870 VM_OBJECT_WLOCK(object);
871 }
872 return (backing_object);
873}
874
875/*
876 * vm_object_terminate_pages removes any remaining pageable pages

Callers 1

vm_object_collapseFunction · 0.85

Calls 2

vm_object_pip_sleepFunction · 0.85
counter_u64_addFunction · 0.50

Tested by

no test coverage detected