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

Function keg_layout_one

freebsd/vm/uma_core.c:2051–2075  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2049};
2050
2051static void
2052keg_layout_one(uma_keg_t keg, u_int rsize, u_int slabsize, u_int fmt,
2053 struct keg_layout_result *kl)
2054{
2055 u_int total;
2056
2057 kl->format = fmt;
2058 kl->slabsize = slabsize;
2059
2060 /* Handle INTERNAL as inline with an extra page. */
2061 if ((fmt & UMA_ZFLAG_INTERNAL) != 0) {
2062 kl->format &= ~UMA_ZFLAG_INTERNAL;
2063 kl->slabsize += PAGE_SIZE;
2064 }
2065
2066 kl->ipers = slab_ipers_hdr(keg->uk_size, rsize, kl->slabsize,
2067 (fmt & UMA_ZFLAG_OFFPAGE) == 0);
2068
2069 /* Account for memory used by an offpage slab header. */
2070 total = kl->slabsize;
2071 if ((fmt & UMA_ZFLAG_OFFPAGE) != 0)
2072 total += slabzone(kl->ipers)->uz_keg->uk_rsize;
2073
2074 kl->eff = UMA_FRAC_FIXPT(kl->ipers * rsize, total);
2075}
2076
2077/*
2078 * Determine the format of a uma keg. This determines where the slab header

Callers 1

keg_layoutFunction · 0.85

Calls 2

slab_ipers_hdrFunction · 0.85
slabzoneFunction · 0.85

Tested by

no test coverage detected