On Tue, Mar 26, 2024 at 01:19:20PM -0700, Mina Almasry wrote:
Are you envisioning that dmabuf support would be added to the block layer
Yes.
(which I understand is part of the VFS and not driver specific),
The block layer isn't really the VFS, it's just another core stack like the network stack.
or as part of the specific storage driver (like nvme for example)? If we can add dmabuf support to the block layer itself that sounds awesome. We may then be able to do devmem TCP on all/most storage devices without having to modify each individual driver.
I suspect we'll still need to touch the drivers to understand it, but hopefully all the main infrastructure can live in the block layer.
In your estimation, is adding dmabuf support to the block layer something technically feasible & acceptable upstream? I notice you suggested it so I'm guessing yes to both, but I thought I'd confirm.
I think so, and I know there has been quite some interest to at least pre-register userspace memory so that the iommu overhead can be pre-loaded. It also is a much better interface for Peer to Peer transfers than what we currently have.