i915_vma_bind(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… i915_vma_bind(9) β€” a Kernel API Manual moment

okay bestie, welcome to the Kernel API Manual ✨ today's main character is i915_vma_bind, and honestly? she's doing a lot of behind-the-scenes work so your GPU can vibe.


πŸŽ€ NAME πŸŽ€

i915_vma_bind β€” sets up PTEs for a VMA in its corresponding address space 🫢

Like, that's the whole job. PTEs? Set up. Address space? Corresponding. Slay.


🌸 SYNOPSIS 🌸

int i915_vma_bind (struct i915_vma *vma , unsigned int pat_index , u32
       flags , struct i915_vma_work *work , struct i915_vma_resource *vma_res
       );

yes she takes five arguments, no she will not apologise πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • vma β€” the VMA to map. literally the thing getting mapped, bestie πŸ’–
  • pat_index β€” the PAT index to set in the PTE. it's giving "which memory flavour" ✨
  • flags β€” flags like global or local mapping. yes, the usual flag situation πŸŽ€
  • work β€” a preallocated worker for allocating and binding the PTE. bestie came prepared, no mallocs on the fly πŸ™ˆ
  • vma_res β€” pointer to a preallocated vma resource. heads up: the resource is either consumed or freed. so like… don't go touching it after, iykyk πŸ’€

⭐ DESCRIPTION ⭐

so here's the tea πŸ“ DMA addresses are taken from the scatter-gather table of this object β€” or of this VMA in case of non-default GGTT views β€” and then the PTE entries get set up. no cap, that's the whole ritual ✨

and lowkey the important detail: DMA addresses are also the only part of the SG table we care about. that's it. that's the part that matters. everything else in the SG table is just… there. minding its business 🧚


🌈 SEE ALSO 🌈

go read the source bestie, it's right there πŸ’œ


fr fr: this page lives under ./drivers/gpu/drm/i915, dated October 2026, and it's page i915_vma_bind(9). that's the whole footer, mwah πŸ’‹ thanks for reading, ily, go bind some PTEs 🫢✨
πŸ“¦ where this page comes from