Integrate features of zone-allocation (zalloc) from Xnu (Apple/Darwin CMU's Mach/OS) #3
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zone-based memory allocator. A zone is a collection of fixed size data blocks for which quick allocation/deallocation is possible. [1] Include APIs/features inspired by "NSZone" allocation from Obj-C for a) fast-free of zones, b) different allocators per-zone, c) NUMA/core/thread-specific allocation. An example of a good use for (b) is if you had the ability to allocate transient memory from RAM as normal along side of persistent memory backed by some flash device (SSD, PCIe, Violin Memory, etc.). Add z-prefixed versions of all the standard malloc API calls and add a "set allocator for Zone" API. In addition, add a checkpoint call (for persistent stores).
[1] http://www.opensource.apple.com/source/xnu/xnu-2050.18.24/osfmk/kern/zalloc.c?txt
[2] http://www.webweavertech.com/libFoundation/doc/libFoundation_20.html