Thread (23 messages) 23 messages, 4 authors, 2015-10-08

Re: [PATCH V4 2/6] powerpc/powernv: simplify the calculation of iov resource alignment

From: Alexey Kardashevskiy <hidden>
Date: 2015-10-02 08:58:16

On 08/19/2015 12:01 PM, Wei Yang wrote:
quoted hunk ↗ jump to hunk
The alignment of IOV BAR on PowerNV platform is the total size of the IOV
BAR. No matter whether the IOV BAR is extended with number of
roundup_pow_of_two(total_vfs) or number of max PE number (256), the total
size could be calculated by (vfs_expanded * VF_BAR_size).

This patch simplifies the pnv_pci_iov_resource_alignment() by removing the
first case.

Signed-off-by: Wei Yang <redacted>
Reviewed-by: Gavin Shan <redacted>
---
  arch/powerpc/platforms/powernv/pci-ioda.c |   14 +++++++++-----
  1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index 8c031b5..e3e0acb 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -2988,12 +2988,16 @@ static resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev,
  						      int resno)
  {
  	struct pci_dn *pdn = pci_get_pdn(pdev);
-	resource_size_t align, iov_align;
-
-	iov_align = resource_size(&pdev->resource[resno]);
-	if (iov_align)
-		return iov_align;
+	resource_size_t align;

+	/*
+	 * On PowerNV platform, IOV BAR is mapped by M64 BAR to enable the
+	 * SR-IOV. While from hardware perspective, the range mapped by M64
+	 * BAR should be size aligned.

Out of curiosity - IOV BAR does NOT have to be aligned on other platforms?

+	 *
+	 * This function returns the total IOV BAR size if expanded or just the
+	 * individual size if not.
Expanded vs. non-expanded means "using shared M64" (when it is split by 256 
segments) vs. "using entire M64"?

+	 */
  	align = pci_iov_resource_size(pdev, resno);
  	if (pdn->vfs_expanded)
  		return pdn->vfs_expanded * align;

-- 
Alexey
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help