Re: [PATCH RFC 00/15] Add VFIO mediated device support and IMS support for the idxd driver.

From: Jason Wang
Date: Tue May 12 2020 - 22:30:15 EST



On 2020/5/9 äå8:21, Jason Gunthorpe wrote:
On Fri, May 08, 2020 at 05:09:09PM -0700, Raj, Ashok wrote:
Hi Jason

On Fri, May 08, 2020 at 08:16:10PM -0300, Jason Gunthorpe wrote:
On Fri, May 08, 2020 at 01:47:10PM -0700, Raj, Ashok wrote:

Even when uaccel was under development, one of the options
was to use VFIO as the transport, goal was the same i.e to keep
the user space have one interface.
I feel a bit out of the loop here, uaccel isn't in today's kernel is
it? I've heard about it for a while, it sounds very similar to RDMA,
so I hope they took some of my advice...
I think since 5.7 maybe? drivers/misc/uacce. I don't think this is like
RDMA, its just a plain accelerator. There is no connection management,
memory registration or other things.. IB was my first job at Intel,
but saying that i would be giving my age away:)
rdma was the first thing to do kernel bypass, all this stuff is like
rdma at some level.. I see this looks like the 'warp driver' stuff
redone

Wow, lots wrong here. Oh well.

putting emulation code back into them, except in a more dangerous
kernel location. This does not seem like a net win to me.
Its not a whole lot of emulation right? mdev are soft partitioned. There is
just a single PF, but we can create a separate partition for the guest using
PASID along with the normal BDF (RID). And exposing a consistent PCI like
interface to user space you get everything else for free.

Yes, its not SRIOV, but giving that interface to user space via VFIO, we get
all of that functionality without having to reinvent a different way to do it.

vDPA went the other way, IRC, they went and put a HW implementation of what
virtio is in hardware. So they sort of fit the model. Here the instance
looks and feels like real hardware for the setup and control aspect.
VDPA and this are very similar, of course it depends on the exact HW
implementation.

Jason


Actually this is not a must. Technically we can do ring/descriptor translation in the vDPA driver as what zerocopy AF_XDP did.

Thanks