Boot Time Memory Management
Normally, memory allocations in kernel are done using kmalloc(), vmalloc() or their hybrid kvmalloc() functions. They all are baked by the page allocator and alloc_page() functions family. But during …
Talk Title | Boot Time Memory Management |
Speakers | Mike Rapoport (Researcher, IBM) |
Conference | Open Source Summit + ELC Europe |
Conf Tag | |
Location | Lyon, France |
Date | Oct 27-Nov 1, 2019 |
URL | Talk Page |
Slides | Talk Slides |
Video | |
Normally, memory allocations in kernel are done using kmalloc(), vmalloc() or their hybrid kvmalloc() functions. They all are baked by the page allocator and alloc_page() functions family. But during system boot when the most of the platform initialization code is run neither of them is available because the allocators are not yet set up.For early memory management Linux has an allocator called memblock
that provides the earliest abstraction of the physical memory and can be used nearly from the very beginning of the kernel execution.This talk will cover the memblock APIs, the expectations and requirements for the architecture specific parts of the memory management setup and will wrap up with description of page allocator initialization.