Re: DMA Engine: Transfer From Userspace

From: Dave Jiang
Date: Wed Jun 24 2020 - 20:42:36 EST




On 6/21/2020 12:24 AM, Vinod Koul wrote:
On 19-06-20, 16:31, Dave Jiang wrote:


On 6/19/2020 3:47 PM, Federico Vaga wrote:
Hello,

is there the possibility of using a DMA engine channel from userspace?

Something like:
- configure DMA using ioctl() (or whatever configuration mechanism)
- read() or write() to trigger the transfer


I may have supposedly promised Vinod to look into possibly providing
something like this in the future. But I have not gotten around to do that
yet. Currently, no such support.

And I do still have serious reservations about this topic :) Opening up
userspace access to DMA does not sound very great from security point of
view.

What about doing it with DMA engine that supports PASID? That way the user can really only trash its own address space and kernel is protected.



Federico, what use case do you have in mind?

We should keep in mind dmaengine is an in-kernel interface providing
services to various subsystems, so you go thru the respective subsystem
kernel interface (network, display, spi, audio etc..) which would in
turn use dmaengine.