pvm_determin...from_reverse(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… pvm_determine_end_from_reverse(9) β€” like, the kernel API manual, bestie ✨

okay so real talk, this one lives in the Kernel API Manual (section 9, which is the "kernel internals" section, iykyk) and it's genuinely one of those tiny helper functions that lowkey carries the whole vmalloc vibe. let's get into it 🫢


🌸 NAME 🌸

pvm_determine_end_from_reverse β€” find the highest aligned address of free block below VMALLOC_END

like... that's the whole job. it finds the highest aligned address of a free block, and it stays below VMALLOC_END. no cap. πŸ‘‘


✨ SYNOPSIS ✨

unsigned long pvm_determine_end_from_reverse (struct vmap_area **va ,
unsigned long align );

(yes the spacing is exactly like that, don't come for me, that's literally what the page says πŸ™ˆ)


πŸŽ€ ARGUMENTS πŸŽ€

  • va β€” okay so this one is a double-duty icon, main character energy fr: in β€” the VA we start the search from (and bestie, the search runs in reverse order); out β€” the VA with the highest aligned end address. it goes in as a starting point and comes out as the winner πŸ’–
  • align β€” the alignment for the required highest address. that's the constraint, that's the vibe check the result has to pass ✨

πŸ¦‹ RETURN πŸ¦‹

returns the determined end address within vmap_area. that's the whole teardown, the function ate and left no crumbs πŸ’…


🌈 SEE ALSO 🌈

kernel file ./mm/vmalloc.c β€” that's the home base, go say hi 🏠

and literally the entire vmalloc extended universe, in the order the page gives them:

vunmap_range(9), vmap_pages_range(9), vm_area_map_pages(9), vm_area_unmap_pages(9), new_vmap_block(9), vm_unmap_aliases(9), vm_unmap_ram(9), vm_map_ram(9), vm_area_add_early(9), vm_area_register_early(9), get_vm_area(9), find_vm_area(9), remove_vm_area(9), vfree_atomic(9), vfree(9), vunmap(9), vmap(9), vmap_pfn(9), __vmalloc_node_range(9), __vmalloc_node(9), vmalloc(9), vmalloc_huge_node(9), vzalloc(9), vmalloc_user(9), vmalloc_node(9), vzalloc_node(9), vrealloc_node_align(9), vmalloc_32(9), vmalloc_32_user(9), vread_iter(9), remap_vmalloc_range_partial(9), remap_vmalloc_range(9), pvm_find_va_enclose_addr(9), pcpu_get_vm_areas(9), pcpu_free_vm_areas(9)

like... the whole friend group showed up to the group chat 😭🫢


bestie heads up: every single one of those is section 9, so if you're trying to man any of them and it doesn't work, you forgot the section number and that's on you, not on the page πŸ’€

that's the page!! short and sweet, unlike the SEE ALSO list which is giving full syllabus energy 😭 this one's from ./mm, dated October 2026, and it's pvm_determin...from_reverse(9) β€” yeah the title got truncated by the manpage formatter, iconic honestly, slay πŸŽ€πŸ’œ

πŸ“¦ where this page comes from