si_copy_dma(9)
π si_copy_dma(9) β or, how to copy pages with the DMA engine
okay bestie, welcome to the kernel API manual, this one's si_copy_dma(9) and honestly it's giving "small function, big responsibility" β¨
π SYNOPSIS
struct radeon_fence * si_copy_dma (struct radeon_device *rdev , uint64_t
src_offset , uint64_t dst_offset , unsigned num_gpu_pages , struct
dma_resv *resv );
that's the whole vibe, copy it exactly, no cap π«Ά
πΈ ARGUMENTS
so here's who's showing up to the function party:
rdevβ aradeon_devicepointer. it's the main character of this whole thing, literally the device we're working with πsrc_offsetβ the source GPU address. like, where the pages are coming from π¦dst_offsetβ the destination GPU address. where they're going to πnum_gpu_pagesβ number of GPU pages to xfer. yes, "xfer", that's the manual's word, keeping it π this is literally how many pages get movedresvβ reservation object to sync to. the sync bestie, don't forget it πΈ
β¨ DESCRIPTION
okay so the actual tea: this copies GPU paging using the DMA engine (SI). that's it, that's the job π₯
and who uses it? the radeon ttm implementation, to move pages β but only if it's registered as the asic copy callback. conditional queen π so like, no registration, no pages getting moved, iykyk.
π SEE ALSO
go check out the kernel file ./drivers/gpu/drm/radeon/si_dma.c and these iconic siblings:
family reunion fr fr π
ngl this one's short but it eats. every argument matters, so pass them right or the vibe check fails π
mwah, that's a wrap π«Ά this came from ./drivers/gpu/drm/radeon, dated October 2026, and it goes by si_copy_dma(9) β 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