On Wed, 21 Sep 2016 11:19:17 +0800
Jike Song <jike.s...@intel.com> wrote:

> On 09/21/2016 12:24 AM, Alex Williamson wrote:
> > On Tue, 20 Sep 2016 10:50:47 +0800
> > Jike Song <jike.s...@intel.com> wrote:  
> /* trim the quotations */
> >> Even performing a lightweight sanity check, would require vfio-mdev
> >> to be able to decode the ppos into a particular region, that means
> >> information of all regions should be stored in the framework. I guess
> >> it is not your preferred way :)  
> > 
> > There's certainly a trade-off there, we don't support dynamic regions,
> > the user expects them to be stable and the mdev-core code can expect
> > that also. It might simplify the vendor drivers slightly if the core
> > could perform such a basic sanity test, but the cost to do so would be
> > that the core needs to have an understanding of the region layout of
> > the device.  
> I agree with why the requirement is, but I am suspicious that,
> if we assume the regions are stable, try to encode/decode that within
> the mdev-core framework - instead of vendor drivers - that is because
> we want mdev to be API compatible with vfio-pci?
> Being API compatible with vfio-pci is (IMHO) the most beautiful thing
> in current mdev design, but is it necessary to make it mandatory? 
> How about letting the underlining vendor drivers to decide whether
> it is API compatible with vfio-pci, or will have a different set of
> userspace API?

Are you assuming that I'm suggesting using VFIO_PCI_OFFSET_TO_INDEX in
the mdev core?  We've been through that, I've rejected it, that's not
at all what I'm describing.  The vfio bus driver defines the region
layout, but once defined it is fixed for a given device instance.  A
user does not need to call ioctl(VFIO_DEVICE_GET_REGION_INFO) prior to
every region access to make sure the region offsets haven't changed
dynamically.  If it's fixed to the user than it's also fixed to the
mdev core for a given device instance, so nothing prevents the core
code from doing its own enumeration of the region offsets and sizes and
caching them into data structures.  That has nothing whatsoever to do
with vfio-pci and makes no assumptions about the layout of regions
within device fd. Thanks,


Reply via email to