cik_sdma_vm_write_pte(9)
π cik_sdma_vm_write_pte β kernel API manual, but make it make sense
okay bestie, welcome to the cik_sdma_vm_write_pte(9) page β¨ this one's a little kernel-API moment from the AMDGPU cinematic universe and honestly? it's giving "short but iconic." let's get into it π«Ά
β¨ NAME β¨
cik_sdma_vm_write_pte β update PTEs by writing them manually π
like, you're literally hand-writing page table entries. no cap. you're doing it yourself. π
π¦ SYNOPSIS π¦
void cik_sdma_vm_write_pte (struct amdgpu_ib *ib , uint64_t pe ,
uint64_t value , unsigned count , uint32_t incr );
that's the whole thing, bestie β a void return, so nothing comes back at you. it just does the thing. lowkey obsessed with a function that doesn't need to report back. π
πΈ ARGUMENTS πΈ
okay so every one of these matters, do not skip, this is the whole vibe check of the call:
ibβ indirect buffer to fill with commands π§ this is the little bucket you're dropping your sDMA commands into.peβ addr of the page entry π the address where the page entry lives.valueβ dst addr to write intopeβ the destination address that's gonna get written intope. that's the whole point of the operation.countβ number of page entries to update π not one, not two β this many.incrβ increase next addr byincrbytes π₯ the step size between one entry and the next.
ngl thecount+incrcombo is the main character energy here β you're updating a whole run of entries, andincris what carries you from one to the next π«
π DESCRIPTION π
Update PTEs by writing them manually using sDMA (CIK). π
yep, that's it, that's the description. short, sweet, and extremely on brand. instead of some fancy hardware path doing the PTE updating for you, this bad boy writes them out manually through sDMA on CIK. peak "fine, I'll do it myself" energy πβ¨
π SEE ALSO π
the whole friend group π«Ά β the kernel file first, then the entire cik_sdma ensemble cast:
- Kernel file
./drivers/gpu/drm/amd/amdgpu/cik_sdma.c cik_sdma_init_microcode(9)cik_sdma_ring_get_rptr(9)cik_sdma_ring_get_wptr(9)cik_sdma_ring_set_wptr(9)cik_sdma_ring_emit_ib(9)cik_sdma_ring_emit_hdp_flush(9)cik_sdma_ring_emit_fence(9)cik_sdma_gfx_stop(9)cik_sdma_rlc_stop(9)cik_ctx_switch_enable(9)cik_sdma_enable(9)cik_sdma_gfx_resume(9)cik_sdma_rlc_resume(9)cik_sdma_load_microcode(9)cik_sdma_start(9)cik_sdma_ring_test_ring(9)cik_sdma_ring_test_ib(9)cik_sdma_vm_copy_pte(9)cik_sdma_vm_set_pte_pde(9)cik_sdma_ring_pad_ib(9)cik_sdma_ring_emit_pipeline_sync(9)cik_sdma_ring_emit_vm_flush(9)cik_sdma_emit_copy_buffer(9)cik_sdma_emit_fill_buffer(9)
and that's the page, bestie! π this one lives down in ./drivers/gpu/drm/amd/amdgpu, dated October 2026 β so go forth, write those PTEs by hand, and slay π
β¨π¦
π¦ 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