Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-10-13 | Multipage allocation | Maria Matejka | |
We can also quite simply allocate bigger blocks. Anyway, we need these blocks to be aligned to their size which needs one mmap() two times bigger and then two munmap()s returning the unaligned parts. The user can specify -B <N> on startup when <N> is the exponent of 2, setting the block size to 2^N. On most systems, N is 12, anyway if you know that your configuration is going to eat gigabytes of RAM, you are almost forced to raise your block size as you may easily get into memory fragmentation issues or you have to raise your maximum mapping count, e.g. "sysctl vm.max_map_count=(number)". | |||
2021-09-10 | Bound allocated pages to resource pools with page caches to avoid ↵ | Maria Matejka | |
unnecessary syscalls | |||
2021-03-25 | Slab: head now uses bitmask for used/free nodes info instead of lists | Maria Matejka | |
From now, there are no auxiliary pointers stored in the free slab nodes. This led to strange debugging problems if use-after-free happened in slab-allocated structures, especially if the structure's first member is a next pointer. This also reduces the memory needed by 1 pointer per allocated object. OTOH, we now rely on pages being aligned to their size's multiple, which is quite common anyway. |