On Fri, Dec 11, 2020 at 12:59:52PM -0700, David Ahern wrote: > On 12/11/20 11:45 AM, Jakub Kicinski wrote: > > Ack, these patches are not exciting (to me), so I'm wondering if there > > is a better way. The only reason NIC would have to understand a ULP for > > ZC is to parse out header/message lengths. There's gotta be a way to > > pass those in header options or such... > > > > And, you know, if we figure something out - maybe we stand a chance > > against having 4 different zero copy implementations (this, TCP, > > AF_XDP, netgpu) :( > > AF_XDP is for userspace IP/TCP/packet handling. > > netgpu is fundamentally kernel stack socket with zerocopy direct to > userspace buffers. Yes, it has more complications like the process is > running on a GPU, but essential characteristics are header / payload > split, a kernel stack managed socket, and dedicated H/W queues for the > socket and those are all common to what the nvme patches are doing. So, > can we create a common framework for those characteristics which enables > other use cases (like a more generic Rx zerocopy)?
AF_XDP could also be viewed as a special case of netgpu. -- Jonathan