Lines Matching refs:object

112 static int	vm_object_page_collect_flush(vm_object_t object, vm_page_t p,
117 static void vm_object_qcollapse(vm_object_t object);
118 static void vm_object_vndeallocate(vm_object_t object);
151 static SYSCTL_NODE(_vm_stats, OID_AUTO, object, CTLFLAG_RD, 0,
183 vm_object_t object; in vm_object_zdtor() local
185 object = (vm_object_t)mem; in vm_object_zdtor()
186 KASSERT(object->ref_count == 0, in vm_object_zdtor()
187 ("object %p ref_count = %d", object, object->ref_count)); in vm_object_zdtor()
188 KASSERT(TAILQ_EMPTY(&object->memq), in vm_object_zdtor()
189 ("object %p has resident pages in its memq", object)); in vm_object_zdtor()
190 KASSERT(vm_radix_is_empty(&object->rtree), in vm_object_zdtor()
191 ("object %p has resident pages in its trie", object)); in vm_object_zdtor()
193 KASSERT(LIST_EMPTY(&object->rvq), in vm_object_zdtor()
195 object)); in vm_object_zdtor()
197 KASSERT(object->paging_in_progress == 0, in vm_object_zdtor()
199 object, object->paging_in_progress)); in vm_object_zdtor()
200 KASSERT(object->resident_page_count == 0, in vm_object_zdtor()
202 object, object->resident_page_count)); in vm_object_zdtor()
203 KASSERT(object->shadow_count == 0, in vm_object_zdtor()
205 object, object->shadow_count)); in vm_object_zdtor()
206 KASSERT(object->type == OBJT_DEAD, in vm_object_zdtor()
208 object, object->type)); in vm_object_zdtor()
215 vm_object_t object; in vm_object_zinit() local
217 object = (vm_object_t)mem; in vm_object_zinit()
218 rw_init_flags(&object->lock, "vm object", RW_DUPOK | RW_NEW); in vm_object_zinit()
221 object->type = OBJT_DEAD; in vm_object_zinit()
222 object->ref_count = 0; in vm_object_zinit()
223 vm_radix_init(&object->rtree); in vm_object_zinit()
224 object->paging_in_progress = 0; in vm_object_zinit()
225 object->resident_page_count = 0; in vm_object_zinit()
226 object->shadow_count = 0; in vm_object_zinit()
227 object->flags = OBJ_DEAD; in vm_object_zinit()
230 TAILQ_INSERT_TAIL(&vm_object_list, object, object_list); in vm_object_zinit()
236 _vm_object_allocate(objtype_t type, vm_pindex_t size, vm_object_t object) in _vm_object_allocate() argument
239 TAILQ_INIT(&object->memq); in _vm_object_allocate()
240 LIST_INIT(&object->shadow_head); in _vm_object_allocate()
242 object->type = type; in _vm_object_allocate()
244 pctrie_init(&object->un_pager.swp.swp_blks); in _vm_object_allocate()
258 object->flags = OBJ_ONEMAPPING; in _vm_object_allocate()
262 object->flags = OBJ_FICTITIOUS | OBJ_UNMANAGED; in _vm_object_allocate()
265 object->flags = OBJ_FICTITIOUS; in _vm_object_allocate()
268 object->flags = OBJ_UNMANAGED; in _vm_object_allocate()
271 object->flags = 0; in _vm_object_allocate()
276 object->size = size; in _vm_object_allocate()
277 object->domain.dr_policy = NULL; in _vm_object_allocate()
278 object->generation = 1; in _vm_object_allocate()
279 object->ref_count = 1; in _vm_object_allocate()
280 object->memattr = VM_MEMATTR_DEFAULT; in _vm_object_allocate()
281 object->cred = NULL; in _vm_object_allocate()
282 object->charge = 0; in _vm_object_allocate()
283 object->handle = NULL; in _vm_object_allocate()
284 object->backing_object = NULL; in _vm_object_allocate()
285 object->backing_object_offset = (vm_ooffset_t) 0; in _vm_object_allocate()
287 LIST_INIT(&object->rvq); in _vm_object_allocate()
289 umtx_shm_object_init(object); in _vm_object_allocate()
328 vm_object_clear_flag(vm_object_t object, u_short bits) in vm_object_clear_flag() argument
331 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_clear_flag()
332 object->flags &= ~bits; in vm_object_clear_flag()
345 vm_object_set_memattr(vm_object_t object, vm_memattr_t memattr) in vm_object_set_memattr() argument
348 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_set_memattr()
349 switch (object->type) { in vm_object_set_memattr()
357 if (!TAILQ_EMPTY(&object->memq)) in vm_object_set_memattr()
364 object); in vm_object_set_memattr()
366 object->memattr = memattr; in vm_object_set_memattr()
371 vm_object_pip_add(vm_object_t object, short i) in vm_object_pip_add() argument
374 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_pip_add()
375 object->paging_in_progress += i; in vm_object_pip_add()
379 vm_object_pip_subtract(vm_object_t object, short i) in vm_object_pip_subtract() argument
382 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_pip_subtract()
383 object->paging_in_progress -= i; in vm_object_pip_subtract()
387 vm_object_pip_wakeup(vm_object_t object) in vm_object_pip_wakeup() argument
390 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_pip_wakeup()
391 object->paging_in_progress--; in vm_object_pip_wakeup()
392 if ((object->flags & OBJ_PIPWNT) && object->paging_in_progress == 0) { in vm_object_pip_wakeup()
393 vm_object_clear_flag(object, OBJ_PIPWNT); in vm_object_pip_wakeup()
394 wakeup(object); in vm_object_pip_wakeup()
399 vm_object_pip_wakeupn(vm_object_t object, short i) in vm_object_pip_wakeupn() argument
402 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_pip_wakeupn()
404 object->paging_in_progress -= i; in vm_object_pip_wakeupn()
405 if ((object->flags & OBJ_PIPWNT) && object->paging_in_progress == 0) { in vm_object_pip_wakeupn()
406 vm_object_clear_flag(object, OBJ_PIPWNT); in vm_object_pip_wakeupn()
407 wakeup(object); in vm_object_pip_wakeupn()
412 vm_object_pip_wait(vm_object_t object, char *waitid) in vm_object_pip_wait() argument
415 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_pip_wait()
416 while (object->paging_in_progress) { in vm_object_pip_wait()
417 object->flags |= OBJ_PIPWNT; in vm_object_pip_wait()
418 VM_OBJECT_SLEEP(object, object, PVM, waitid, 0); in vm_object_pip_wait()
430 vm_object_t object; in vm_object_allocate() local
432 object = (vm_object_t)uma_zalloc(obj_zone, M_WAITOK); in vm_object_allocate()
433 _vm_object_allocate(type, size, object); in vm_object_allocate()
434 return (object); in vm_object_allocate()
445 vm_object_reference(vm_object_t object) in vm_object_reference() argument
447 if (object == NULL) in vm_object_reference()
449 VM_OBJECT_WLOCK(object); in vm_object_reference()
450 vm_object_reference_locked(object); in vm_object_reference()
451 VM_OBJECT_WUNLOCK(object); in vm_object_reference()
462 vm_object_reference_locked(vm_object_t object) in vm_object_reference_locked() argument
466 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_reference_locked()
467 object->ref_count++; in vm_object_reference_locked()
468 if (object->type == OBJT_VNODE) { in vm_object_reference_locked()
469 vp = object->handle; in vm_object_reference_locked()
478 vm_object_vndeallocate(vm_object_t object) in vm_object_vndeallocate() argument
480 struct vnode *vp = (struct vnode *) object->handle; in vm_object_vndeallocate()
482 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_vndeallocate()
483 KASSERT(object->type == OBJT_VNODE, in vm_object_vndeallocate()
487 if (object->ref_count == 0) { in vm_object_vndeallocate()
493 if (!umtx_shm_vnobj_persistent && object->ref_count == 1) in vm_object_vndeallocate()
494 umtx_shm_object_terminated(object); in vm_object_vndeallocate()
496 object->ref_count--; in vm_object_vndeallocate()
499 VM_OBJECT_WUNLOCK(object); in vm_object_vndeallocate()
515 vm_object_deallocate(vm_object_t object) in vm_object_deallocate() argument
519 while (object != NULL) { in vm_object_deallocate()
520 VM_OBJECT_WLOCK(object); in vm_object_deallocate()
521 if (object->type == OBJT_VNODE) { in vm_object_deallocate()
522 vm_object_vndeallocate(object); in vm_object_deallocate()
526 KASSERT(object->ref_count != 0, in vm_object_deallocate()
527 ("vm_object_deallocate: object deallocated too many times: %d", object->type)); in vm_object_deallocate()
535 object->ref_count--; in vm_object_deallocate()
536 if (object->ref_count > 1) { in vm_object_deallocate()
537 VM_OBJECT_WUNLOCK(object); in vm_object_deallocate()
539 } else if (object->ref_count == 1) { in vm_object_deallocate()
540 if (object->shadow_count == 0 && in vm_object_deallocate()
541 object->handle == NULL && in vm_object_deallocate()
542 (object->type == OBJT_DEFAULT || in vm_object_deallocate()
543 (object->type == OBJT_SWAP && in vm_object_deallocate()
544 (object->flags & OBJ_TMPFS_NODE) == 0))) { in vm_object_deallocate()
545 vm_object_set_flag(object, OBJ_ONEMAPPING); in vm_object_deallocate()
546 } else if ((object->shadow_count == 1) && in vm_object_deallocate()
547 (object->handle == NULL) && in vm_object_deallocate()
548 (object->type == OBJT_DEFAULT || in vm_object_deallocate()
549 object->type == OBJT_SWAP)) { in vm_object_deallocate()
552 robject = LIST_FIRST(&object->shadow_head); in vm_object_deallocate()
555 object->ref_count, in vm_object_deallocate()
556 object->shadow_count)); in vm_object_deallocate()
558 ("shadowed tmpfs v_object %p", object)); in vm_object_deallocate()
563 object->ref_count++; in vm_object_deallocate()
564 VM_OBJECT_WUNLOCK(object); in vm_object_deallocate()
588 VM_OBJECT_WUNLOCK(object); in vm_object_deallocate()
592 if (object == temp) { in vm_object_deallocate()
593 VM_OBJECT_WLOCK(object); in vm_object_deallocate()
596 } else if (object->paging_in_progress) { in vm_object_deallocate()
598 object->flags |= OBJ_PIPWNT; in vm_object_deallocate()
599 VM_OBJECT_SLEEP(object, object, in vm_object_deallocate()
603 if (object == temp) { in vm_object_deallocate()
604 VM_OBJECT_WLOCK(object); in vm_object_deallocate()
608 VM_OBJECT_WUNLOCK(object); in vm_object_deallocate()
612 object = robject; in vm_object_deallocate()
615 object = robject; in vm_object_deallocate()
616 vm_object_collapse(object); in vm_object_deallocate()
617 VM_OBJECT_WUNLOCK(object); in vm_object_deallocate()
622 VM_OBJECT_WUNLOCK(object); in vm_object_deallocate()
626 umtx_shm_object_terminated(object); in vm_object_deallocate()
627 temp = object->backing_object; in vm_object_deallocate()
629 KASSERT((object->flags & OBJ_TMPFS_NODE) == 0, in vm_object_deallocate()
630 ("shadowed tmpfs v_object 2 %p", object)); in vm_object_deallocate()
632 LIST_REMOVE(object, shadow_list); in vm_object_deallocate()
635 object->backing_object = NULL; in vm_object_deallocate()
642 if ((object->flags & OBJ_DEAD) == 0) in vm_object_deallocate()
643 vm_object_terminate(object); in vm_object_deallocate()
645 VM_OBJECT_WUNLOCK(object); in vm_object_deallocate()
646 object = temp; in vm_object_deallocate()
655 vm_object_destroy(vm_object_t object) in vm_object_destroy() argument
661 if (object->cred != NULL) { in vm_object_destroy()
662 swap_release_by_cred(object->charge, object->cred); in vm_object_destroy()
663 object->charge = 0; in vm_object_destroy()
664 crfree(object->cred); in vm_object_destroy()
665 object->cred = NULL; in vm_object_destroy()
671 uma_zfree(obj_zone, object); in vm_object_destroy()
679 vm_object_terminate_pages(vm_object_t object) in vm_object_terminate_pages() argument
684 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_terminate_pages()
694 TAILQ_FOREACH_SAFE(p, &object->memq, listq, p_next) { in vm_object_terminate_pages()
696 if ((object->flags & OBJ_UNMANAGED) == 0) in vm_object_terminate_pages()
702 p->object = NULL; in vm_object_terminate_pages()
716 if (object->resident_page_count != 0) { in vm_object_terminate_pages()
717 vm_radix_reclaim_allnodes(&object->rtree); in vm_object_terminate_pages()
718 TAILQ_INIT(&object->memq); in vm_object_terminate_pages()
719 object->resident_page_count = 0; in vm_object_terminate_pages()
720 if (object->type == OBJT_VNODE) in vm_object_terminate_pages()
721 vdrop(object->handle); in vm_object_terminate_pages()
733 vm_object_terminate(vm_object_t object) in vm_object_terminate() argument
736 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_terminate()
741 vm_object_set_flag(object, OBJ_DEAD); in vm_object_terminate()
746 vm_object_pip_wait(object, "objtrm"); in vm_object_terminate()
748 KASSERT(!object->paging_in_progress, in vm_object_terminate()
755 if (object->type == OBJT_VNODE) { in vm_object_terminate()
756 struct vnode *vp = (struct vnode *)object->handle; in vm_object_terminate()
761 vm_object_page_clean(object, 0, 0, OBJPC_SYNC); in vm_object_terminate()
762 VM_OBJECT_WUNLOCK(object); in vm_object_terminate()
770 VM_OBJECT_WLOCK(object); in vm_object_terminate()
773 KASSERT(object->ref_count == 0, in vm_object_terminate()
775 object->ref_count)); in vm_object_terminate()
777 if ((object->flags & OBJ_PG_DTOR) == 0) in vm_object_terminate()
778 vm_object_terminate_pages(object); in vm_object_terminate()
781 if (__predict_false(!LIST_EMPTY(&object->rvq))) in vm_object_terminate()
782 vm_reserv_break_all(object); in vm_object_terminate()
785 KASSERT(object->cred == NULL || object->type == OBJT_DEFAULT || in vm_object_terminate()
786 object->type == OBJT_SWAP, in vm_object_terminate()
787 ("%s: non-swap obj %p has cred", __func__, object)); in vm_object_terminate()
792 vm_pager_deallocate(object); in vm_object_terminate()
793 VM_OBJECT_WUNLOCK(object); in vm_object_terminate()
795 vm_object_destroy(object); in vm_object_terminate()
841 vm_object_page_clean(vm_object_t object, vm_ooffset_t start, vm_ooffset_t end, in vm_object_page_clean() argument
849 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_page_clean()
856 if ((object->flags & OBJ_MIGHTBEDIRTY) == 0 || in vm_object_page_clean()
857 object->resident_page_count == 0) in vm_object_page_clean()
865 tend = (end == 0) ? object->size : OFF_TO_IDX(end + PAGE_MASK); in vm_object_page_clean()
866 clearobjflags = tstart == 0 && tend >= object->size; in vm_object_page_clean()
870 curgeneration = object->generation; in vm_object_page_clean()
872 for (p = vm_page_find_least(object, tstart); p != NULL; p = np) { in vm_object_page_clean()
880 if (object->generation != curgeneration) { in vm_object_page_clean()
886 np = vm_page_find_least(object, pi); in vm_object_page_clean()
892 n = vm_object_page_collect_flush(object, p, pagerflags, in vm_object_page_clean()
898 if (object->generation != curgeneration) { in vm_object_page_clean()
921 np = vm_page_find_least(object, pi + n); in vm_object_page_clean()
928 vm_object_clear_flag(object, OBJ_MIGHTBEDIRTY); in vm_object_page_clean()
933 vm_object_page_collect_flush(vm_object_t object, vm_page_t p, int pagerflags, in vm_object_page_collect_flush() argument
940 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_page_collect_flush()
985 vm_object_sync(vm_object_t object, vm_ooffset_t offset, vm_size_t size, in vm_object_sync() argument
994 if (object == NULL) in vm_object_sync()
998 VM_OBJECT_WLOCK(object); in vm_object_sync()
999 while ((backing_object = object->backing_object) != NULL) { in vm_object_sync()
1001 offset += object->backing_object_offset; in vm_object_sync()
1002 VM_OBJECT_WUNLOCK(object); in vm_object_sync()
1003 object = backing_object; in vm_object_sync()
1004 if (object->size < OFF_TO_IDX(offset + size)) in vm_object_sync()
1005 size = IDX_TO_OFF(object->size) - offset; in vm_object_sync()
1019 if (object->type == OBJT_VNODE && in vm_object_sync()
1020 (object->flags & OBJ_MIGHTBEDIRTY) != 0 && in vm_object_sync()
1021 ((vp = object->handle)->v_vflag & VV_NOSYNC) == 0) { in vm_object_sync()
1022 VM_OBJECT_WUNLOCK(object); in vm_object_sync()
1026 atop(size) == object->size) { in vm_object_sync()
1040 VM_OBJECT_WLOCK(object); in vm_object_sync()
1041 res = vm_object_page_clean(object, offset, offset + size, in vm_object_sync()
1043 VM_OBJECT_WUNLOCK(object); in vm_object_sync()
1050 VM_OBJECT_WLOCK(object); in vm_object_sync()
1052 if ((object->type == OBJT_VNODE || in vm_object_sync()
1053 object->type == OBJT_DEVICE) && invalidate) { in vm_object_sync()
1054 if (object->type == OBJT_DEVICE) in vm_object_sync()
1065 vm_object_page_remove(object, OFF_TO_IDX(offset), in vm_object_sync()
1068 VM_OBJECT_WUNLOCK(object); in vm_object_sync()
1079 vm_object_advice_applies(vm_object_t object, int advice) in vm_object_advice_applies() argument
1082 if ((object->flags & OBJ_UNMANAGED) != 0) in vm_object_advice_applies()
1086 return ((object->type == OBJT_DEFAULT || object->type == OBJT_SWAP) && in vm_object_advice_applies()
1087 (object->flags & OBJ_ONEMAPPING) != 0); in vm_object_advice_applies()
1091 vm_object_madvise_freespace(vm_object_t object, int advice, vm_pindex_t pindex, in vm_object_madvise_freespace() argument
1095 if (advice == MADV_FREE && object->type == OBJT_SWAP) in vm_object_madvise_freespace()
1096 swap_pager_freespace(object, pindex, size); in vm_object_madvise_freespace()
1121 vm_object_madvise(vm_object_t object, vm_pindex_t pindex, vm_pindex_t end, in vm_object_madvise() argument
1128 if (object == NULL) in vm_object_madvise()
1132 VM_OBJECT_WLOCK(object); in vm_object_madvise()
1133 if (!vm_object_advice_applies(object, advice)) { in vm_object_madvise()
1134 VM_OBJECT_WUNLOCK(object); in vm_object_madvise()
1137 for (m = vm_page_find_least(object, pindex); pindex < end; pindex++) { in vm_object_madvise()
1138 tobject = object; in vm_object_madvise()
1152 if (object->backing_object == NULL) { in vm_object_madvise()
1155 vm_object_madvise_freespace(object, advice, in vm_object_madvise()
1176 if (tobject != object) in vm_object_madvise()
1204 if (object != tobject) in vm_object_madvise()
1206 VM_OBJECT_WUNLOCK(object); in vm_object_madvise()
1222 if (tobject != object) in vm_object_madvise()
1225 VM_OBJECT_WUNLOCK(object); in vm_object_madvise()
1240 vm_object_t *object, /* IN/OUT */ in vm_object_shadow() argument
1247 source = *object; in vm_object_shadow()
1303 *object = result; in vm_object_shadow()
1321 orig_object = entry->object.vm_object; in vm_object_split()
1434 entry->object.vm_object = new_object; in vm_object_split()
1444 vm_object_collapse_scan_wait(vm_object_t object, vm_page_t p, vm_page_t next, in vm_object_collapse_scan_wait() argument
1449 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_collapse_scan_wait()
1450 backing_object = object->backing_object; in vm_object_collapse_scan_wait()
1454 KASSERT(p == NULL || p->object == object || p->object == backing_object, in vm_object_collapse_scan_wait()
1455 ("invalid ownership %p %p %p", p, object, backing_object)); in vm_object_collapse_scan_wait()
1460 VM_OBJECT_WUNLOCK(object); in vm_object_collapse_scan_wait()
1467 VM_OBJECT_WLOCK(object); in vm_object_collapse_scan_wait()
1473 vm_object_scan_all_shadowed(vm_object_t object) in vm_object_scan_all_shadowed() argument
1479 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_scan_all_shadowed()
1480 VM_OBJECT_ASSERT_WLOCKED(object->backing_object); in vm_object_scan_all_shadowed()
1482 backing_object = object->backing_object; in vm_object_scan_all_shadowed()
1488 pi = backing_offset_index = OFF_TO_IDX(object->backing_object_offset); in vm_object_scan_all_shadowed()
1509 if (new_pindex >= object->size) in vm_object_scan_all_shadowed()
1520 pp = vm_page_lookup(object, new_pindex); in vm_object_scan_all_shadowed()
1522 !vm_pager_has_page(object, new_pindex, NULL, NULL)) in vm_object_scan_all_shadowed()
1529 vm_object_collapse_scan(vm_object_t object, int op) in vm_object_collapse_scan() argument
1535 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_collapse_scan()
1536 VM_OBJECT_ASSERT_WLOCKED(object->backing_object); in vm_object_collapse_scan()
1538 backing_object = object->backing_object; in vm_object_collapse_scan()
1539 backing_offset_index = OFF_TO_IDX(object->backing_object_offset); in vm_object_collapse_scan()
1558 next = vm_object_collapse_scan_wait(object, p, next, op); in vm_object_collapse_scan()
1562 KASSERT(p->object == backing_object, in vm_object_collapse_scan()
1566 new_pindex >= object->size) { in vm_object_collapse_scan()
1584 pp = vm_page_lookup(object, new_pindex); in vm_object_collapse_scan()
1598 next = vm_object_collapse_scan_wait(object, pp, next, in vm_object_collapse_scan()
1606 if (pp != NULL || vm_pager_has_page(object, new_pindex, NULL, in vm_object_collapse_scan()
1633 if (vm_page_rename(p, object, new_pindex)) { in vm_object_collapse_scan()
1634 next = vm_object_collapse_scan_wait(object, NULL, next, in vm_object_collapse_scan()
1648 vm_reserv_rename(p, object, backing_object, in vm_object_collapse_scan()
1662 vm_object_qcollapse(vm_object_t object) in vm_object_qcollapse() argument
1664 vm_object_t backing_object = object->backing_object; in vm_object_qcollapse()
1666 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_qcollapse()
1672 vm_object_collapse_scan(object, OBSC_COLLAPSE_NOWAIT); in vm_object_qcollapse()
1683 vm_object_collapse(vm_object_t object) in vm_object_collapse() argument
1687 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_collapse()
1695 if ((backing_object = object->backing_object) == NULL) in vm_object_collapse()
1707 object->handle != NULL || in vm_object_collapse()
1708 (object->type != OBJT_DEFAULT && in vm_object_collapse()
1709 object->type != OBJT_SWAP) || in vm_object_collapse()
1710 (object->flags & OBJ_DEAD)) { in vm_object_collapse()
1715 if (object->paging_in_progress != 0 || in vm_object_collapse()
1717 vm_object_qcollapse(object); in vm_object_collapse()
1733 vm_object_pip_add(object, 1); in vm_object_collapse()
1740 vm_object_collapse_scan(object, OBSC_COLLAPSE_WAIT); in vm_object_collapse()
1764 object, in vm_object_collapse()
1765 OFF_TO_IDX(object->backing_object_offset), TRUE); in vm_object_collapse()
1773 LIST_REMOVE(object, shadow_list); in vm_object_collapse()
1780 object, shadow_list); in vm_object_collapse()
1786 object->backing_object = backing_object->backing_object; in vm_object_collapse()
1787 object->backing_object_offset += in vm_object_collapse()
1806 vm_object_pip_wakeup(object); in vm_object_collapse()
1813 if (object->resident_page_count != object->size && in vm_object_collapse()
1814 !vm_object_scan_all_shadowed(object)) { in vm_object_collapse()
1824 LIST_REMOVE(object, shadow_list); in vm_object_collapse()
1828 if ((object->backing_object = new_backing_object) != NULL) { in vm_object_collapse()
1832 object, in vm_object_collapse()
1838 object->backing_object_offset += in vm_object_collapse()
1884 vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end, in vm_object_page_remove() argument
1890 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_page_remove()
1891 KASSERT((object->flags & OBJ_UNMANAGED) == 0 || in vm_object_page_remove()
1893 ("vm_object_page_remove: illegal options for object %p", object)); in vm_object_page_remove()
1894 if (object->resident_page_count == 0) in vm_object_page_remove()
1896 vm_object_pip_add(object, 1); in vm_object_page_remove()
1898 p = vm_page_find_least(object, start); in vm_object_page_remove()
1918 VM_OBJECT_WUNLOCK(object); in vm_object_page_remove()
1920 VM_OBJECT_WLOCK(object); in vm_object_page_remove()
1925 object->ref_count != 0) in vm_object_page_remove()
1934 VM_OBJECT_WUNLOCK(object); in vm_object_page_remove()
1936 VM_OBJECT_WLOCK(object); in vm_object_page_remove()
1943 object->ref_count != 0) in vm_object_page_remove()
1948 if ((options & OBJPR_NOTMAPPED) == 0 && object->ref_count != 0) in vm_object_page_remove()
1954 vm_object_pip_wakeup(object); in vm_object_page_remove()
1974 vm_object_page_noreuse(vm_object_t object, vm_pindex_t start, vm_pindex_t end) in vm_object_page_noreuse() argument
1979 VM_OBJECT_ASSERT_LOCKED(object); in vm_object_page_noreuse()
1980 KASSERT((object->flags & (OBJ_FICTITIOUS | OBJ_UNMANAGED)) == 0, in vm_object_page_noreuse()
1981 ("vm_object_page_noreuse: illegal object %p", object)); in vm_object_page_noreuse()
1982 if (object->resident_page_count == 0) in vm_object_page_noreuse()
1984 p = vm_page_find_least(object, start); in vm_object_page_noreuse()
2011 vm_object_populate(vm_object_t object, vm_pindex_t start, vm_pindex_t end) in vm_object_populate() argument
2017 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_populate()
2019 m = vm_page_grab(object, pindex, VM_ALLOC_NORMAL); in vm_object_populate()
2021 rv = vm_pager_get_pages(object, &m, 1, NULL, NULL); in vm_object_populate()
2035 m = vm_page_lookup(object, start); in vm_object_populate()
2163 vm_object_set_writeable_dirty(vm_object_t object) in vm_object_set_writeable_dirty() argument
2166 VM_OBJECT_ASSERT_WLOCKED(object); in vm_object_set_writeable_dirty()
2167 if (object->type != OBJT_VNODE) { in vm_object_set_writeable_dirty()
2168 if ((object->flags & OBJ_TMPFS_NODE) != 0) { in vm_object_set_writeable_dirty()
2169 KASSERT(object->type == OBJT_SWAP, ("non-swap tmpfs")); in vm_object_set_writeable_dirty()
2170 vm_object_set_flag(object, OBJ_TMPFS_DIRTY); in vm_object_set_writeable_dirty()
2174 object->generation++; in vm_object_set_writeable_dirty()
2175 if ((object->flags & OBJ_MIGHTBEDIRTY) != 0) in vm_object_set_writeable_dirty()
2177 vm_object_set_flag(object, OBJ_MIGHTBEDIRTY); in vm_object_set_writeable_dirty()
2189 vm_object_unwire(vm_object_t object, vm_ooffset_t offset, vm_size_t length, in vm_object_unwire() argument
2202 if ((object->flags & OBJ_FICTITIOUS) != 0) in vm_object_unwire()
2208 VM_OBJECT_RLOCK(object); in vm_object_unwire()
2209 m = vm_page_find_least(object, pindex); in vm_object_unwire()
2217 tobject = object; in vm_object_unwire()
2241 for (tobject = object; locked_depth >= 1; in vm_object_unwire()
2256 for (tobject = object; locked_depth >= 1; locked_depth--) { in vm_object_unwire()
2264 vm_object_vnode(vm_object_t object) in vm_object_vnode() argument
2267 VM_OBJECT_ASSERT_LOCKED(object); in vm_object_vnode()
2268 if (object->type == OBJT_VNODE) in vm_object_vnode()
2269 return (object->handle); in vm_object_vnode()
2270 if (object->type == OBJT_SWAP && (object->flags & OBJ_TMPFS) != 0) in vm_object_vnode()
2271 return (object->un_pager.swp.swp_tmpfs); in vm_object_vnode()
2425 _vm_object_in_map(vm_map_t map, vm_object_t object, vm_map_entry_t entry) in _vm_object_in_map() argument
2439 if (_vm_object_in_map(map, object, tmpe)) { in _vm_object_in_map()
2445 tmpm = entry->object.sub_map; in _vm_object_in_map()
2449 if (_vm_object_in_map(tmpm, object, tmpe)) { in _vm_object_in_map()
2454 } else if ((obj = entry->object.vm_object) != NULL) { in _vm_object_in_map()
2456 if (obj == object) { in _vm_object_in_map()
2464 vm_object_in_map(vm_object_t object) in vm_object_in_map() argument
2472 if (_vm_object_in_map(&p->p_vmspace->vm_map, object, 0)) { in vm_object_in_map()
2478 if (_vm_object_in_map(kernel_map, object, 0)) in vm_object_in_map()
2485 vm_object_t object; in DB_SHOW_COMMAND() local
2491 TAILQ_FOREACH(object, &vm_object_list, object_list) { in DB_SHOW_COMMAND()
2492 if (object->handle == NULL && in DB_SHOW_COMMAND()
2493 (object->type == OBJT_DEFAULT || object->type == OBJT_SWAP)) { in DB_SHOW_COMMAND()
2494 if (object->ref_count == 0) { in DB_SHOW_COMMAND()
2496 (long)object->size); in DB_SHOW_COMMAND()
2498 if (!vm_object_in_map(object)) { in DB_SHOW_COMMAND()
2502 object->ref_count, (u_long)object->size, in DB_SHOW_COMMAND()
2503 (u_long)object->size, in DB_SHOW_COMMAND()
2504 (void *)object->backing_object); in DB_SHOW_COMMAND()
2513 DB_SHOW_COMMAND(object, vm_object_print_static) in DB_SHOW_COMMAND() argument
2516 vm_object_t object = (vm_object_t)addr; in DB_SHOW_COMMAND() local
2526 if (object == NULL) in DB_SHOW_COMMAND()
2531 object, (int)object->type, (uintmax_t)object->size, in DB_SHOW_COMMAND()
2532 object->resident_page_count, object->ref_count, object->flags, in DB_SHOW_COMMAND()
2533 object->cred ? object->cred->cr_ruid : -1, (uintmax_t)object->charge); in DB_SHOW_COMMAND()
2535 object->shadow_count, in DB_SHOW_COMMAND()
2536 object->backing_object ? object->backing_object->ref_count : 0, in DB_SHOW_COMMAND()
2537 object->backing_object, (uintmax_t)object->backing_object_offset); in DB_SHOW_COMMAND()
2544 TAILQ_FOREACH(p, &object->memq, listq) { in DB_SHOW_COMMAND()
2579 vm_object_t object; in DB_SHOW_COMMAND() local
2586 TAILQ_FOREACH(object, &vm_object_list, object_list) { in DB_SHOW_COMMAND()
2587 db_printf("new object: %p\n", (void *)object); in DB_SHOW_COMMAND()
2598 TAILQ_FOREACH(m, &object->memq, listq) { in DB_SHOW_COMMAND()