Re: [PATCH v14 vfio 6/8] vfio/pds: Add support for dirty page tracking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 10 Aug 2023 15:11:43 -0300
Jason Gunthorpe <jgg@xxxxxxxxxx> wrote:

> On Thu, Aug 10, 2023 at 11:54:44AM -0600, Alex Williamson wrote:
> > On Thu, 10 Aug 2023 14:43:04 -0300
> > Jason Gunthorpe <jgg@xxxxxxxxxx> wrote:
> >   
> > > On Thu, Aug 10, 2023 at 11:40:08AM -0600, Alex Williamson wrote:
> > >   
> > > > PCI Express® Base Specification Revision 6.0.1, pg 1461:
> > > > 
> > > >   9.3.3.11 VF Device ID (Offset 1Ah)
> > > > 
> > > >   This field contains the Device ID that should be presented for every VF to the SI.
> > > > 
> > > >   VF Device ID may be different from the PF Device ID...
> > > > 
> > > > That?  Thanks,    
> > > 
> > > NVMe matches using the class code, IIRC there is language requiring
> > > the class code to be the same.  
> > 
> > Ok, yes:
> > 
> >   7.5.1.1.6 Class Code Register (Offset 09h)
> >   ...
> >   The field in a PF and its associated VFs must return the same value
> >   when read.
> > 
> > Seems limiting, but it's indeed there.  We've got a lot of cleanup to
> > do if we're going to start rejecting drivers for devices with PCI
> > spec violations though ;)  Thanks,  
> 
> Well.. If we defacto say that Linux is endorsing ignoring this part of
> the spec then I predict we will see more vendors follow this approach.

The NVMe driver will claim PCI_CLASS_STORAGE_EXPRESS devices, but there
are also various vendor/device IDs in the table, some for the purpose
of setting driver data with quirks, some not.  So I think the spec
compliant behavior here would be that the VF replicates the PF class
code and we'd simply need to add the vendor/device explicitly to the id
table.

TBH, I can see why this spec requirement might get overlooked, it's a
rather arbitrary restriction of the VF device.  Thanks,

Alex





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux