drm_gpuvm_resv_obj(9)
π drm_gpuvm_resv_obj β ok bestie listen up
So this is a page from the Kernel API Manual, and it's about drm_gpuvm_resv_obj β the little helper that hands you the &drm_gem_object that's holding onto a &drm_gpuvm's &dma_resv. That's the whole vibe. Short page, iconic energy, let's get into it. β¨
πΈ NAME πΈ
drm_gpuvm_resv_obj β returns the &drm_gem_object holding the &drm_gpuvm's &dma_resv
Like, you give it a gpuvm, it gives you back the gem object that's carrying the resv. That's it. That's the function. π«Ά
β¨ SYNOPSIS β¨
drm_gpuvm_resv_obj (gpuvm__ );
That's literally the whole signature, no cap. One argument, one return, zero drama. π
π ARGUMENTS π
gpuvm__β thedrm_gpuvm. Yeah, the double underscore is really out here living its truth, and we respect it. This is the gpuvm you're asking about.
π RETURN π
A pointer to the drm_gem_object holding the drm_gpuvm's shared dma_resv. π¦
So like⦠you get a pointer back. To a gem object. Which is the one holding the shared resv. Simple as that, fr fr.
π SEE ALSO π
Okay this is the part where the page goes absolutely feral with cross-references, so buckle up bestie β we're listing every single one, and yes, all of them are (9) because we're fancy like that. π§
First up, the actual file where all this lives:
- Kernel file
./include/drm/drm_gpuvm.h
And now, the entire extended friend group:
enum drm_gpuva_flags(9)struct drm_gpuva(9)drm_gpuva_invalidate(9)drm_gpuva_invalidated(9)enum drm_gpuvm_flags(9)struct drm_gpuvm(9)drm_gpuvm_get(9)drm_gpuvm_resv_protected(9)drm_gpuvm_immediate_mode(9)drm_gpuvm_resv(9)drm_gpuvm_is_extobj(9)drm_gpuvm_for_each_va_range(9)drm_gpuvm_for_each_va_range_safe(9)drm_gpuvm_for_each_va(9)drm_gpuvm_for_each_va_safe(9)struct drm_gpuvm_exec(9)drm_gpuvm_exec_unlock(9)drm_gpuvm_exec_resv_add_fence(9)drm_gpuvm_exec_validate(9)struct drm_gpuvm_bo(9)drm_gpuvm_bo_get(9)drm_gpuvm_bo_gem_evict(9)drm_gpuvm_bo_for_each_va(9)drm_gpuvm_bo_for_each_va_safe(9)enum drm_gpuva_op_type(9)struct drm_gpuva_op_map(9)struct drm_gpuva_op_unmap(9)struct drm_gpuva_op_remap(9)struct drm_gpuva_op_prefetch(9)struct drm_gpuva_op(9)struct drm_gpuva_ops(9)drm_gpuva_for_each_op(9)drm_gpuva_for_each_op_safe(9)drm_gpuva_for_each_op_from_reverse(9)drm_gpuva_for_each_op_reverse(9)drm_gpuva_first_op(9)drm_gpuva_last_op(9)drm_gpuva_prev_op(9)drm_gpuva_next_op(9)struct drm_gpuvm_map_req(9)struct drm_gpuvm_ops(9)drm_gpuva_op_remap_to_unmap_range(9)
Yeah. Forty-plus of them. Not me counting, but alsoβ¦ I counted. π Every single one is in there, don't come for me.
π Real talk moment: this page is deliberately tiny. It's one function, one argument, one return value. But the SEE ALSO section? That's the whole friend group chat. Go read those too, iykyk.
And that's the page, bestie! π This one came out of ./include/drm, dated October 2026, and it's filed under the name drm_gpuvm_resv_obj(9) β slay, iconic, no notes. π
π¦ 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