STRUCT DRM_I915_GEM_VM_UNBIND(9)
π struct drm_i915_gem_vm_unbind(9) π
okay bestie, welcome to the Kernel API Manual corner where we talk about the struct that tells the GPU "unbind this VA range, please and thank you." It's giving cleanup-crew energy, no cap. π§Ήβ¨
β¨ NAME β¨
struct drm_i915_gem_vm_unbind β VA to object mapping to unbind. π
πΈ SYNOPSIS πΈ
struct drm_i915_gem_vm_unbind {
__u32 vm_id;
__u32 rsvd;
__u64 start;
__u64 length;
__u64 flags;
struct drm_i915_gem_timeline_fence fence;
__u64 extensions;
};
π«Ά Members π«Ά
vm_idβ the VM (address space) id to bind. yes, the manual says bind, and we're keeping it exactly like that. π«‘rsvdβ reserved, MBZ. πstartβ virtual address start to unbind. πlengthβ length of mapping to unbind. πflagsβ currently reserved, MBZ. note thatfencecarries its own flags.fenceβ timeline fence for unbind completion signaling. π¦ timeline fence is of formatstruct drm_i915_gem_timeline_fence. it is an out fence, hence usingI915_TIMELINE_FENCE_WAITflag is invalid, and an error will be returned. ifI915_TIMELINE_FENCE_SIGNALflag is not set, then out fence is not requested and unbinding is completed synchronously.extensionsβ zero-terminated chain of extensions. for future extensions. seestruct i915_user_extension.
π Description π
this structure is passed to the VM_UNBIND ioctl and specifies the GPU virtual address (VA) range that should be unbound from the device page table of the specified address space (VM). VM_UNBIND will force unbind the specified range from device page table without waiting for any GPU job to complete. it is UMDs responsibility to ensure the mapping is no longer in use before calling VM_UNBIND. π«Ά
bestie, the manual is literally saying it's UMDs responsibility to make sure the mapping is no longer in use before calling VM_UNBIND. do not skip that part. π¨
if the specified mapping is not found, the ioctl will simply return without any error. β¨
VM_BIND/UNBIND ioctl calls executed on different CPU threads concurrently are not ordered. furthermore, parts of the VM_UNBIND operation can be done asynchronously, if valid fence is specified.
π¦ SEE ALSO π¦
- kernel file
./Documentation/gpu/rfc/i915_vm_bind.h I915_PARAM_VM_BIND_VERSION(9)I915_VM_CREATE_FLAGS_USE_VM_BIND(9)struct drm_i915_gem_timeline_fence(9)struct drm_i915_gem_vm_bind(9)struct drm_i915_gem_execbuffer3(9)struct drm_i915_gem_create_ext_vm_private(9)
that's the whole vibe, bestie. this page is from ./Documentation/gpu/rfc, dated October 2026 β go off, kernel docs. π
πβ¨
π¦ 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