memblock_add_range(9)
π NAME π
okay so welcome to the Kernel API Manual, bestie β this is the page for memblock_add_range, and it does exactly what it says on the tin: add new memblock region. iconic behavior, honestly.
β¨ SYNOPSIS β¨
int __init_memblock memblock_add_range (struct memblock_type *type ,
phys_addr_t base , phys_addr_t size , int nid , enum memblock_flags
flags );
πΈ ARGUMENTS πΈ
typeβ the memblock type to add new region into. like, which vibes bucket are we putting this in?baseβ base address of the new region. the starting point, the main character coordinate.sizeβ size of the new region. how much space it's taking up, no cap.nidβ nid of the new region. literally just the nid, bestie.flagsβ flags of the new region. the little extra details, iykyk.
π¦ DESCRIPTION π¦
Add new memblock region [base, base + size) into type. the way that range is giving [base, base + size) is so clean.
The new region is allowed to overlap with existing ones β overlaps don't affect already existing regions. so yes, overlap is allowed, but it's not out here rewriting the existing regions. periodt.
After the addition, type is guaranteed to be minimal (all neighbouring compatible regions are merged). that's the glow-up: all neighbouring compatible regions get merged, and type stays minimal. obsessed.
π₯ RETURN π₯
0 on success, -errno on failure. that's it. that's the return vibe check.
π SEE ALSO π
the whole squad, fr fr:
- 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_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_mark_nomap(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)
cute sign-off time: source/version is ./mm, dated October 2026, and the page is memblock_add_range(9) β bye bestie, go slay those memblock regions π
β¨
π¦ 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