linux 2.6.17+ has the ability to copy (DMA)-memory directly via a kernel buffer, using the syscall splice(). an advantage is, that the CPU isnt involved at all.
i have several firewire cams which deliver their data via DMA. then i copy the data with cudamemcpy() onto the device (which is done by DMA, too, i think).
this way there is a heavy CPU usage, because the data is copied by using userspace memory. but this wouldnt be necessary, if “zero copying” described above could be used.
i know that the driver should support a solution for that in the future. but do you guys here see a way, doing it of your own?
it s a very linux specific question, sorry for that ;)