On Wed, Nov 20, 2019 at 11:24:03PM -0500, Michael S. Tsirkin wrote: > On Wed, Nov 20, 2019 at 11:03:57PM -0400, Jason Gunthorpe wrote: > > Frankly, when I look at what this virtio stuff is doing I see RDMA: > > - Both have a secure BAR pages for mmaping to userspace (or VM) > > - Both are prevented from interacting with the device at a register > > level and must call to the kernel - ie creating resources is a > > kernel call - for security. > > - Both create command request/response rings in userspace controlled > > memory and have HW DMA to read requests and DMA to generate responses > > - Both allow the work on the rings to DMA outside the ring to > > addresses controlled by userspace. > > - Both have to support a mixture of HW that uses on-device security > > or IOMMU based security. > > The main difference is userspace/drivers need to be portable with > virtio. rdma also has a stable/portable user space library API that is portable to multiple operating systems. What you don't like is that RDMA userspace has driver-specific code. Ie the kernel interface is not fully hardware independent. Jason