Vmalloc
Page and slab allocators both allocate physically contiguous blocks of memory, mapped to contiguous kernel address space. Most of the time, kernel services and subsystems prefer to allocate physically contiguous blocks for exploiting caching, address translation, and other performance-related benefits. Nonetheless, allocation requests for very large blocks might fail due to fragmentation of physical memory, and there are few situations that necessitate allocation of large blocks, such as support for dynamically loadable modules, swap management operations, large file caches and so on.
As a solution, the kernel provides vmalloc, a fragmented memory allocator that attempts to allocate memory, by joining physically scattered memory regions ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access