Re: [PATCH v1 1/5] PCI/IOV: Add support to verify PF/VF spec compliance
From: Bjorn Helgaas
Date: Tue Apr 23 2019 - 18:11:38 EST
On Fri, Apr 19, 2019 at 11:41:31AM -0700, sathyanarayanan kuppuswamy wrote:
> On 4/19/19 10:37 AM, Raj, Ashok wrote:
> > On Fri, Apr 19, 2019 at 08:59:18AM -0500, Bjorn Helgaas wrote:
> > > On Wed, Mar 06, 2019 at 02:11:14PM -0800, sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx wrote:
> > > > From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx>
> > > >
> > > > PF/VF implementation must comply with PCIe specification as
> > > > defined in r4.0, sec 9.3.4, 9.3.5, 9.3.6 and 9.3.7. And if
> > > > it does not comply, return error and skip PF/VF device
> > > > creation.
> > > As far as I can tell, this patch basically looks for excuses not to
> > > enable SR-IOV. Does this actually solve a problem? Are there
> > > non-compliant devices out there that blow up if we enable SR-IOV?
> > We ran into one case with a future product for INTx value on VF's. We do have
> > a quirk for it upstream now. We thought it might be good to just run through
> > some of the basic requirements and see if any device violates it, that would allow
> > us to catch them early.
> >
> > We are looking into other things like PASID and End-2-End prefix capability for instance.
> > There is another subtle thing like number of eetlp_prefix_supported. Which i don't
> > pci core checks today, and we might need to do that to be compliant or find devices
> > that break that contract.
> >
> > Real intend is to be find such breaks early, it also helps the product guys :-)
> >
> > With upcoming vIOMMU effort, we need to ensure that capabilities are exported properly
> > depending on if its a SRIOV-PF/VF or a Scalable device.
> >
> > Cheers,
> > Ashok
>
> I agree with Ashok's comments. It helps us find SRIOV related features
> enable/disable issues easily.
>
> Also, there is some of level of spec compliance checks in enabling
> PASID/PRI/ATS already in our existing code.
>
> I am just grouping them together in one place and expanded it for other IOV
> related features.
My $0.02:
- If there's a problem that actually prevents Linux from using a feature,
check for the problem close to the point where we use the feature.
- If you want to check for spec compliance, most of that can be done more
easily in user-space by examining lspci output.
Bjorn