xe_vm_range_rebind(9)
β¨ xe_vm_range_rebind(9) β¨
okay so bestie, welcome to the kernel API manual for xe_vm_range_rebind β yes that's the manual name, it's giving "9" as in section 9, we love a numbering moment π
This whole page is about one lil function that (re)binds an SVM range, and I'm gonna walk you through it fr fr.
π NAME π
xe_vm_range_rebind β VM range (re)bind. that's literally it, that's the whole vibe: we're rebinding a range in a VM. iconic, short, slays πΈ
π¦ SYNOPSIS π¦
struct dma_fence * xe_vm_range_rebind (struct xe_vm *vm , struct xe_vma
*vma , struct xe_svm_range *range , u8 tile_mask );
so it hands you back a struct dma_fence * and it takes four things: a vm, a vma, a range, and a tile_mask. keep that in your notes bestie, we're about to go through each one π«Ά
π ARGUMENTS π
vmβ the VM which the range belongs to. like, which VM owns this range? that one. πvmaβ the VMA which the range belongs to. yes, both a VM and a VMA are in the mix, don't mix them up, they're different besties πrangeβ the SVM range to rebind. this is the actual thing we're here for π«tile_maskβ the tile mask to bind the range to. it's au8mask, and it's telling us which tiles we're binding to β¨
π₯ DESCRIPTION π₯
(re)bind SVM range setting up GPU page tables for the range.
that's the entire description and honestly it ate β we're setting up the GPU page tables for the range, and the "(re)" in parens means it's a bind or a rebind situation, no cap. π₯οΈπ
β RETURN β
on success you get a dma fence for the rebind to signal completion on (so like, watch the fence, it'll tell you when it's done π¦). on failure you get an ERR_PTR π β so check it, bestie, don't just vibe past it.
π SEE ALSO π
the whole squad, in order, and yes I'm listing every single one because that's what we do here π:
- Kernel file
./drivers/gpu/drm/xe/xe_vm.c xe_vm_drm_exec_lock(9)xe_vm_remove_compute_exec_queue(9)xe_vm_kill(9)xe_vm_validate_rebind(9)xe_vm_bump_lru(9)xe_vm_resume_rebind_worker(9)xe_vm_add_fault_entry_pf(9)xe_vm_range_unbind(9)xe_vma_mem_attr_copy(9)xe_vm_lock_vma(9)xe_vm_create_scratch(9)xe_vm_find_vma_by_addr(9)xe_vma_has_default_mem_attrs(9)struct xe_vma_lock_and_validate_flags(9)xe_vm_bind_kernel_bo(9)xe_vm_lock(9)xe_vm_unlock(9)xe_vm_invalidate_vma_submit(9)xe_vm_invalidate_vma(9)xe_vma_need_vram_for_atomic(9)xe_vm_alloc_madvise_vma(9)xe_vm_find_cpu_addr_mirror_vma_range(9)xe_vm_alloc_cpu_addr_mirror_vma(9)xe_vm_add_exec_queue(9)xe_vm_remove_exec_queue(9)
(and yes, struct xe_vma_lock_and_validate_flags(9) is written exactly like that in the original β struct and all β so I'm keeping it exactly like that π«‘)
ngl if you're skimming this page for the answer: bind β set up GPU page tables β get a fence on success or an ERR_PTR on failure. that's the tea β and the rest is just the vibes.
π alright bestie, that's the whole page! this came out of the ./drivers/gpu/drm/xe source tree π§ and it's dated October 2026 β¨ β and honestly? she's serving kernel documentation realness. periodt. π
π
π¦ 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