From: Gavin Shan <gwshan@linux.vnet.ibm.com>
To: Wei Yang <weiyang@linux.vnet.ibm.com>
Cc: Gavin Shan <gwshan@linux.vnet.ibm.com>,
aik@ozlabs.ru, benh@kernel.crashing.org, linuxppc-dev@ozlabs.org,
mpe@ellerman.id.au
Subject: Re: [PATCH V5 2/6] powerpc/powernv: simplify the calculation of iov resource alignment
Date: Wed, 14 Oct 2015 12:22:21 +1100 [thread overview]
Message-ID: <20151014012221.GB22356@gwshan> (raw)
In-Reply-To: <20151013035643.GB2858@richards-mbp.cn.ibm.com>
On Tue, Oct 13, 2015 at 11:56:43AM +0800, Wei Yang wrote:
>On Tue, Oct 13, 2015 at 02:27:52PM +1100, Gavin Shan wrote:
>>On Tue, Oct 13, 2015 at 10:45:45AM +0800, Wei Yang wrote:
>>>On Tue, Oct 13, 2015 at 11:13:50AM +1100, Gavin Shan wrote:
>>>>On Fri, Oct 09, 2015 at 10:46:52AM +0800, Wei Yang wrote:
>>>>>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 <weiyang@linux.vnet.ibm.com>
>>>>>Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
>>>>>Acked-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>>>>>---
>>>>> arch/powerpc/platforms/powernv/pci-ioda.c | 20 ++++++++++++--------
>>>>> 1 file changed, 12 insertions(+), 8 deletions(-)
>>>>>
>>>>>diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>>index 8c031b5..7da476b 100644
>>>>>--- a/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>>+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>>@@ -2988,17 +2988,21 @@ 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.
>>>>>+ *
>>>>>+ * This function returns the total IOV BAR size if M64 BAR is in
>>>>>+ * Shared PE mode or just the individual size if not.
>>>>>+ */
>>>>
>>>>s/the invidial size/VF BAR size
>>>>
>>>>> align = pci_iov_resource_size(pdev, resno);
>>>>>- if (pdn->vfs_expanded)
>>>>>- return pdn->vfs_expanded * align;
>>>>>+ if (!pdn->vfs_expanded)
>>>>>+ return align;
>>>>>
>>>>>- return align;
>>>>>+ return pdn->vfs_expanded * align;
>>>>
>>>>There is no difference before/after the changes. why this change is needed?
>>>>
>>>
>>>After change the logic is more clear.
>>>
>>>Alignment equals to the total size when IOV BAR is expanded or equals to the
>>>VF BAR size. We don't need to check whether IOV BAR is truncated.
>>>
>>
>>I didn't get what you're talking about with "IOV BAR is truncated". I also
>>didn't get what has been really changed from last 3 lines changes.
>>
>> if (pdn->vfs_expanded) if (!pdn->vfs_expanded)
>> return pdn->vfs_expanded * align; return align;
>> return align; return pdn->vfs_expanded * align;
>>
>
>Truncated IOV BAR resource happens during sizing state, since IOV BAR is
>optional. While we still need to get the correct alignment during this
>process.
>
I don't see how your claim here is related. And, the IOV BAR can be
expanded as well depending on how much VFs the PF is going to support
virtually based on IOV BAR size.
>The code before and after change has the same meaning, while the later one is
>prepared for the single mode M64 BAR. You could look at the final version
>after single mode M64 is introduced.
>
I still don't see any strong reason to have this - nothing changed, but
it's not a big deal, I guess...
>>>>> }
>>>>> #endif /* CONFIG_PCI_IOV */
>>>>>
>>>>>--
>>>>>2.5.0
>>>>>
>>>
>>>--
>>>Richard Yang
>>>Help you, Help me
>
>--
>Richard Yang
>Help you, Help me
next prev parent reply other threads:[~2015-10-14 1:23 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-09 2:46 [PATCH V5 0/6] Redesign SR-IOV on PowerNV Wei Yang
2015-10-09 2:46 ` [PATCH V5 1/6] powerpc/powernv: don't enable SRIOV when VF BAR has non 64bit-prefetchable BAR Wei Yang
2015-10-09 8:15 ` Benjamin Herrenschmidt
2015-10-09 9:02 ` David Laight
2015-10-12 3:16 ` Wei Yang
2015-10-12 2:58 ` Wei Yang
2015-10-12 6:55 ` Benjamin Herrenschmidt
2015-10-13 2:30 ` Wei Yang
2015-10-13 0:01 ` Gavin Shan
2015-10-13 1:49 ` Wei Yang
2015-10-13 3:20 ` Gavin Shan
2015-10-13 3:50 ` Wei Yang
2015-10-09 2:46 ` [PATCH V5 2/6] powerpc/powernv: simplify the calculation of iov resource alignment Wei Yang
2015-10-13 0:13 ` Gavin Shan
2015-10-13 2:45 ` Wei Yang
2015-10-13 3:27 ` Gavin Shan
2015-10-13 3:56 ` Wei Yang
2015-10-14 1:22 ` Gavin Shan [this message]
2015-10-09 2:46 ` [PATCH V5 3/6] powerpc/powernv: use one M64 BAR in Single PE mode for one VF BAR Wei Yang
2015-10-12 23:55 ` Gavin Shan
2015-10-13 2:50 ` Wei Yang
2015-10-13 3:32 ` Gavin Shan
2015-10-13 5:29 ` Wei Yang
2015-10-14 1:15 ` Gavin Shan
2015-10-15 7:29 ` Wei Yang
2015-10-09 2:46 ` [PATCH V5 4/6] powerpc/powernv: replace the hard coded boundary with gate Wei Yang
2015-10-09 2:46 ` [PATCH V5 5/6] powerpc/powernv: boundary the total VF BAR size instead of the individual one Wei Yang
2015-10-09 2:46 ` [PATCH V5 6/6] powerpc/powernv: allocate sparse PE# when using M64 BAR in Single PE mode Wei Yang
-- strict thread matches above, loose matches on Subject: below --
2015-09-03 1:29 [PATCH V5 0/6] Redesign SR-IOV on PowerNV Wei Yang
2015-09-03 1:29 ` [PATCH V5 2/6] powerpc/powernv: simplify the calculation of iov resource alignment Wei Yang
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=20151014012221.GB22356@gwshan \
--to=gwshan@linux.vnet.ibm.com \
--cc=aik@ozlabs.ru \
--cc=benh@kernel.crashing.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=weiyang@linux.vnet.ibm.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