drm_gpuvm_range_valid(9)
β¨ drm_gpuvm_range_valid β¨
okay so this is a page straight out of the Kernel API Manual bestie, and it's literally just one tiny function doing a vibe check on your address range π
π NAME π
drm_gpuvm_range_valid β checks whether the given range is valid for the given &drm_gpuvm β¨
π¦ SYNOPSIS π¦
bool drm_gpuvm_range_valid (struct drm_gpuvm *gpuvm , u64 addr , u64 range );
like yes that's the whole signature, she's compact and iconic π«Ά
πΈ ARGUMENTS πΈ
gpuvmβ the GPUVM to check the range for, i.e. the main character here πaddrβ the base address, the starting point of the whole situationrangeβ the range starting from the base address, so like how far we're going fromaddr
π DESCRIPTION π
Checks whether the range is within the GPUVM's managed boundaries. that's it, that's the whole job π she's just making sure you're not coloring outside the lines, no cap.
β RETURN β
true for a valid range, false otherwise. literally binary queen behavior π
π₯ SEE ALSO π₯
Kernel file ./drivers/gpu/drm/drm_gpuvm.c β and then the whole extended friend group, fr fr:
Overview(9)Split and Merge(9)Madvise Logic - Splitting and Traversal(9)Locking(9)Examples(9)get_next_vm_bo_from_list(9)for_each_vm_bo_in_list(9)restore_vm_bo_list(9)drm_gpuvm_bo_is_zombie(9)drm_gpuvm_bo_list_add(9)drm_gpuvm_bo_list_del_init(9)drm_gpuvm_bo_list_del(9)drm_gpuvm_resv_object_alloc(9)drm_gpuvm_init(9)drm_gpuvm_put(9)drm_gpuvm_prepare_vm(9)drm_gpuvm_prepare_objects(9)drm_gpuvm_prepare_range(9)drm_gpuvm_exec_lock(9)drm_gpuvm_exec_lock_array(9)drm_gpuvm_exec_lock_range(9)drm_gpuvm_validate(9)drm_gpuvm_resv_add_fence(9)drm_gpuvm_bo_create(9)drm_gpuvm_bo_put(9)drm_gpuvm_bo_put_deferred(9)drm_gpuvm_bo_deferred_cleanup(9)drm_gpuvm_bo_find(9)drm_gpuvm_bo_obtain_locked(9)drm_gpuvm_bo_obtain_prealloc(9)drm_gpuvm_bo_extobj_add(9)drm_gpuvm_bo_evict(9)drm_gpuva_insert(9)drm_gpuva_remove(9)drm_gpuva_link(9)drm_gpuva_unlink(9)drm_gpuva_unlink_defer(9)drm_gpuva_find_first(9)drm_gpuva_find(9)drm_gpuvm_interval_empty(9)drm_gpuva_map(9)drm_gpuva_remap(9)drm_gpuva_unmap(9)drm_gpuvm_sm_map(9)drm_gpuvm_sm_unmap(9)drm_gpuvm_sm_map_exec_lock(9)drm_gpuvm_sm_unmap_exec_lock(9)drm_gpuvm_sm_map_ops_create(9)drm_gpuvm_madvise_ops_create(9)drm_gpuvm_sm_unmap_ops_create(9)drm_gpuvm_prefetch_ops_create(9)drm_gpuvm_bo_unmap_ops_create(9)drm_gpuva_ops_free(9)
ngl that's a lot of friends but every single one of them ate, go read them, iykyk π
sign-off time bestie π§ this lil page lives over in ./drivers/gpu/drm, dated October 2026, and it's part of the Kernel API Manual fam. mwah, go check your ranges, slay π
β¨π
π¦ 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