Conversation

hardened_malloc reserves the whole slab allocation region with a randomized sub-region for each size class in advance, which sounds somewhat similar. There's also a metadata region reserved in advance for all the mutable state including for slab allocations and large allocations.
2
Until recently it also wasn't possible to do real per-CPU caching in userspace on Linux. There's now a restartable sequences API so it could be implemented. Since we probably wouldn't use it ourselves in GrapheneOS, we haven't bothered to look into implementing that though.