Symbol: slab
lib/libc/stdlib/dmalloc.c
1007
slab_t slab;
lib/libc/stdlib/dmalloc.c
1022
if ((slab = region->slab) == NULL)
lib/libc/stdlib/dmalloc.c
1023
slab = (void *)((uintptr_t)ptr & region->mask);
lib/libc/stdlib/dmalloc.c
1024
MASSERT(slab != NULL);
lib/libc/stdlib/dmalloc.c
1025
MASSERT(slab->magic == ZALLOC_SLAB_MAGIC);
lib/libc/stdlib/dmalloc.c
1033
if (slab->chunk_size < sizeof(weirdary))
lib/libc/stdlib/dmalloc.c
1034
bcopy(weirdary, ptr, slab->chunk_size);
lib/libc/stdlib/dmalloc.c
1043
if (slgd->masked == 0 && slab->chunk_size <= NOMSLABSIZE) {
lib/libc/stdlib/dmalloc.c
1046
zinfo = &slgd->zone[slab->zone_index];
lib/libc/stdlib/dmalloc.c
1060
bno = ((uintptr_t)ptr - (uintptr_t)slab->chunks) / slab->chunk_size;
lib/libc/stdlib/dmalloc.c
1063
bmp = &slab->bitmap[bmi];
lib/libc/stdlib/dmalloc.c
1065
MASSERT(bmi >= 0 && bmi < slab->nmax);
lib/libc/stdlib/dmalloc.c
1069
if (slab->slgd == slgd) {
lib/libc/stdlib/dmalloc.c
1077
atomic_add_int(&slab->navail, 1);
lib/libc/stdlib/dmalloc.c
1078
if (slab->free_index > bmi) {
lib/libc/stdlib/dmalloc.c
1079
slab->free_index = bmi;
lib/libc/stdlib/dmalloc.c
1080
slab->free_bit = bno;
lib/libc/stdlib/dmalloc.c
1081
} else if (slab->free_index == bmi &&
lib/libc/stdlib/dmalloc.c
1082
slab->free_bit > bno) {
lib/libc/stdlib/dmalloc.c
1083
slab->free_bit = bno;
lib/libc/stdlib/dmalloc.c
1085
zinfo = &slgd->zone[slab->zone_index];
lib/libc/stdlib/dmalloc.c
1094
if (slab->state == FULL) {
lib/libc/stdlib/dmalloc.c
1095
TAILQ_REMOVE(&slgd->full_zones, slab, entry);
lib/libc/stdlib/dmalloc.c
1096
slab->state = AVAIL;
lib/libc/stdlib/dmalloc.c
1098
slab->next = stmp;
lib/libc/stdlib/dmalloc.c
1099
zinfo->avail_base = slab;
lib/libc/stdlib/dmalloc.c
1102
slab = zinfo->avail_base;
lib/libc/stdlib/dmalloc.c
1103
zinfo->avail_base = slab->next;
lib/libc/stdlib/dmalloc.c
1105
slabterm(slgd, slab);
lib/libc/stdlib/dmalloc.c
1115
if (slab->navail == slab->nmax && slab->state == AVAIL) {
lib/libc/stdlib/dmalloc.c
1120
while ((stmp = *slabp) != slab)
lib/libc/stdlib/dmalloc.c
1122
*slabp = slab->next;
lib/libc/stdlib/dmalloc.c
1130
slabterm(slgd, slab);
lib/libc/stdlib/dmalloc.c
1131
} else if (slab->slab_size > BIGSLABSIZE) {
lib/libc/stdlib/dmalloc.c
1136
slabterm(slgd, slab);
lib/libc/stdlib/dmalloc.c
1146
slab->state = EMPTY;
lib/libc/stdlib/dmalloc.c
1147
slab->next = stmp->next;
lib/libc/stdlib/dmalloc.c
1148
zinfo->empty_base = slab;
lib/libc/stdlib/dmalloc.c
1156
slab->state = EMPTY;
lib/libc/stdlib/dmalloc.c
1157
slab->next = zinfo->empty_base;
lib/libc/stdlib/dmalloc.c
1158
zinfo->empty_base = slab;
lib/libc/stdlib/dmalloc.c
1161
} else if (slab->slgd == NULL && slab->navail + 1 == slab->nmax) {
lib/libc/stdlib/dmalloc.c
1172
if (slab->slgd == NULL && slab->navail + 1 == slab->nmax) {
lib/libc/stdlib/dmalloc.c
1178
MASSERT(slab->state == AVAIL);
lib/libc/stdlib/dmalloc.c
1179
atomic_add_int(&slab->navail, 1);
lib/libc/stdlib/dmalloc.c
1180
zinfo = &sldepot->zone[slab->zone_index];
lib/libc/stdlib/dmalloc.c
1182
while (slab != *slabp)
lib/libc/stdlib/dmalloc.c
1184
*slabp = slab->next;
lib/libc/stdlib/dmalloc.c
1191
slab->state = EMPTY;
lib/libc/stdlib/dmalloc.c
1192
slab->next = zinfo->empty_base;
lib/libc/stdlib/dmalloc.c
1193
zinfo->empty_base = slab;
lib/libc/stdlib/dmalloc.c
1196
slab = zinfo->empty_base;
lib/libc/stdlib/dmalloc.c
1197
zinfo->empty_base = slab->next;
lib/libc/stdlib/dmalloc.c
1199
slab->state = UNKNOWN;
lib/libc/stdlib/dmalloc.c
1202
slabfree(slab);
lib/libc/stdlib/dmalloc.c
1207
atomic_add_int(&slab->navail, 1);
lib/libc/stdlib/dmalloc.c
1217
atomic_add_int(&slab->navail, 1);
lib/libc/stdlib/dmalloc.c
1234
slab_t slab;
lib/libc/stdlib/dmalloc.c
1262
slab = zinfo->avail_base;
lib/libc/stdlib/dmalloc.c
1263
if (slab) {
lib/libc/stdlib/dmalloc.c
1264
MASSERT(slab->slgd == NULL);
lib/libc/stdlib/dmalloc.c
1265
slab->slgd = slgd;
lib/libc/stdlib/dmalloc.c
1266
zinfo->avail_base = slab->next;
lib/libc/stdlib/dmalloc.c
1270
return slab;
lib/libc/stdlib/dmalloc.c
1280
slab = NULL;
lib/libc/stdlib/dmalloc.c
1290
chunk_offset = roundup2(sizeof(*slab), chunk_size);
lib/libc/stdlib/dmalloc.c
1293
chunk_offset = sizeof(*slab) + chunking - 1;
lib/libc/stdlib/dmalloc.c
1425
if ((slab = _vmem_alloc(ri, slab_size)) != NULL)
lib/libc/stdlib/dmalloc.c
1440
slab = _vmem_alloc(ri, slab_size);
lib/libc/stdlib/dmalloc.c
1441
if (slab) {
lib/libc/stdlib/dmalloc.c
1463
slab = _vmem_alloc(ri, slab_size);
lib/libc/stdlib/dmalloc.c
1464
if (slab) {
lib/libc/stdlib/dmalloc.c
1509
MASSERT(region->slab == NULL);
lib/libc/stdlib/dmalloc.c
1511
save = slab;
lib/libc/stdlib/dmalloc.c
1512
slab = memalloc(sizeof(*slab), 0);
lib/libc/stdlib/dmalloc.c
1513
bzero(slab, sizeof(*slab));
lib/libc/stdlib/dmalloc.c
1514
slab->chunks = save;
lib/libc/stdlib/dmalloc.c
1516
region[j].slab = slab;
lib/libc/stdlib/dmalloc.c
1519
bzero(slab, sizeof(*slab));
lib/libc/stdlib/dmalloc.c
1520
slab->chunks = (char *)slab + chunk_offset;
lib/libc/stdlib/dmalloc.c
1534
slab->magic = ZALLOC_SLAB_MAGIC;
lib/libc/stdlib/dmalloc.c
1535
slab->navail = maxchunks;
lib/libc/stdlib/dmalloc.c
1536
slab->nmax = maxchunks;
lib/libc/stdlib/dmalloc.c
1537
slab->slab_size = slab_size;
lib/libc/stdlib/dmalloc.c
1538
slab->chunk_size = chunk_size;
lib/libc/stdlib/dmalloc.c
1539
slab->zone_index = zi;
lib/libc/stdlib/dmalloc.c
1540
slab->slgd = slgd;
lib/libc/stdlib/dmalloc.c
1541
slab->state = UNKNOWN;
lib/libc/stdlib/dmalloc.c
1542
slab->region = region;
lib/libc/stdlib/dmalloc.c
1546
slab->bitmap[ri >> LONG_BITS_SHIFT] = ULONG_MAX;
lib/libc/stdlib/dmalloc.c
1548
slab->bitmap[ri >> LONG_BITS_SHIFT] =
lib/libc/stdlib/dmalloc.c
1551
return (slab);
lib/libc/stdlib/dmalloc.c
1558
slabfree(slab_t slab)
lib/libc/stdlib/dmalloc.c
1563
if (slab->region->slab == slab) {
lib/libc/stdlib/dmalloc.c
1567
nswath = slab->slab_size / NREGIONS_SIZE;
lib/libc/stdlib/dmalloc.c
1569
slab->region[j].slab = NULL;
lib/libc/stdlib/dmalloc.c
1570
slab->magic = 0;
lib/libc/stdlib/dmalloc.c
1571
_vmem_free(slab->chunks, slab->slab_size);
lib/libc/stdlib/dmalloc.c
1572
memfree(slab, 0);
lib/libc/stdlib/dmalloc.c
1577
slab->magic = 0;
lib/libc/stdlib/dmalloc.c
1578
_vmem_free(slab, slab->slab_size);
lib/libc/stdlib/dmalloc.c
1587
slabterm(slglobaldata_t slgd, slab_t slab)
lib/libc/stdlib/dmalloc.c
1591
int zi = slab->zone_index;
lib/libc/stdlib/dmalloc.c
1593
slab->slgd = NULL;
lib/libc/stdlib/dmalloc.c
1603
if (slab->navail == slab->nmax) {
lib/libc/stdlib/dmalloc.c
1604
slab->state = EMPTY;
lib/libc/stdlib/dmalloc.c
1605
slab->next = zinfo->empty_base;
lib/libc/stdlib/dmalloc.c
1606
zinfo->empty_base = slab;
lib/libc/stdlib/dmalloc.c
1609
slab->state = AVAIL;
lib/libc/stdlib/dmalloc.c
1610
slab->next = zinfo->avail_base;
lib/libc/stdlib/dmalloc.c
1611
zinfo->avail_base = slab;
lib/libc/stdlib/dmalloc.c
1619
slab = zinfo->empty_base;
lib/libc/stdlib/dmalloc.c
1620
zinfo->empty_base = slab->next;
lib/libc/stdlib/dmalloc.c
1622
slab->state = UNKNOWN;
lib/libc/stdlib/dmalloc.c
1625
slabfree(slab);
lib/libc/stdlib/dmalloc.c
177
typedef struct slab *slab_t;
lib/libc/stdlib/dmalloc.c
181
slab_t slab; /* conditional out of band slab */
lib/libc/stdlib/dmalloc.c
212
TAILQ_HEAD(slab_list, slab);
lib/libc/stdlib/dmalloc.c
218
struct slab *next; /* slabs with available space */
lib/libc/stdlib/dmalloc.c
219
TAILQ_ENTRY(slab) entry;
lib/libc/stdlib/dmalloc.c
331
static void slabfree(slab_t slab);
lib/libc/stdlib/dmalloc.c
332
static void slabterm(slglobaldata_t slgd, slab_t slab);
lib/libc/stdlib/dmalloc.c
490
slab_t slab;
lib/libc/stdlib/dmalloc.c
508
while ((slab = zinfo->empty_base) != NULL) {
lib/libc/stdlib/dmalloc.c
509
zinfo->empty_base = slab->next;
lib/libc/stdlib/dmalloc.c
511
slabterm(slgd, slab);
lib/libc/stdlib/dmalloc.c
514
while ((slab = zinfo->avail_base) != NULL) {
lib/libc/stdlib/dmalloc.c
515
zinfo->avail_base = slab->next;
lib/libc/stdlib/dmalloc.c
517
slabterm(slgd, slab);
lib/libc/stdlib/dmalloc.c
520
while ((slab = TAILQ_FIRST(&slgd->full_zones)) != NULL) {
lib/libc/stdlib/dmalloc.c
521
TAILQ_REMOVE(&slgd->full_zones, slab, entry);
lib/libc/stdlib/dmalloc.c
522
slabterm(slgd, slab);
lib/libc/stdlib/dmalloc.c
795
slab_t slab;
lib/libc/stdlib/dmalloc.c
844
if ((slab = zinfo->avail_base) == NULL) {
lib/libc/stdlib/dmalloc.c
845
if ((slab = zinfo->empty_base) == NULL) {
lib/libc/stdlib/dmalloc.c
849
slab = slaballoc(zi, chunking, size);
lib/libc/stdlib/dmalloc.c
850
if (slab == NULL)
lib/libc/stdlib/dmalloc.c
852
slab->next = zinfo->avail_base;
lib/libc/stdlib/dmalloc.c
853
zinfo->avail_base = slab;
lib/libc/stdlib/dmalloc.c
855
slab->state = AVAIL;
lib/libc/stdlib/dmalloc.c
863
zinfo->empty_base = slab->next;
lib/libc/stdlib/dmalloc.c
864
slab->next = zinfo->avail_base;
lib/libc/stdlib/dmalloc.c
865
zinfo->avail_base = slab;
lib/libc/stdlib/dmalloc.c
867
slab->state = AVAIL;
lib/libc/stdlib/dmalloc.c
880
bno = slab->free_bit;
lib/libc/stdlib/dmalloc.c
881
bmi = slab->free_index;
lib/libc/stdlib/dmalloc.c
882
bmp = &slab->bitmap[bmi];
lib/libc/stdlib/dmalloc.c
885
obj = slab->chunks + ((bmi << LONG_BITS_SHIFT) + bno) * size;
lib/libc/stdlib/dmalloc.c
886
slab->free_bit = (bno + 1) & (LONG_BITS - 1);
lib/libc/stdlib/dmalloc.c
887
atomic_add_int(&slab->navail, -1);
lib/libc/stdlib/dmalloc.c
896
if (slab->navail == 0) {
lib/libc/stdlib/dmalloc.c
897
zinfo->avail_base = slab->next;
lib/libc/stdlib/dmalloc.c
899
slab->state = FULL;
lib/libc/stdlib/dmalloc.c
900
TAILQ_INSERT_TAIL(&slgd->full_zones, slab, entry);
lib/libc/stdlib/dmalloc.c
905
bmp = &slab->bitmap[bmi];
lib/libc/stdlib/dmalloc.c
909
obj = slab->chunks + ((bmi << LONG_BITS_SHIFT) + bno) *
lib/libc/stdlib/dmalloc.c
911
slab->free_index = bmi;
lib/libc/stdlib/dmalloc.c
912
slab->free_bit = (bno + 1) & (LONG_BITS - 1);
lib/libc/stdlib/dmalloc.c
913
atomic_add_int(&slab->navail, -1);
lib/libc/stdlib/dmalloc.c
922
bmp = &slab->bitmap[bmi];
lib/libc/stdlib/dmalloc.c
926
obj = slab->chunks + ((bmi << LONG_BITS_SHIFT) + bno) *
lib/libc/stdlib/dmalloc.c
928
slab->free_index = bmi;
lib/libc/stdlib/dmalloc.c
929
slab->free_bit = (bno + 1) & (LONG_BITS - 1);
lib/libc/stdlib/dmalloc.c
930
atomic_add_int(&slab->navail, -1);
lib/libc/stdlib/dmalloc.c
937
_mpanic("slaballoc: corrupted zone: navail %d", slab->navail);
lib/libc/stdlib/dmalloc.c
949
slab_t slab;
lib/libc/stdlib/dmalloc.c
969
if ((slab = region->slab) == NULL)
lib/libc/stdlib/dmalloc.c
970
slab = (void *)((uintptr_t)ptr & region->mask);
lib/libc/stdlib/dmalloc.c
971
MASSERT(slab->magic == ZALLOC_SLAB_MAGIC);
lib/libc/stdlib/dmalloc.c
972
osize = slab->chunk_size;
sys/kern/kern_kmalloc.c
140
gslab_cache(struct kmalloc_slab *slab)
sys/kern/kern_kmalloc.c
153
KKASSERT(((uintptr_t)slab & KMALLOC_SLAB_MASK) == 0);
sys/kern/kern_kmalloc.c
159
while (slab) {
sys/kern/kern_kmalloc.c
160
cpuid = slab->orig_cpuid;
sys/kern/kern_kmalloc.c
163
KKASSERT(((uintptr_t)slab & KMALLOC_SLAB_MASK) == 0);
sys/kern/kern_kmalloc.c
168
*resp = slab;
sys/kern/kern_kmalloc.c
169
resp = &slab->next;
sys/kern/kern_kmalloc.c
170
slab = slab->next;
sys/kern/kern_kmalloc.c
182
KKASSERT(((uintptr_t)slab & KMALLOC_SLAB_MASK) == 0);
sys/kern/kern_kmalloc.c
183
slabp = &slab->next;
sys/kern/kern_kmalloc.c
185
slab->type = NULL;
sys/kern/kern_kmalloc.c
219
&save, slab))
sys/kern/kern_kmalloc.c
228
slab = next;
sys/kern/kern_kmalloc.c
251
struct kmalloc_slab *slab;
sys/kern/kern_kmalloc.c
253
slab = gd->gd_kmslab.free_slabs;
sys/kern/kern_kmalloc.c
254
if (slab == NULL) {
sys/kern/kern_kmalloc.c
255
slab = atomic_swap_ptr(
sys/kern/kern_kmalloc.c
258
KKASSERT(((uintptr_t)slab & KMALLOC_SLAB_MASK) == 0);
sys/kern/kern_kmalloc.c
260
if (slab) {
sys/kern/kern_kmalloc.c
261
gd->gd_kmslab.free_slabs = slab->next;
sys/kern/kern_kmalloc.c
262
slab->next = NULL;
sys/kern/kern_kmalloc.c
264
KKASSERT(((uintptr_t)slab & KMALLOC_SLAB_MASK) == 0);
sys/kern/kern_kmalloc.c
266
return slab;
sys/kern/kern_kmalloc.c
367
struct kmalloc_slab *slab;
sys/kern/kern_kmalloc.c
381
while ((slab = *slabp) != NULL) {
sys/kern/kern_kmalloc.c
382
KKASSERT(((uintptr_t)slab & KMALLOC_SLAB_MASK) == 0);
sys/kern/kern_kmalloc.c
384
delta = slab->findex - slab->aindex;
sys/kern/kern_kmalloc.c
385
if (delta == slab->ncount) {
sys/kern/kern_kmalloc.c
386
*slabp = slab->next; /* unlink */
sys/kern/kern_kmalloc.c
387
*basep = slab; /* link into base list */
sys/kern/kern_kmalloc.c
388
basep = &slab->next;
sys/kern/kern_kmalloc.c
392
type->ks_shortdesc, slab,
sys/kern/kern_kmalloc.c
393
slab->ncount - delta);
sys/kern/kern_kmalloc.c
395
slabp = &slab->next;
sys/kern/kern_kmalloc.c
411
while ((slab = base) != NULL) {
sys/kern/kern_kmalloc.c
412
base = slab->next;
sys/kern/kern_kmalloc.c
413
slab->next = (void *)(uintptr_t)-1;
sys/kern/kern_kmalloc.c
414
kmem_slab_free(slab, KMALLOC_SLAB_SIZE);
sys/kern/kern_kmalloc.c
444
struct kmalloc_slab *slab;
sys/kern/kern_kmalloc.c
454
while (count-- && (slab = ggm->empty) != NULL) {
sys/kern/kern_kmalloc.c
458
ggm->empty = slab->next;
sys/kern/kern_kmalloc.c
459
slab->next = NULL;
sys/kern/kern_kmalloc.c
461
if (ggm->empty_tailp == &slab->next)
sys/kern/kern_kmalloc.c
471
delta = slab->findex - slab->aindex;
sys/kern/kern_kmalloc.c
472
if (delta == slab->ncount) {
sys/kern/kern_kmalloc.c
477
KKASSERT(slab->next == NULL);
sys/kern/kern_kmalloc.c
478
exis_terminate(&slab->exis);
sys/kern/kern_kmalloc.c
479
slab->next = ggm->full;
sys/kern/kern_kmalloc.c
480
ggm->full = slab;
sys/kern/kern_kmalloc.c
487
KKASSERT(slab->next == NULL);
sys/kern/kern_kmalloc.c
488
slab->next = ggm->partial;
sys/kern/kern_kmalloc.c
489
ggm->partial = slab;
sys/kern/kern_kmalloc.c
496
KKASSERT(slab->next == NULL);
sys/kern/kern_kmalloc.c
497
*ggm->empty_tailp = slab;
sys/kern/kern_kmalloc.c
498
ggm->empty_tailp = &slab->next;
sys/kern/kern_kmalloc.c
517
struct kmalloc_slab *slab;
sys/kern/kern_kmalloc.c
558
while (count && (slab = *slabp) != NULL) {
sys/kern/kern_kmalloc.c
559
delta = slab->findex - slab->aindex;
sys/kern/kern_kmalloc.c
560
if (delta == slab->ncount &&
sys/kern/kern_kmalloc.c
561
slab->xindex == slab->findex &&
sys/kern/kern_kmalloc.c
562
exis_freeable(&slab->exis))
sys/kern/kern_kmalloc.c
578
*slabp = slab->next;
sys/kern/kern_kmalloc.c
579
*basep = slab;
sys/kern/kern_kmalloc.c
580
basep = &slab->next;
sys/kern/kern_kmalloc.c
586
slabp = &slab->next;
sys/kern/kern_kmalloc.c
606
while ((slab = base) != NULL) {
sys/kern/kern_kmalloc.c
608
slab->next = NULL;
sys/kern/kern_kmalloc.c
609
kmem_slab_free(slab, KMALLOC_SLAB_SIZE);
sys/kern/kern_kmalloc.c
623
bmap_set(struct kmalloc_slab *slab, void *obj)
sys/kern/kern_kmalloc.c
627
size_t i = (((uintptr_t)obj & KMALLOC_SLAB_MASK) - slab->offset) /
sys/kern/kern_kmalloc.c
628
slab->objsize;
sys/kern/kern_kmalloc.c
630
ptr = &slab->bmap[i >> 6];
sys/kern/kern_kmalloc.c
632
KKASSERT(i < slab->ncount && (*ptr & mask) == 0);
sys/kern/kern_kmalloc.c
637
bmap_clr(struct kmalloc_slab *slab, void *obj)
sys/kern/kern_kmalloc.c
641
size_t i = (((uintptr_t)obj & KMALLOC_SLAB_MASK) - slab->offset) /
sys/kern/kern_kmalloc.c
642
slab->objsize;
sys/kern/kern_kmalloc.c
644
ptr = &slab->bmap[i >> 6];
sys/kern/kern_kmalloc.c
646
KKASSERT(i < slab->ncount && (*ptr & mask) != 0);
sys/kern/kern_kmalloc.c
667
struct kmalloc_slab *slab;
sys/kern/kern_kmalloc.c
683
struct kmalloc_slab *slab;
sys/kern/kern_kmalloc.c
726
slab = mgt->active; /* Might be dummy */
sys/kern/kern_kmalloc.c
727
delta = slab->findex - slab->aindex;
sys/kern/kern_kmalloc.c
731
i = slab->aindex % slab->ncount;
sys/kern/kern_kmalloc.c
732
obj = slab->fobjs[i];
sys/kern/kern_kmalloc.c
734
slab->fobjs[i] = NULL;
sys/kern/kern_kmalloc.c
735
++slab->aindex;
sys/kern/kern_kmalloc.c
737
bmap_set(slab, obj);
sys/kern/kern_kmalloc.c
753
slab = mgt->alternate; /* Might be dummy */
sys/kern/kern_kmalloc.c
754
delta = slab->findex - slab->aindex;
sys/kern/kern_kmalloc.c
759
mgt->active = slab;
sys/kern/kern_kmalloc.c
760
i = slab->aindex % slab->ncount;
sys/kern/kern_kmalloc.c
761
obj = slab->fobjs[i];
sys/kern/kern_kmalloc.c
763
slab->fobjs[i] = NULL;
sys/kern/kern_kmalloc.c
764
++slab->aindex;
sys/kern/kern_kmalloc.c
766
bmap_set(slab, obj);
sys/kern/kern_kmalloc.c
785
slab = mgt->alternate; /* Might be dummy */
sys/kern/kern_kmalloc.c
791
if (slab != &kslab_dummy) {
sys/kern/kern_kmalloc.c
792
KKASSERT(slab->next == NULL);
sys/kern/kern_kmalloc.c
793
*ggm->empty_tailp = slab;
sys/kern/kern_kmalloc.c
794
ggm->empty_tailp = &slab->next;
sys/kern/kern_kmalloc.c
802
slab = mgt->alternate; /* Might be dummy */
sys/kern/kern_kmalloc.c
809
if (slab != &kslab_dummy) {
sys/kern/kern_kmalloc.c
810
KKASSERT(slab->next == NULL);
sys/kern/kern_kmalloc.c
811
*ggm->empty_tailp = slab;
sys/kern/kern_kmalloc.c
812
ggm->empty_tailp = &slab->next;
sys/kern/kern_kmalloc.c
836
if (gd->gd_kmslab.free_count == 0 || (slab = gslab_alloc(gd)) == NULL) {
sys/kern/kern_kmalloc.c
837
slab = kmem_slab_alloc(KMALLOC_SLAB_SIZE, KMALLOC_SLAB_SIZE,
sys/kern/kern_kmalloc.c
841
bzero(slab, sizeof(*slab));
sys/kern/kern_kmalloc.c
845
obj = (char *)slab + use->mgt.slab_offset;
sys/kern/kern_kmalloc.c
846
slab->type = type;
sys/kern/kern_kmalloc.c
847
slab->orig_cpuid = gd->gd_cpuid;
sys/kern/kern_kmalloc.c
848
slab->ncount = use->mgt.slab_count;
sys/kern/kern_kmalloc.c
849
slab->offset = use->mgt.slab_offset;
sys/kern/kern_kmalloc.c
850
slab->objsize = type->ks_objsize;
sys/kern/kern_kmalloc.c
851
slab->aindex = 0;
sys/kern/kern_kmalloc.c
852
slab->findex = slab->ncount;
sys/kern/kern_kmalloc.c
853
slab->xindex = slab->ncount;
sys/kern/kern_kmalloc.c
854
for (delta = 0; delta < slab->ncount; ++delta) {
sys/kern/kern_kmalloc.c
855
slab->fobjs[delta] = obj;
sys/kern/kern_kmalloc.c
864
KKASSERT(((((uintptr_t)obj - 1) ^ (uintptr_t)slab) &
sys/kern/kern_kmalloc.c
867
KASSERT(((((uintptr_t)obj - 1) ^ (uintptr_t)slab) &
sys/kern/kern_kmalloc.c
868
~KMALLOC_SLAB_MASK) == 0, ("SLAB %p ncount %zd objsize %zd obj=%p\n", slab, slab->ncount, slab->objsize, obj));
sys/kern/kern_kmalloc.c
869
slab->magic = KMALLOC_SLAB_MAGIC;
sys/kern/kern_kmalloc.c
870
spin_init(&slab->spin, "kmslb");
sys/kern/kern_kmalloc.c
888
mgt->active = slab;
sys/kern/kern_kmalloc.c
928
struct kmalloc_slab *slab;
sys/kern/kern_kmalloc.c
940
slab = (void *)((uintptr_t)obj & ~KMALLOC_SLAB_MASK);
sys/kern/kern_kmalloc.c
941
delta = slab->findex - slab->aindex;
sys/kern/kern_kmalloc.c
942
KKASSERT(slab->magic == KMALLOC_SLAB_MAGIC && delta != slab->ncount);
sys/kern/kern_kmalloc.c
949
use = &slab->type->ks_use[gd->gd_cpuid];
sys/kern/kern_kmalloc.c
951
use->memuse -= slab->objsize;
sys/kern/kern_kmalloc.c
957
i = atomic_fetchadd_long(&slab->findex, 1);
sys/kern/kern_kmalloc.c
958
i = i % slab->ncount;
sys/kern/kern_kmalloc.c
959
if (slab->fobjs[i] != NULL) {
sys/kern/kern_kmalloc.c
961
slab->aindex, slab->findex, slab->ncount);
sys/kern/kern_kmalloc.c
964
bmap_clr(slab, obj);
sys/kern/kern_kmalloc.c
966
KKASSERT(slab->fobjs[i] == NULL);
sys/kern/kern_kmalloc.c
967
slab->fobjs[i] = obj;
sys/kern/kern_kmalloc.c
968
atomic_add_long(&slab->xindex, 1); /* synchronizer */
test/debug/zallocinfo.c
135
&slab, sizeof(slab));
test/debug/zallocinfo.c
136
dumpslab(kd, cpu, &slab);
test/debug/zallocinfo.c
143
dumpslab(kvm_t *kd, int cpu, struct SLGlobalData *slab)
test/debug/zallocinfo.c
157
printf("cpu %d NFreeZones=%d JunkIndex=%d\n", cpu, slab->NFreeZones,
test/debug/zallocinfo.c
158
slab->JunkIndex);
test/debug/zallocinfo.c
162
zonep = TAILQ_FIRST(&slab->ZoneAry[z]);
test/debug/zallocinfo.c
78
static void dumpslab(kvm_t *kd, int cpu, struct SLGlobalData *slab);
test/debug/zallocinfo.c
86
struct SLGlobalData slab;