Re: [PATCH RFC 00/15] Add VFIO mediated device support and IMS support for the idxd driver.
From: Jason Gunthorpe
Date: Wed May 13 2020 - 08:40:30 EST
On Wed, May 13, 2020 at 08:30:15AM +0000, Tian, Kevin wrote:
> When talking about virtualization, here the target is unmodified guest
> kernel driver which expects seeing the raw controllability of queues
> as defined by device spec. In idxd, such controllability includes enable/
> disable SVA, dedicated or shared WQ, size, threshold, privilege, fault
> mode, max batch size, and many other attributes. Different guest OS
> has its own policy of using all or partial available controllability.
>
> When talking about application, we care about providing an efficient
> programming interface to userspace. For example with uacce, we
> allow an application to submit vaddr-based workloads to a reserved
> WQ with kernel bypassed. But it's not necessary to export the raw
> controllability of the reserved WQ to userspace, and we still rely on
> kernel driver to configure it including bind_mm. I'm not sure whether
> uacce would like to evolve as a generic queue management system
> including non-SVA and all vendor specific raw capabilities as
> expected by all kinds of guest kernel drivers. It sounds like not
> worthwhile at this point, given that we already have an highly efficient
> SVA interface for user applications.
Like I already said, you should get the people who care about this
stuff to support emulation in the kernel. I think it has not been
explained well in past.
Most Intel info on SIOV draws a close parallel to SRIOV and I think
people generally assume, that like SRIOV, SIOV does not include kernel
side MMIO emulations.
> If in the future, there do have such requirement of delegating raw
> WQ controllability to pure userspace applications for DMA engines,
> and there is be a well-defined uAPI to cover a large common set of
> controllability across multiple vendors, we will look at that option for
> sure.
All this Kernel bypass stuff is 'HW specific' by nature, you should
not expect to have general interfaces.
Jason