drm_gpuvm_exec_unlock(9)
π drm_gpuvm_exec_unlock(9) β bestie edition
okay so this is drm_gpuvm_exec_unlock, straight out of the Kernel API Manual, and honestly? she's the cleanup queen. the "we're done here, everyone out of the pool" arc we've all been waiting for π«Ά
β¨ NAME β¨
drm_gpuvm_exec_unlock β lock all dma-resv of all assoiciated BOs
(yes that's literally how it's spelled in the source, "assoiciated", I am not touching it, that's canon now π)
π SYNOPSIS π
void drm_gpuvm_exec_unlock (struct drm_gpuvm_exec *vm_exec );
that's it. one (1) argument. she's lowkey minimalist about it.
πΈ ARGUMENTS πΈ
vm_execβ thedrm_gpuvm_execwrapper. that's the lil container holding everything, and it's the only thing you hand over here. that's her whole job honestly.
π¦ DESCRIPTION π¦
so here's the tea β: this one releases all dma-resv locks of all drm_gem_objects that were previously acquired through drm_gpuvm_exec_lock or its variants.
think of it like the group-chat version of "okay everyone, locks back to whoever had them, we're done". if you grabbed those locks with drm_gpuvm_exec_lock (or any of its variants), this is the function that lets them go. she don't acquire anything, she don't validate anything, she just releases, okay? iconic behaviour, no notes π
ngl, this is literally the counterpart function. the "lock" girlies and the "unlock" girlie are a matched set. always pair them up fr fr β¨
π₯ RETURN π₯
0 on success, negative error code on failure.
yeah, I know, the signature up there says void π β I'm just telling you exactly what the page says, I don't write the docs, I just make them cute. take it up with the kernel, bestie.
π SEE ALSO π
kernel file ./include/drm/drm_gpuvm.h, plus the entire extended universe of related symbols β and I mean the entire universe, strap in π’
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_resv_obj(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_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)
like, that's a lot of reading. go off, you got this ππ
hey bestie quick vibe check: you only get to unlock what you locked. this is the "release what you already grabbed with drm_gpuvm_exec_lock or its variants" function, per the description. don't be out here unlocking things you never locked π
and that's the whole page, mwah π this one came straight from ./include/drm and it's dated October 2026 β so yeah, she's technically from the future. main character energy only. stay slay, keep your locks matched, and see you in the next (9) β¨ππ¦
π¦ 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