Re: [PATCH RFC 00/15] Add VFIO mediated device support and IMS support for the idxd driver.
From: Jason Gunthorpe <hidden>
Date: 2020-05-13 12:40:29
Also in:
kvm, linux-pci, lkml
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