memblock_mark_nomap(9)
π NAME π
memblock_mark_nomap β okay so this is the one that marks a memory region with the flag MEMBLOCK_NOMAP, and it's lowkey iconic for it β¨
(also hi bestie, this page lives in the Kernel API Manual section 9, so if anyone asks, that's the whole vibe π)
π¦ SYNOPSIS π¦
int __init_memblock memblock_mark_nomap (phys_addr_t base , phys_addr_t
size );
πΈ ARGUMENTS πΈ
baseβ the base phys addr of the region, like the starting coordinate of the whole situation πsizeβ the size of the region. yes queen, just how big it is π
β¨ DESCRIPTION β¨
So the memory regions marked with MEMBLOCK_NOMAP will not be added to the direct mapping of the physical memory β they're literally not invited to that party π
But here's the thing: these regions will still be covered by the memory map. The memory map said "you still live here", just not in the direct mapping. no cap.
And the struct page representing NOMAP memory frames in the memory map will be PageReserved β that's the whole personality of those frames now π
π NOTE π
if the memory being marked MEMBLOCK_NOMAP was allocated from memblock, the caller must inform kmemleak to ignore that memory. like, must must. this is not a drill π
π RETURN π
0 on success, -errno on failure. that's it, that's the whole return arc π
π SEE ALSO π
so many siblings, it's giving family reunion π«Ά and yes, all of them:
- Kernel file
./mm/memblock.cmemblock overview(9) __memblock_find_range_bottom_up(9)__memblock_find_range_top_down(9)memblock_find_in_range_node(9)memblock_find_in_range(9)memblock_discard(9)memblock_double_array(9)memblock_merge_regions(9)memblock_insert_region(9)memblock_add_range(9)memblock_add_node(9)memblock_add(9)memblock_validate_numa_coverage(9)memblock_isolate_range(9)memblock_free(9)memblock_phys_free(9)memblock_setclr_flag(9)memblock_mark_hotplug(9)memblock_clear_hotplug(9)memblock_mark_mirror(9)memblock_clear_nomap(9)memblock_reserved_mark_noinit(9)memblock_reserved_mark_kern(9)memblock_mark_kho_scratch(9)memblock_clear_kho_scratch(9)__next_mem_range(9)__next_mem_range_rev(9)memblock_set_node(9)memblock_alloc_range_nid(9)memblock_phys_alloc_range(9)memblock_phys_alloc_try_nid(9)memblock_alloc_internal(9)memblock_alloc_exact_nid_raw(9)memblock_alloc_try_nid_raw(9)memblock_alloc_hugetlb(9)memblock_alloc_try_nid(9)__memblock_alloc_or_panic(9)memblock_estimated_nr_free_pages(9)memblock_is_region_memory(9)memblock_is_region_reserved(9)memblock_free_all(9)reserve_mem_find_by_name(9)reserve_mem_release_by_name(9)
okay that's the whole page bestie, ily, go mark some memory π
this iconic lil doc came from ./mm, October 2026 edition β talk soon, mwah ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms