Lines Matching defs:anon

70 #include <vm/anon.h>
336 * replica's are represented by anon maps (amp). There's one amp per text file
562 * Check arguments. If a shared anon structure is given then
623 TRACE_3(TR_FAC_VM, TR_ANON_PROC, "anon proc:%p %lu %u",
654 "anon proc:%p %lu %u", seg, swresv, 0);
878 * have the anon array dynamically allocated itself so that
879 * we don't always have to allocate all the anon pointer slots.
881 * aren't trying to use an anon pointer slot beyond the end
882 * of the currently allocated anon array.
906 * Make sure that all the needed anon
910 * duplicate the anon array as is done
913 struct anon *ap;
929 * Prevent 2 threads from allocating anon
944 * Allocate the anon struct now.
956 * initialize the anon array entry.
1010 * If amp_cat == 1 then try and concat segments with anon maps
1137 * If either segment has private pages, create a new merged anon
1138 * array. If mergeing shared anon segments just decrement anon map's
1164 * XXX anon rwlock is not really needed because
1309 * there may be existing anon slots where we want to extend
1504 struct anon *ap, *newap;
1582 * If segment has anon reserved, reserve more for the new seg.
1584 * allocated anon slots; thus we reserve for the child as many slots
1587 * to write a shared pre-existing anon page.
1593 TRACE_3(TR_FAC_VM, TR_ANON_PROC, "anon proc:%p %lu %u",
1630 * Not attaching to a shared anon object.
1723 * If at least one of anon slots of a
1725 * all anon slots of a large page
2042 * Shared anon map is no longer in use. Before
2120 TRACE_3(TR_FAC_VM, TR_ANON_PROC, "anon proc:%p %lu %u",
2154 * Shared anon map is no longer in use. Before
2225 "anon proc:%p %lu %u", seg, len, 0);
2295 * Need to create a new anon map for the new segment.
2308 * Shared anon map is no longer in use. Before
2406 TRACE_3(TR_FAC_VM, TR_ANON_PROC, "anon proc:%p %lu %u",
2438 * Deallocate the vpage and anon pointers if necessary and possible.
2448 * up all the anon slot pointers that we can.
2469 * Shared anon map is no longer in use. Before
2491 "anon proc:%p %lu %u", seg, len, 0);
2501 * anon slot pointers that we were using.
2522 TRACE_3(TR_FAC_VM, TR_ANON_PROC, "anon proc:%p %lu %u",
2573 struct anon *ap = NULL;
2687 * If this is an anon page
2723 struct anon *ap, *oldap;
2772 * Always acquire the anon array lock to prevent 2 threads from
2773 * allocating separate anon slots for the same "addr".
2807 * initialize the anon array entry.
2858 * serializing on the anon array lock.
3065 * is a cow fault on an existing anon page in which case
3087 * we are one step closer to freeing up an anon slot.
3089 * NOTE: The original anon slot must be released while
3091 * other threads from obtaining a pointer to the anon slot
4136 * (S_READ_NOCOW case) and anon slots
5190 struct anon *ap;
5238 struct anon *fap = NULL;
5257 * If this is an anon page, we must find the
5341 struct anon *ap;
5442 * N.B. at this time the plp array has all the needed non-anon
5448 * 2 threads from allocating separate anon slots for
5532 struct anon *ap;
5562 * creating private pages (i.e., allocating anon slots)
5626 struct anon *ap;
5872 * on such segments still need an anon slot to read
5883 "anon proc:%p %lu %u", seg, 0, 0);
5895 struct anon *ap = NULL;
6276 * May need to re-align anon array to
6321 * don't take anon map lock here to avoid holding it
6324 * anon map lock here since it's a private segment and
6366 struct anon *ap, *oldap;
6415 * XXX anon rwlock is not really needed because this is a
6481 struct anon *ap;
6487 int anon = (amp != NULL) ? 1 : 0;
6502 if (anon && vp != NULL) {
6504 anon = 0;
6507 ASSERT(!anon ||
6514 if (anon) {
6517 panic("segvn_claim_pages: no anon slot");
6969 struct anon *oap, *ap;
7025 return (-1); /* one with and one without an anon */
7033 * Now we know we have two anon pointers - check to
7038 * XXX We cheat here and don't lock the anon slots. We can't because
7039 * we may have been called from the anon layer which might already
7094 struct anon *ap;
7103 * pages as well as anon pages. Is this appropriate here?
7258 struct anon *ap;
7421 * of anon slots of such pages.
7479 struct anon *ap;
7502 /* Grab the vnode/offset for the anon slot */
7514 /* A page exists for the anon slot */
7587 * (1) anon slots are populated or not
7625 * XXX only creates PAGESIZE pages if anon slots are not initialized.
7644 struct anon *ap;
7758 struct anon *i_ap;
7813 * we're locking, allocate anon slots if they
7946 * (1) anon slots are populated or not
8164 * underlying object; if anonmap is NULL, anon slots
8721 struct anon *ap;
8764 * Lock/Unlock anon pages over a given range. Return shadow list. This routine
8768 * supported for pure anon segments. MAP_PRIVATE segment pcache entries are
8772 * performance. To avoid this issue for shared segments shared anon map and
8773 * starting anon index are used for pcache entry tagging. This allows all
8774 * segments to share pcache entries for the same anon range and reduces pcache
8801 * shared by this segment anon map. Shared segment pcache entries belong to
8802 * anon map and are typically removed when anon map is freed after all
8803 * processes destroy the segments that use this anon map.
8855 * for now we only support pagelock to anon memory. We would have to
9022 * anon index so that we can share pcache entries with other segments
9299 struct anon *ap;
9304 * Lock and unlock anon array only once per large page.
9305 * anon_array_enter() locks the root anon slot according to
9306 * a_szc which can't change while anon map is locked. We lock
9307 * anon the first time through this loop and each time we
9308 * reach anon index that corresponds to a root of a large
9367 * Unlock anon if this is the last slot in a large page.
9431 * pcache is only used by pure anon segments.
9566 * drops to 0. anon map can't be freed until a_softlockcnt drops to 0
9582 * XXX only creates PAGESIZE pages if anon slots are not initialized.
9589 struct anon *ap = NULL;
9772 * Avoid creating anon maps with size bigger than the file size.
10013 * svntr free all its anon maps and remove it from the hash table.