STRUCT XE_PT_STAGE_BIND_WALK(9)
β¨ 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β Thevmwe'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:0for normal 4K/64K mappings,1for 2M huge pages, and2for 1G huge pages. The walk still traverses from the root down; this field tellsxe_pt_stage_bind_entryto 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 tocurs->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β Whetheradd_64Kactually points to a 64K chunk.
π₯ SEE ALSO π₯
Kernel file ./drivers/gpu/drm/xe/xe_pt.c and the whole bestie squad:
xe_pt_create(9)xe_pt_populate_empty(9)xe_pt_shift(9)xe_pt_destroy(9)xe_pt_clear(9)Pagetable building(9)xe_pt_stage_bind(9)xe_pt_nonshared_offsets(9)xe_pt_zap_ptes(9)xe_pt_zap_ptes_range(9)xe_pt_stage_unbind(9)xe_pt_update_ops_prepare(9)xe_pt_update_ops_run(9)xe_pt_update_ops_fini(9)xe_pt_update_ops_abort(9)
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
- 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