Linux IOMMU Development
 help / color / mirror / Atom feed
From: Lu Baolu <baolu.lu@linux.intel.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: Kevin Tian <kevin.tian@intel.com>,
	Muhammad Usama Anjum <usama.anjum@collabora.com>,
	iommu@lists.linux-foundation.org,
	Jason Gunthorpe <jgg@nvidia.com>, Christoph Hellwig <hch@lst.de>
Subject: [PATCH 4/8] iommu/vt-d: Size Page Request Queue to avoid overflow condition
Date: Tue, 10 May 2022 10:34:03 +0800	[thread overview]
Message-ID: <20220510023407.2759143-5-baolu.lu@linux.intel.com> (raw)
In-Reply-To: <20220510023407.2759143-1-baolu.lu@linux.intel.com>

PRQ overflow may cause I/O throughput congestion, resulting in unnecessary
degradation of I/O performance. Appropriately increasing the length of PRQ
can greatly reduce the occurrence of PRQ overflow. The count of maximum
page requests that can be generated in parallel by a PCIe device is
statically defined in the Outstanding Page Request Capacity field of the
PCIe ATS configure space.

The new length of PRQ is calculated by summing up the value of Outstanding
Page Request Capacity register across all devices where Page Requests are
supported on the real PR-capable platform (Intel Sapphire Rapids). The
result is round to the nearest higher power of 2.

The PRQ length is also double sized as the VT-d IOMMU driver only updates
the Page Request Queue Head Register (PQH_REG) after processing the entire
queue.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Link: https://lore.kernel.org/r/20220421113558.3504874-1-baolu.lu@linux.intel.com
---
 include/linux/intel-svm.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/intel-svm.h b/include/linux/intel-svm.h
index b3b125b332aa..207ef06ba3e1 100644
--- a/include/linux/intel-svm.h
+++ b/include/linux/intel-svm.h
@@ -9,7 +9,7 @@
 #define __INTEL_SVM_H__
 
 /* Page Request Queue depth */
-#define PRQ_ORDER	2
+#define PRQ_ORDER	4
 #define PRQ_RING_MASK	((0x1000 << PRQ_ORDER) - 0x20)
 #define PRQ_DEPTH	((0x1000 << PRQ_ORDER) >> 5)
 
-- 
2.25.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

  parent reply	other threads:[~2022-05-10  2:37 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-10  2:33 [PATCH 0/8] [PULL REQUEST] Intel IOMMU updates for Linux v5.19 Lu Baolu
2022-05-10  2:34 ` [PATCH 1/8] iommu/vt-d: Remove unneeded validity check on dev Lu Baolu
2022-05-10  2:34 ` [PATCH 2/8] iommu/vt-d: Change return type of dmar_insert_one_dev_info() Lu Baolu
2022-05-10  2:34 ` [PATCH 3/8] iommu/vt-d: Fold dmar_insert_one_dev_info() into its caller Lu Baolu
2022-05-10  2:34 ` Lu Baolu [this message]
2022-05-10  2:34 ` [PATCH 5/8] iommu/vt-d: Block force-snoop domain attaching if no SC support Lu Baolu
2022-05-10  2:34 ` [PATCH 6/8] iommu/vt-d: Check domain force_snooping against attached devices Lu Baolu
2022-05-10  2:34 ` [PATCH 7/8] iommu/vt-d: Remove domain_update_iommu_snooping() Lu Baolu
2022-05-10  2:34 ` [PATCH 8/8] iommu/vt-d: Remove hard coding PGSNP bit in PASID entries Lu Baolu
2022-05-13 13:15 ` [PATCH 0/8] [PULL REQUEST] Intel IOMMU updates for Linux v5.19 Joerg Roedel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220510023407.2759143-5-baolu.lu@linux.intel.com \
    --to=baolu.lu@linux.intel.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jgg@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=usama.anjum@collabora.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox