As explained in OS - Virtual Memory > Slab allocation, thereās 3 parts to a slab based allocator:
- caches
- slab
- objects

- when the kernel wants to make an allocation, it will find the right cache and then find a partial slab to allocate that object.
- if no partial or free slab, the allocator will allocate new slabs with the buddy allocator
- each free slab in the partial list will have a pointer to the next free slab, creating a linked list