STRUCT XE_PT_STAGE_BIND_WALK(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct xe_pt_stage_bind_walk β€” walk state for the stage_bind walk ✨

okay bestie, welcome to the Kernel API Manual page for struct xe_pt_stage_bind_walk. This struct is literally the walk state for the stage_bind walk, and we're gonna go through every field like it's a group-chat recap β€” but no facts will be lost, promise 🫢


πŸ’– NAME πŸ’–

struct xe_pt_stage_bind_walk β€” Walk state for the stage_bind walk.


✨ SYNOPSIS ✨

okay so the shape is literally this, no cap:

       struct xe_pt_stage_bind_walk {
           struct xe_pt_walk base;
           struct xe_vm *vm;
           struct xe_tile *tile;
           u64 default_vram_pte;
           u64 default_system_pte;
           u64 dma_offset;
           bool needs_64K;
           bool clear_pt;
           u32 target_leaf_level;
           struct xe_vma *vma;
           struct xe_res_cursor *curs;
           u64 va_curs_start;
           struct xe_walk_update {
             struct xe_vm_pgtable_update *entries;
             unsigned int num_used_entries;
             struct xe_pt_update updates[XE_VM_MAX_LEVEL + 1];
           } wupd;
           u64 l0_end_addr;
           u64 addr_64K;
           bool found_64K;
        };

πŸŽ€ Members πŸŽ€

  • base β€” The base class. The foundation of the whole struct, bestie.
  • vm β€” The vm we're building for. Main character VM energy.
  • tile β€” The tile we're building for.
  • default_vram_pte β€” PTE flag only template for VRAM. No address is associated β€” flags only, no address attached πŸ’…
  • default_system_pte β€” PTE flag only template for System. No address is associated β€” same flags-only vibe.
  • dma_offset β€” DMA offset to add to the PTE.
  • needs_64K β€” This address range enforces 64K alignment and granularity on VRAM. 64K girlies only ✨
  • clear_pt β€” clear page table entries during the bind walk.
  • target_leaf_level β€” Page-table level at which to emit leaf PTEs: 0 for normal 4K/64K mappings, 1 for 2M huge pages, and 2 for 1G huge pages. The walk still traverses from the root down; this field tells xe_pt_stage_bind_entry to treat the selected level as a leaf instead of descending further.
  • vma β€” VMA being mapped.
  • curs β€” The DMA address cursor.
  • va_curs_start β€” The Virtual address corresponding to curs->start.
  • wupd β€” Walk output data for page-table updates.
    • wupd.entries β€” Caller provided storage.
    • wupd.num_used_entries β€” Number of update entries used.
    • wupd.updates β€” Tracks the update entry at a given level.
  • l0_end_addr β€” The end address of the current l0 leaf. Used for 64K granularity detection.
  • addr_64K β€” The start address of the current 64K chunk.
  • found_64K β€” Whether add_64K actually points to a 64K chunk.

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/gpu/drm/xe/xe_pt.c and the whole bestie squad:

later, bestie πŸ’… β€” this page is from ./drivers/gpu/drm/xe, dated October 2026, and it's the struct xe_pt...ge_bind_walk(9) page. mwah 🫢✨

πŸ“¦ where this page comes from