si_copy_dma(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 β€” a radeon_device pointer. 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 moved
  • resv β€” 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