Subject: Re: [PATCH net-next] xsk: introduce xsk_dma_ops

From: Jakub Kicinski <[email-masked]>
Date: Thu, 20 Apr 2023 07:13:49 -0700

On Wed, 19 Apr 2023 23:19:22 -0700 Christoph Hellwig wrote:
> > In this case yes, pinned user memory, it gets sliced up into MTU sized
> > chunks, fed into an Rx queue of a device, and user can see packets
> > without any copies.  
> 
> How long is the life time of these mappings?  Because dma_map_*
> assumes a temporary mapping and not one that is pinned bascically
> forever.

Yeah, this one is "for ever".

> > Quite similar use case #2 is upcoming io_uring / "direct placement"
> > patches (former from Meta, latter for Google) which will try to receive
> > just the TCP data into pinned user memory.  
> 
> I don't think we can just long term pin user memory here.  E.g. for
> confidential computing cases we can't even ever do DMA straight to
> userspace.  I had that conversation with Meta's block folks who
> want to do something similar with io_uring and the only option is an
> an allocator for memory that is known DMAable, e.g. through dma-bufs.
> 
> You guys really all need to get together and come up with a scheme
> that actually works instead of piling these hacks over hacks.

Okay, that simplifies various aspects. We'll just used dma-bufs from
the start in the new APIs.