Lines Matching defs:slab

35  * The slab allocator, as described in the following two papers:
704 size_t umem_slab_log_size; /* slab create log [4 pages per CPU] */
801 DEFAULTMUTEX, /* start of slab layer */
885 umem_slab_t *ump_slab; /* slab accoring to umem_findslab() */
1053 * Debugging support. Given a buffer address, find its slab.
1208 umem_printf("thread=%p time=T-%ld.%09ld slab=%p cache: %s\n",
1397 * Create a new slab for cache cp.
1406 char *buf, *slab;
1416 slab = vmem_alloc(vmp, slabsize, UMEM_VMFLAGS(umflag));
1418 if (slab == NULL)
1421 ASSERT(P2PHASE((uintptr_t)slab, vmp->vm_quantum) == 0);
1425 copy_pattern(UMEM_UNINITIALIZED_PATTERN, slab, slabsize);
1432 sp = UMEM_SLAB(cp, slab);
1439 sp->slab_base = buf = slab + color;
1474 umem_log_event(umem_slab_log, cp, sp, slab);
1488 vmem_free(vmp, slab, slabsize);
1499 * Destroy a slab.
1505 void *slab = (void *)P2ALIGN((uintptr_t)sp->slab_base, vmp->vm_quantum);
1515 vmem_free(vmp, slab, cp->cache_slabsize);
1519 * Allocate a raw (unconstructed) buffer from cp's slab layer.
1534 * The freelist is empty. Create a new slab.
1556 * If we're taking the last buffer in the slab,
1557 * remove the slab from the cache's freelist.
1588 * Free a raw (unconstructed) buffer to cp's slab layer.
1635 * If this slab isn't currently on the freelist, put it there.
1655 * There are no outstanding allocations from this slab,
1779 * Free each object in magazine mp to cp's slab layer, and free mp itself.
1965 * so fall through to the slab layer.
1973 * so get a raw buffer from the slab layer and apply its constructor.
2109 * so fall through to the slab layer.
2117 * so apply its destructor and free it to the slab layer.
2652 vmem_t *vmp, /* vmem source for slab allocation */
2824 * Now that we know the chunk size, determine the optimal slab size.
2886 * Initialize the rest of the slab layer.