Lines Matching defs:slab

34  * The slab allocator, as described in the following two papers:
703 size_t umem_slab_log_size; /* slab create log [4 pages per CPU] */
800 DEFAULTMUTEX, /* start of slab layer */
884 umem_slab_t *ump_slab; /* slab accoring to umem_findslab() */
1052 * Debugging support. Given a buffer address, find its slab.
1207 umem_printf("thread=%p time=T-%ld.%09ld slab=%p cache: %s\n",
1393 * Create a new slab for cache cp.
1402 char *buf, *slab;
1412 slab = vmem_alloc(vmp, slabsize, UMEM_VMFLAGS(umflag));
1414 if (slab == NULL)
1417 ASSERT(P2PHASE((uintptr_t)slab, vmp->vm_quantum) == 0);
1421 copy_pattern(UMEM_UNINITIALIZED_PATTERN, slab, slabsize);
1428 sp = UMEM_SLAB(cp, slab);
1435 sp->slab_base = buf = slab + color;
1470 umem_log_event(umem_slab_log, cp, sp, slab);
1484 vmem_free(vmp, slab, slabsize);
1495 * Destroy a slab.
1501 void *slab = (void *)P2ALIGN((uintptr_t)sp->slab_base, vmp->vm_quantum);
1511 vmem_free(vmp, slab, cp->cache_slabsize);
1515 * Allocate a raw (unconstructed) buffer from cp's slab layer.
1530 * The freelist is empty. Create a new slab.
1552 * If we're taking the last buffer in the slab,
1553 * remove the slab from the cache's freelist.
1584 * Free a raw (unconstructed) buffer to cp's slab layer.
1631 * If this slab isn't currently on the freelist, put it there.
1651 * There are no outstanding allocations from this slab,
1775 * Free each object in magazine mp to cp's slab layer, and free mp itself.
1961 * so fall through to the slab layer.
1969 * so get a raw buffer from the slab layer and apply its constructor.
2105 * so fall through to the slab layer.
2113 * so apply its destructor and free it to the slab layer.
2648 vmem_t *vmp, /* vmem source for slab allocation */
2820 * Now that we know the chunk size, determine the optimal slab size.
2882 * Initialize the rest of the slab layer.