r600_copy_cpdma(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… r600_copy_cpdma(9) β€” from the Kernel API Manual, bestie

okay so picture this: it's a kernel API manual page, the title is r600_copy_cpdma(9), and it is literally about copying pages with the CP DMA engine. iconic behavior. let's get into it 🫢


✨ NAME ✨

r600_copy_cpdma β€” copy pages using the CP DMA engine

like. that's the whole vibe. copying. pages. CP DMA engine. slay πŸ’…


🌸 SYNOPSIS 🌸

struct radeon_fence * r600_copy_cpdma (struct radeon_device *rdev ,
uint64_t src_offset , uint64_t dst_offset , unsigned num_gpu_pages ,
struct dma_resv *resv );

yes bestie it returns a struct radeon_fence *, no cap πŸŽ€


πŸ¦‹ ARGUMENTS πŸ¦‹

okay so every single one of these matters, do not skip:

  • rdev β€” a radeon_device pointer. it's giving "here's your whole GPU device, bestie" energy πŸ‘‘
  • src_offset β€” the src GPU address. where the stuff is coming from πŸ’–
  • dst_offset β€” the dst GPU address. where the stuff is going to ✨
  • num_gpu_pages β€” number of GPU pages to xfer. how many pages we're moving, fr fr 🧚
  • resv β€” DMA reservation object to manage fences. it handles the fence logistics so you don't have to πŸ™ˆ

πŸ”₯ DESCRIPTION πŸ”₯

Copy GPU paging using the CP DMA engine (r6xx+). that's the whole thing, and honestly? obsessed.

It's used by the radeon ttm implementation to move pages if registered as the asic copy callback. so like, if it's registered as that callback, it's the main character doing the page-moving. periodt 🌈

ngl, this is the part where the function either gets picked for the job or it doesn't β€” "if registered as the asic copy callback" is doing a LOT of work in that sentence, so don't forget it πŸ’€

⭐ SEE ALSO ⭐

go look at these, iykyk:


πŸŽ€ sign-off πŸŽ€

that's the whole page, bestie β€” brought to you by ./drivers/gpu/drm/radeon, dated October 2026, and titled r600_copy_cpdma(9) one more time for the people in the back πŸ’œ go copy some pages, you got this 🫢✨

πŸ“¦ where this page comes from