xe_vm_range_unbind(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… xe_vm_range_unbind(9) β€” or, "how to say bye to a VM range" πŸŽ€

okay bestie, buckle up, because we're diving into the Kernel API Manual and this one's a little function with a big job. it lives in xe_vm_range_unbind(9) and honestly? it's giving "cleanup crew, but make it GPU" ✨


🌸 NAME 🌸

xe_vm_range_unbind β€” VM range unbind. that's it, that's the whole vibe. short, sweet, and it does exactly what it says on the tin πŸ’–


✨ SYNOPSIS ✨

here's the signature, character for character, no cap:

struct dma_fence * xe_vm_range_unbind (struct xe_vm *vm , struct
       xe_svm_range *range );

so you hand it a vm and a range, and it hands you back a struct dma_fence *. iconic behavior 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

two lil' parameters, both essential, neither optional:

  • vm β€” the VM which the range belongs to. it's the range's home base, its main character, the whole reason we're here πŸ’«
  • range β€” the SVM range to rebind. (yes, the page says rebind even though the function is called unbind β€” we don't make the rules, we just document them πŸ™ˆ)

πŸ’œ DESCRIPTION πŸ’œ

okay so here's what actually goes down: this bad boy unbinds an SVM range, which removes the GPU page tables for that range. poof πŸ’¨ gone. the page tables said "not today" and left the chat.

literally it's the cleanup step. the "you don't live here anymore" moment. and honestly? slay πŸ”₯


⭐ RETURN ⭐

what do you get back, you ask? glad you asked bestie:

  • on success β€” a dma fence for the unbind, so you can signal completion. yes queen, asynchronous and polite πŸ’…
  • on failure β€” an ERR_PTR. 😭 that's your signal that something went sideways, check it before you dereference, fr fr.

🌈 SEE ALSO 🌈

okay this is the part where the manpage goes FULL group-chat-adds-everyone mode. the kernel file in question is:

./drivers/gpu/drm/xe/xe_vm.c

and here's the whole squad, no one left behind, we're all in this thread 🧚:

like I said. everyone. and yes, struct xe_vma_lock_and_validate_flags(9) is written exactly like that β€” we're not touching it, we're not questioning it, we're just passing it along πŸ’€


pro tip from me to you 🫢 β€” xe_vm_range_rebind(9) is right there in the list, so if you ever unbind and then get the urge to rebind... the kernel already thought of that. iykyk ✨

and that's the page, bestie πŸŽ€ this gem came out of ./drivers/gpu/drm/xe, dated October 2026, and it's filed under xe_vm_range_unbind(9) in the Kernel API Manual. go forth, unbind responsibly, and remember: the page tables were never yours to keep πŸŒΈπŸ’–

πŸ“¦ where this page comes from