Subject: Re: [net-next v2 1/1] virtual-bus: Implementation of Virtual Bus

From: Jason Gunthorpe <[email-masked]>
Date: Thu, 21 Nov 2019 09:44:38 -0400

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