Skip to content

Add kamepoolalloc (kp) allocator#265

Open
northriv wants to merge 2 commits into
daanx:masterfrom
northriv:add-kamepoolalloc
Open

Add kamepoolalloc (kp) allocator#265
northriv wants to merge 2 commits into
daanx:masterfrom
northriv:add-kamepoolalloc

Conversation

@northriv

Copy link
Copy Markdown

Add kamepoolalloc (kp) — a lock-free four-tier pool allocator (1 B .. multi-GiB: buckets / dedicated chunks / large mmap / huge) with a per-thread two-level recycle cache for the 32 KiB .. 32 MiB range. Dual-licensed Apache-2.0 OR GPL-2.0+. Production allocator of the KAME instrument-control framework since 2008; chunk-claim / recycle / orphan-chain protocols are TLA+ and GenMC (RC11) model-checked.
https://github.com/northriv/kamepoolalloc

Pinned to v1.0.1 (dylib banner gating + Linux malloc_usable_size co-interpose). Full local-suite soak passed on glibc/x86-64 (incl. redis, sh6/sh8bench). Three-hunk patch only (build-bench-env.sh + bench.sh); no README/result edits.

northriv added 2 commits June 11, 2026 21:01
kamepoolalloc is a lock-free four-tier pool allocator (1 B .. multi-GiB:
buckets / dedicated chunks / large mmap / huge) with a per-thread
two-level recycle cache for the 32 KiB .. 32 MiB range. Dual-licensed
Apache-2.0 OR GPL-2.0+. Production allocator of the KAME instrument-control
framework since 2008; the chunk-claim / recycle / orphan-chain protocols
are TLA+ and GenMC (RC11) model-checked.

https://github.com/northriv/kamepoolalloc

Pinned to v1.0.1 (banner gating + Linux malloc_usable_size co-interpose).
Full local-suite soak passed on glibc/x86-64 (incl. redis, sh6/sh8bench).
So CI exercises kamepoolalloc on ubuntu/alpine/fedora (the bench.sh
alloc_all registration alone is not enough — the GitHub Actions matrix
is the hardcoded driver).  glibc (ubuntu/fedora) is the soaked target;
musl (alpine) is unverified — if it fails there, a follow-up alpine
exclude with the actual error will mirror the existing per-allocator
excludes (dh/fg/gd/...).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant