Lines Matching refs:pg
107 struct vm_page *pg = anon->an_page, *pg2 __diagused; in uvm_anfree() local
119 if (__predict_true(pg != NULL)) { in uvm_anfree()
128 if (__predict_false(pg->loan_count != 0)) { in uvm_anfree()
130 KASSERT(pg2 == pg); in uvm_anfree()
139 if (__predict_false(pg->uobject != NULL)) { in uvm_anfree()
140 mutex_enter(&pg->interlock); in uvm_anfree()
141 KASSERT(pg->loan_count > 0); in uvm_anfree()
142 pg->loan_count--; in uvm_anfree()
143 pg->uanon = NULL; in uvm_anfree()
144 mutex_exit(&pg->interlock); in uvm_anfree()
145 rw_exit(pg->uobject->vmobjlock); in uvm_anfree()
153 KASSERT((pg->flags & PG_RELEASED) == 0); in uvm_anfree()
154 pmap_page_protect(pg, VM_PROT_NONE); in uvm_anfree()
161 if (__predict_false((pg->flags & PG_BUSY) != 0)) { in uvm_anfree()
162 pg->flags |= PG_RELEASED; in uvm_anfree()
166 uvm_pagefree(pg); in uvm_anfree()
168 "freed now!", (uintptr_t)anon, (uintptr_t)pg, in uvm_anfree()
212 struct vm_page *pg; in uvm_anon_lockloanpg() local
226 while (((pg = anon->an_page) != NULL) && pg->loan_count != 0) { in uvm_anon_lockloanpg()
227 mutex_enter(&pg->interlock); in uvm_anon_lockloanpg()
228 if (pg->uobject) { in uvm_anon_lockloanpg()
234 if (!rw_tryenter(pg->uobject->vmobjlock, RW_WRITER)) { in uvm_anon_lockloanpg()
241 mutex_exit(&pg->interlock); in uvm_anon_lockloanpg()
255 if (pg->uobject == NULL && (pg->flags & PG_ANON) == 0) { in uvm_anon_lockloanpg()
256 pg->flags |= PG_ANON; in uvm_anon_lockloanpg()
257 pg->loan_count--; in uvm_anon_lockloanpg()
259 mutex_exit(&pg->interlock); in uvm_anon_lockloanpg()
262 return pg; in uvm_anon_lockloanpg()
277 struct vm_page *pg; in uvm_anon_pagein() local
309 pg = anon->an_page; in uvm_anon_pagein()
310 uobj = pg->uobject; in uvm_anon_pagein()
315 uvm_pagemarkdirty(pg, UVM_PAGE_STATUS_DIRTY); in uvm_anon_pagein()
321 uvm_pagelock(pg); in uvm_anon_pagein()
322 uvm_pagedeactivate(pg); in uvm_anon_pagein()
323 uvm_pageunlock(pg); in uvm_anon_pagein()
362 struct vm_page *pg = anon->an_page; in uvm_anon_release() local
366 KASSERT(pg != NULL); in uvm_anon_release()
367 KASSERT((pg->flags & PG_RELEASED) != 0); in uvm_anon_release()
368 KASSERT((pg->flags & PG_BUSY) != 0); in uvm_anon_release()
369 KASSERT(pg->uobject == NULL); in uvm_anon_release()
370 KASSERT(pg->uanon == anon); in uvm_anon_release()
371 KASSERT(pg->loan_count == 0); in uvm_anon_release()
374 if ((pg->flags & PG_PAGEOUT) != 0) { in uvm_anon_release()
375 pg->flags &= ~PG_PAGEOUT; in uvm_anon_release()
379 uvm_pagefree(pg); in uvm_anon_release()