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

Function swap_release_by_cred

freebsd/vm/swap_pager.c:353–377  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

351}
352
353void
354swap_release_by_cred(vm_ooffset_t decr, struct ucred *cred)
355{
356 u_long pdecr;
357#ifdef INVARIANTS
358 u_long prev;
359#endif
360
361 KASSERT((decr & PAGE_MASK) == 0, ("%s: decr: %ju & PAGE_MASK", __func__,
362 (uintmax_t)decr));
363
364 pdecr = atop(decr);
365#ifdef INVARIANTS
366 prev = atomic_fetchadd_long(&swap_reserved, -pdecr);
367 KASSERT(prev >= pdecr, ("swap_reserved < decr"));
368#else
369 atomic_subtract_long(&swap_reserved, pdecr);
370#endif
371
372 swap_release_by_cred_rlimit(pdecr, cred);
373#ifdef RACCT
374 if (racct_enable)
375 racct_sub_cred(cred, RACCT_SWAP, decr);
376#endif
377}
378
379static int swap_pager_full = 2; /* swap space exhaustion (task killing) */
380static int swap_pager_almost_full = 1; /* swap space exhaustion (w/hysteresis)*/

Callers 5

shm_dotruncate_lockedFunction · 0.85
vm_map_entry_deleteFunction · 0.85
vm_map_lookupFunction · 0.85
vm_object_destroyFunction · 0.85
swap_releaseFunction · 0.85

Calls 4

atomic_subtract_longFunction · 0.85
atomic_fetchadd_longFunction · 0.50
racct_sub_credFunction · 0.50

Tested by

no test coverage detected