Linux IOMMU Development
 help / color / mirror / Atom feed
* [PATCH 00/11] iommu/vt-d: Remove superfluous IOMMU IOTLB invalidations
@ 2024-01-16  1:11 Tina Zhang
  2024-01-16  1:11 ` [PATCH 01/11] iommu/vt-d: Retire the treatment for revoking PASIDs with pending pgfaults Tina Zhang
                   ` (10 more replies)
  0 siblings, 11 replies; 26+ messages in thread
From: Tina Zhang @ 2024-01-16  1:11 UTC (permalink / raw)
  To: iommu; +Cc: Lu Baolu, Kevin Tian, Tina Zhang

This series based on "Share sva" patch-set[1], aims to remove superfluous
IOMMU IOTLB invalidations in VT-d driver.

In the current VT-d driver, IOMMU IOTLB invalidation commands and
device-TLB commands are performed per device, which leads to superfluous
IOTLB invalidations. For example, if there are four devices behind a IOMMU
are attached to one sva domain (which could be a common case in
virtualization scenarios where one virtual IOMMU working for all the
virtual devices), four IOTLB invalidation commands and four device-IOTLB
invalidation commands will be issued. However, only one IOTLB invalidation
command and four device-IOTLB invalidation commands are necessary.
Superfluous IOMMU IOTLB invalidations impact run-time performance.

The first 11 patches of this patch-set are for refactoring:
1) Retire struct intel_svm_set_dev_pasid and struct intel_svm_dev to
avoid duplicating code for sva domain.
2) Reuse intel_iommu_set/remove_dev_pasid functions for both sva domain
and dmar_domain.

The last patch removes the superfluous IOMMU IOTLB invalidations.

[1]: https://lore.kernel.org/linux-iommu/ZXgj49cY2PEAwHsB@8bytes.org/


Change log:
RFC: https://lore.kernel.org/linux-iommu/20231017032045.114868-1-tina.zhang@intel.com/

Jason Gunthorpe (1):
  iommu: Add ops->domain_alloc_sva()

Tina Zhang (10):
  iommu/vt-d: Retire the treatment for revoking PASIDs with pending
    pgfaults
  iommu/vt-d: Remove initialization for dynamically heap-allocated
    rcu_head
  iommu/vt-d: Refactor intel_svm_set_dev_pasid function
  iommu/vt-d: Retire struct intel_svm_dev
  iommu/vt-d: Retire struct intel_svm
  iommu/vt-d: Use RCU for dev_pasids list updates in
    set/remove_dev_pasid()
  iommu/vt-d: Add domain_type_is_sva helper function
  iommu/vt-d: Reuse intel_iommu_set_dev_pasid function
  iommu/vt-d: Retire intel_svm_remove_dev_pasid function
  iommu/vt-d: Remove superfluous IOMMU IOTLB invalidations

 drivers/iommu/intel/iommu.c |  76 ++++++----
 drivers/iommu/intel/iommu.h |  31 ++--
 drivers/iommu/intel/svm.c   | 288 ++++++++----------------------------
 drivers/iommu/iommu-sva.c   |  16 +-
 include/linux/iommu.h       |   3 +
 5 files changed, 134 insertions(+), 280 deletions(-)

-- 
2.39.3


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2024-02-19  1:23 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-16  1:11 [PATCH 00/11] iommu/vt-d: Remove superfluous IOMMU IOTLB invalidations Tina Zhang
2024-01-16  1:11 ` [PATCH 01/11] iommu/vt-d: Retire the treatment for revoking PASIDs with pending pgfaults Tina Zhang
2024-01-16  1:11 ` [PATCH 02/11] iommu/vt-d: Remove initialization for dynamically heap-allocated rcu_head Tina Zhang
2024-01-16  1:11 ` [PATCH 03/11] iommu/vt-d: Refactor intel_svm_set_dev_pasid function Tina Zhang
2024-01-16  1:11 ` [PATCH 04/11] iommu/vt-d: Retire struct intel_svm_dev Tina Zhang
2024-01-17  7:20   ` Baolu Lu
2024-01-30  3:04     ` Zhang, Tina
2024-02-16  3:28       ` Zhang, Tina
2024-01-16  1:11 ` [PATCH 05/11] iommu: Add ops->domain_alloc_sva() Tina Zhang
2024-01-16  1:11 ` [PATCH 06/11] iommu/vt-d: Retire struct intel_svm Tina Zhang
2024-01-16  1:11 ` [PATCH 07/11] iommu/vt-d: Use RCU for dev_pasids list updates in set/remove_dev_pasid() Tina Zhang
2024-01-17  7:30   ` Baolu Lu
2024-01-16  1:11 ` [PATCH 08/11] iommu/vt-d: Add domain_type_is_sva helper function Tina Zhang
2024-01-17  7:32   ` Baolu Lu
2024-02-19  0:13     ` Zhang, Tina
2024-02-19  1:05       ` Baolu Lu
2024-01-16  1:11 ` [PATCH 09/11] iommu/vt-d: Reuse intel_iommu_set_dev_pasid function Tina Zhang
2024-01-17  7:40   ` Baolu Lu
2024-02-19  1:01     ` Zhang, Tina
2024-02-19  1:17       ` Baolu Lu
2024-01-16  1:11 ` [PATCH 10/11] iommu/vt-d: Retire intel_svm_remove_dev_pasid function Tina Zhang
2024-01-16  1:11 ` [PATCH 11/11] iommu/vt-d: Remove superfluous IOMMU IOTLB invalidations Tina Zhang
2024-01-17  7:59   ` Baolu Lu
2024-02-16  5:38     ` Zhang, Tina
2024-02-18  9:19       ` Baolu Lu
2024-02-18 13:09         ` Zhang, Tina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox