drm_gpusvm_find_vma_start(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… drm_gpusvm_find_vma_start(9)

okay so this is the page for drm_gpusvm_find_vma_start(9) β€” straight out of the Kernel API Manual, bestie, and it's a short one so we can absolutely devour it together πŸ“


✨ NAME ✨

drm_gpusvm_find_vma_start β€” literally just: find the start address for the first VMA in a range. that's the whole job. iconic minimalism πŸŽ€


🌸 SYNOPSIS 🌸

unsigned long drm_gpusvm_find_vma_start (struct drm_gpusvm *gpusvm ,
unsigned long start , unsigned long end );

the way that signature just sits there serving cunt 😌 three args, returns an unsigned long, no notes.


πŸ¦‹ ARGUMENTS πŸ¦‹

  • gpusvm β€” pointer to the GPU SVM structure πŸ’œ
  • start β€” the inclusive start user address. inclusive meaning yes bestie it's invited to the function πŸ”₯
  • end β€” the exclusive end user address. exclusive meaning it is NOT coming to the party πŸ™ˆ

πŸ‘‘ RETURN πŸ‘‘

you get back the start address of the first VMA that lives inside the range you handed over πŸ’–

and if there's nothing in there? you get ULONG_MAX. that's the "no cap, nothing found" value 🌈

heads up: it assumes start_addr < end_addr. so like... don't hand it a backwards range and expect magic, okay? 😭 that's the stated assumption, and assumptions are load-bearing.

🌺 SEE ALSO 🌺

the whole friend group is here, no one got left out of the group chat πŸ’… the Kernel file is ./drivers/gpu/drm/drm_gpusvm.c, and then we've got:

Overview(9), Locking(9), Partial Unmapping of Ranges(9), Examples(9), npages_in_range(9), drm_gpusvm_notifier_find(9), drm_gpusvm_range_find(9), drm_gpusvm_notifier_invalidate(9), drm_gpusvm_init(9), to_drm_gpusvm_notifier(9), drm_gpusvm_notifier_insert(9), drm_gpusvm_notifier_remove(9), drm_gpusvm_fini(9), drm_gpusvm_notifier_alloc(9), drm_gpusvm_notifier_free(9), to_drm_gpusvm_range(9), drm_gpusvm_range_insert(9), __drm_gpusvm_range_remove(9), drm_gpusvm_range_alloc(9), drm_gpusvm_hmm_pfn_to_order(9), drm_gpusvm_check_pages(9), drm_gpusvm_scan_mm(9), drm_gpusvm_range_chunk_size(9), drm_gpusvm_driver_lock_held(9), drm_gpusvm_range_find_or_insert(9), __drm_gpusvm_unmap_pages(9), __drm_gpusvm_free_pages(9), drm_gpusvm_free_pages(9), drm_gpusvm_range_remove(9), drm_gpusvm_range_get(9), drm_gpusvm_range_destroy(9), drm_gpusvm_range_put(9), drm_gpusvm_pages_valid(9), drm_gpusvm_pages_valid_unlocked(9), drm_gpusvm_get_pages(9), drm_gpusvm_unmap_pages(9), drm_gpusvm_range_evict(9), drm_gpusvm_has_mapping(9), drm_gpusvm_range_set_unmapped(9)

like... that is a roster. go read them, iykyk πŸ“šβœ¨


and that's the whole page, bestie β€” this one came from ./drivers/gpu/drm and it's dated October 2026, so go forth and find those VMA starts πŸ’œπŸ«Ά mwah

πŸ“¦ where this page comes from