[PATCH v2 0/2] Add support to enable ATS on VFs independently

Ganapatrao Kulkarni posted 2 patches 2 years, 6 months ago
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 25 +++++++++++++++-
drivers/pci/ats.c                           | 33 +++++++++++++++++++--
include/linux/pci-ats.h                     |  3 ++
3 files changed, 58 insertions(+), 3 deletions(-)
[PATCH v2 0/2] Add support to enable ATS on VFs independently
Posted by Ganapatrao Kulkarni 2 years, 6 months ago
As discussed in [1], adding a helper function to configure the STU of an
ATS capability. Function pci_ats_stu_configure() can be called to program
the STU while enumerating the PF, to support scenarios like PF is not
enabled with ATS, whereas VFs can enable it.

In SMMU-V3 driver, calling pci_ats_stu_configure() to confgiure the STU
while enumerating a PF in passthrough mode.

[1] https://lore.kernel.org/linux-arm-kernel/20230221154624.GA3701506@bhelgaas/T/

v2:
	- Added dummy definition for pci_ats_stu_configure.
	- Changed STU configure to read modify write.

Ganapatrao Kulkarni (2):
  PCI/ATS: Add a helper function to configure ATS STU of a PF.
  iommu/arm-smmu-v3: Configure STU of a PF if ATS is not enabled.

 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 25 +++++++++++++++-
 drivers/pci/ats.c                           | 33 +++++++++++++++++++--
 include/linux/pci-ats.h                     |  3 ++
 3 files changed, 58 insertions(+), 3 deletions(-)

-- 
2.38.1
Re: [PATCH v2 0/2] Add support to enable ATS on VFs independently
Posted by Sathyanarayanan Kuppuswamy 2 years, 6 months ago

On 2/27/23 8:21 PM, Ganapatrao Kulkarni wrote:
> As discussed in [1], adding a helper function to configure the STU of an
> ATS capability. Function pci_ats_stu_configure() can be called to program
> the STU while enumerating the PF, to support scenarios like PF is not
> enabled with ATS, whereas VFs can enable it.
> 
> In SMMU-V3 driver, calling pci_ats_stu_configure() to confgiure the STU
> while enumerating a PF in passthrough mode.

It looks like you are fixing this issue only for your platform. Is there any
way to generically program PF STU? May be from pci_ats_init()?

-- 
Sathyanarayanan Kuppuswamy
Linux Kernel Developer