snmalloc: A message passing Allocator
- David Chisnall ,
- Sylvan Clebsch ,
- Sophia Drossopoulou ,
- Juliana Vicente Franco ,
- Paul Lietar ,
- Matthew J. Parkinson ,
- Alex Shamis ,
- Christoph M. Wintersteiger
ISSM | , pp. 122-135
snmalloc is an implementation of malloc aimed at workloads in which objects are typically deallocated by a different thread than the one that had allocated them. We use the term producer/consumer for such workloads. snmalloc uses a novel message passing scheme which returns deallocated objects to the originating allocator in batches without taking any locks. It also uses a novel bump pointer-free list data structure with which just 64-bits of meta-data are sufficient for each 64 KiB slab. On such producer/consumer benchmarks our approach performs better than existing allocators.