memblock_phys_alloc_try_nid(9)
π memblock_phys_alloc_try_nid(9) β Kernel API Manual β¨
okay so bestie, welcome to the glow-up era of the kernel's physical memory allocator π this one lives in the Kernel API Manual, and honestly? she's that girl. let's get into it π
πΈ NAME πΈ
memblock_phys_alloc_try_nid β grab a memory block from a NUMA node you pick, and if that node's being stingy, she'll try literally anywhere π
π¦ SYNOPSIS π¦
phys_addr_t memblock_phys_alloc_try_nid (phys_addr_t size , phys_addr_t
align , int nid );
β¨ ARGUMENTS β¨
sizeβ how big your memory block is, in bytes. that's the whole vibe check πalignβ the alignment of the region and the block's size. picky picky, she likes things lined up just right πnidβ the nid of the free area to find. passNUMA_NO_NODEif you're in your "any node is fine, i'm not picky today" era π
π DESCRIPTION π
Allocates a memory block from the specified NUMA node β very "i know exactly what i want" of her, love that for her π
But bestie, if that node has no available memory? she does not spiral. she simply attempts to allocate from any node in the system. flexibility is main character energy, no cap π₯
β RETURN β
- the physical address of the allocated memory block on success π
0on failure π (and we do NOT talk about it)
π SEE ALSO π
Kernel file ./mm/memblock.c, plus memblock overview(9) and honestly the entire memblock friend group, fr fr:
__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_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_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)
no gatekeeping here β read the whole squad, iykyk π
π§ the cute little sign-off π«Ά
that's the whole page, bestie!! this one came from the source ./mm, dated October 2026, and it's filed under the Kernel API Manual as memblock_phys_alloc_try_nid(9). slay, go allocate something iconic πβ¨π
π¦ 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