MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / size_class

Function size_class

deps/jemalloc/src/sc.c:55–85  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53}
54
55static void
56size_class(
57 /* Output. */
58 sc_t *sc,
59 /* Configuration decisions. */
60 int lg_max_lookup, int lg_page, int lg_ngroup,
61 /* Inputs specific to the size class. */
62 int index, int lg_base, int lg_delta, int ndelta) {
63 sc->index = index;
64 sc->lg_base = lg_base;
65 sc->lg_delta = lg_delta;
66 sc->ndelta = ndelta;
67 sc->psz = (reg_size_compute(lg_base, lg_delta, ndelta)
68 % (ZU(1) << lg_page) == 0);
69 size_t size = (ZU(1) << lg_base) + (ZU(ndelta) << lg_delta);
70 if (index == 0) {
71 assert(!sc->psz);
72 }
73 if (size < (ZU(1) << (lg_page + lg_ngroup))) {
74 sc->bin = true;
75 sc->pgs = slab_size(lg_page, lg_base, lg_delta, ndelta);
76 } else {
77 sc->bin = false;
78 sc->pgs = 0;
79 }
80 if (size <= (ZU(1) << lg_max_lookup)) {
81 sc->lg_delta_lookup = lg_delta;
82 } else {
83 sc->lg_delta_lookup = 0;
84 }
85}
86
87static void
88size_classes(

Callers 1

size_classesFunction · 0.85

Calls 2

reg_size_computeFunction · 0.85
slab_sizeFunction · 0.85

Tested by

no test coverage detected