mbox series

[v7,0/7] Fix PF/VF dependency issue

Message ID cover.1567029860.git.sathyanarayanan.kuppuswamy@linux.intel.com (mailing list archive)
Headers show
Series Fix PF/VF dependency issue | expand

Message

Kuppuswamy Sathyanarayanan Aug. 28, 2019, 10:14 p.m. UTC
From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>

Current implementation of ATS, PASID, PRI does not handle VF dependencies
correctly. Following patches addresses this issue.

Changes since v6:
 * Removed locking interfaces used in v6.
 * Made necessary changes to PRI/PASID enable/disable calls to allow
   register changes only for PF.

Changes since v5:
 * Created new patches for PRI/PASID capability caching.
 * Removed individual locks (pri_lock, pasid_lock) and added common
   resource lock to synchronize PRI/PASID updates between PF/VF.
 * Addressed comments from Bjorn Helgaas.

Changes since v4:
 * Defined empty functions for pci_pri_init() and pci_pasid_init() for cases
   where CONFIG_PCI_PRI and CONFIG_PCI_PASID are not enabled.

Changes since v3:
 * Fixed critical path (lock context) in pci_restore_*_state functions.

Changes since v2:
 * Added locking mechanism to synchronize accessing PF registers in VF.
 * Removed spec compliance checks in patches.
 * Addressed comments from Bjorn Helgaas.

Changes since v1:
 * Added more details about the patches in commit log.
 * Removed bulk spec check patch.
 * Addressed comments from Bjorn Helgaas.

Kuppuswamy Sathyanarayanan (7):
  PCI/ATS: Fix pci_prg_resp_pasid_required() dependency issues
  PCI/ATS: Cache PRI capability check result
  PCI/ATS: Cache PASID capability check result
  PCI/ATS: Add PRI support for PCIe VF devices
  PCI/ATS: Add PASID support for PCIe VF devices
  PCI/ATS: Disable PF/VF ATS service independently
  PCI: Skip Enhanced Allocation (EA) initialization for VF device

 drivers/pci/ats.c       | 202 ++++++++++++++++++++++++++++------------
 drivers/pci/pci.c       |   7 ++
 include/linux/pci-ats.h |  12 ++-
 include/linux/pci.h     |   3 +-
 4 files changed, 159 insertions(+), 65 deletions(-)

Comments

Bjorn Helgaas Sept. 5, 2019, 7:22 p.m. UTC | #1
On Wed, Aug 28, 2019 at 03:14:00PM -0700, sathyanarayanan.kuppuswamy@linux.intel.com wrote:
> From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
> 
> Current implementation of ATS, PASID, PRI does not handle VF dependencies
> correctly. Following patches addresses this issue.
> 
> Changes since v6:
>  * Removed locking interfaces used in v6.
>  * Made necessary changes to PRI/PASID enable/disable calls to allow
>    register changes only for PF.
> 
> Changes since v5:
>  * Created new patches for PRI/PASID capability caching.
>  * Removed individual locks (pri_lock, pasid_lock) and added common
>    resource lock to synchronize PRI/PASID updates between PF/VF.
>  * Addressed comments from Bjorn Helgaas.
> 
> Changes since v4:
>  * Defined empty functions for pci_pri_init() and pci_pasid_init() for cases
>    where CONFIG_PCI_PRI and CONFIG_PCI_PASID are not enabled.
> 
> Changes since v3:
>  * Fixed critical path (lock context) in pci_restore_*_state functions.
> 
> Changes since v2:
>  * Added locking mechanism to synchronize accessing PF registers in VF.
>  * Removed spec compliance checks in patches.
>  * Addressed comments from Bjorn Helgaas.
> 
> Changes since v1:
>  * Added more details about the patches in commit log.
>  * Removed bulk spec check patch.
>  * Addressed comments from Bjorn Helgaas.
> 
> Kuppuswamy Sathyanarayanan (7):
>   PCI/ATS: Fix pci_prg_resp_pasid_required() dependency issues
>   PCI/ATS: Cache PRI capability check result
>   PCI/ATS: Cache PASID capability check result
>   PCI/ATS: Add PRI support for PCIe VF devices
>   PCI/ATS: Add PASID support for PCIe VF devices
>   PCI/ATS: Disable PF/VF ATS service independently
>   PCI: Skip Enhanced Allocation (EA) initialization for VF device

To make it easier to backport things, I think these should be
reordered so the important fixes are first, e.g., like this:

    PCI/ATS: Add PRI support for PCIe VF devices
    PCI/ATS: Add PASID support for PCIe VF devices
    PCI/ATS: Disable PF/VF ATS service independently
    PCI/ATS: Cache PRI capability check result
    PCI/ATS: Cache PASID capability check result

I don't think the following ones are actually needed:

    PCI: Skip Enhanced Allocation (EA) initialization for VF device
    PCI/ATS: Fix pci_prg_resp_pasid_required() dependency issues

I'll post a v8 with my proposal.

>  drivers/pci/ats.c       | 202 ++++++++++++++++++++++++++++------------
>  drivers/pci/pci.c       |   7 ++
>  include/linux/pci-ats.h |  12 ++-
>  include/linux/pci.h     |   3 +-
>  4 files changed, 159 insertions(+), 65 deletions(-)
> 
> -- 
> 2.21.0
>