You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Breaking changes
Replace file-backed memory mappings with MAP_ANONYMOUS + MADV_HUGEPAGE.
Allocations now use anonymous mappings with transparent huge page hints instead
of memory-mapped temporary files. (#67)
Remove LgAlloc::path, LgAlloc::with_path(), and LgAlloc::file_growth_dampener().
Use LgAlloc::growth_dampener() instead.
Remove FileStats, MapStats, and lgalloc_stats_with_mapping(). lgalloc_stats() is the only stats function.
Remove LgAllocStats::file and LgAllocStats::map fields.
Raise minimum size class from 2^10 (1 KiB) to 2^21 (2 MiB), matching one huge page.
Handle::prefetch now takes a typed element range (prefetch::<T>(Range<usize>))
and returns PrefetchError instead of AllocError.
Added
Handle::prefetch::<T>(Range<usize>) for typed prefetch hints via MADV_WILLNEED.
PrefetchError type for prefetch-specific errors.
munmap on GlobalStealer::drop to return virtual address space on shutdown.
Graceful handling of MADV_HUGEPAGE failure (one-time warning instead of error).
Allocation benchmarks comparing lgalloc, system allocator, and raw mmap.
Fixed
Use MADV_FREE (Linux) / MADV_DONTNEED (other) for background clear instead of MADV_REMOVE, which fails on anonymous memory.