All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wei Yang <weiyang@linux.vnet.ibm.com>
To: Gavin Shan <gwshan@linux.vnet.ibm.com>
Cc: Wei Yang <weiyang@linux.vnet.ibm.com>,
	benh@au1.ibm.com, linuxppc-dev@lists.ozlabs.org,
	bhelgaas@google.com, linux-pci@vger.kernel.org,
	yan@linux.vnet.ibm.com, qiudayu@linux.vnet.ibm.com
Subject: Re: [RFC PATCH V3 12/17] powerpc/powernv: implement pcibios_sriov_resource_alignment on powernv
Date: Tue, 24 Jun 2014 09:24:14 +0800	[thread overview]
Message-ID: <20140624012414.GA5204@richard> (raw)
In-Reply-To: <20140623232922.GA4018@shangw>

On Tue, Jun 24, 2014 at 09:29:22AM +1000, Gavin Shan wrote:
>On Mon, Jun 23, 2014 at 04:21:42PM +0800, Wei Yang wrote:
>>On Mon, Jun 23, 2014 at 04:09:47PM +1000, Gavin Shan wrote:
>>>On Tue, Jun 10, 2014 at 09:56:34AM +0800, Wei Yang wrote:
>>>>This patch implements the pcibios_sriov_resource_alignment() on powernv
>>>>platform.
>>>>
>>>>Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
>>>>---
>>>> arch/powerpc/include/asm/machdep.h        |    1 +
>>>> arch/powerpc/kernel/pci-common.c          |    8 ++++++++
>>>> arch/powerpc/platforms/powernv/pci-ioda.c |   17 +++++++++++++++++
>>>> 3 files changed, 26 insertions(+)
>>>>
>>>>diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h
>>>>index 2f2e770..3bbc55f 100644
>>>>--- a/arch/powerpc/include/asm/machdep.h
>>>>+++ b/arch/powerpc/include/asm/machdep.h
>>>>@@ -242,6 +242,7 @@ struct machdep_calls {
>>>> 	resource_size_t (*pcibios_window_alignment)(struct pci_bus *, unsigned long type);
>>>> #ifdef CONFIG_PCI_IOV
>>>> 	resource_size_t (*__pci_sriov_resource_size)(struct pci_dev *, int resno);
>>>>+	resource_size_t (*__pci_sriov_resource_alignment)(struct pci_dev *, int resno, resource_size_t align);
>
>Both lines exceed 80 lines here :)
>
>>>> #endif /* CONFIG_PCI_IOV */
>>>>
>>>> 	/* Called to shutdown machine specific hardware not already controlled
>>>>diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
>>>>index c4e2e92..35345ac 100644
>>>>--- a/arch/powerpc/kernel/pci-common.c
>>>>+++ b/arch/powerpc/kernel/pci-common.c
>>>>@@ -128,6 +128,14 @@ resource_size_t pcibios_sriov_resource_size(struct pci_dev *pdev, int resno)
>>>>
>>>> 	return 0;
>>>> }
>>>>+
>>>>+resource_size_t pcibios_sriov_resource_alignment(struct pci_dev *pdev, int resno, resource_size_t align)
>>>>+{
>>>>+	if (ppc_md.__pci_sriov_resource_alignment)
>>>>+		return ppc_md.__pci_sriov_resource_alignment(pdev, resno, align);
>>>>+
>>>>+	return 0;
>>>>+}
>>>> #endif /* CONFIG_PCI_IOV */
>>>>
>>>> static resource_size_t pcibios_io_size(const struct pci_controller *hose)
>>>>diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>index 7dfad6a..b0ac851 100644
>>>>--- a/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>@@ -1573,6 +1573,22 @@ static resource_size_t __pnv_pci_sriov_resource_size(struct pci_dev *pdev, int r
>>>>
>>>> 	return size;
>>>> }
>>>>+
>>>>+static resource_size_t __pnv_pci_sriov_resource_alignment(struct pci_dev *pdev, int resno,
>>>>+		resource_size_t align)
>>>
>>>The function could be "pcibios_sriov_resource_alignment()", but it's not a big deal.
>>>If you prefer the original one, then keep it :)
>>
>>I guess you want to name it to pnv_pcibios_sriov_resource_alignment()?
>>pcibios_sriov_resource_alignment() is the general name for this function.
>>
>>If yes, this is changed.
>>
>
>Nope, What I mean is to have something like this:
>
>	struct machdep_calls {
>		:
>	#ifdef CONFIG_PCI_IOV
>	resource_size_t (*pci_sriov_resource_size)(struct pci_dev *dev,
>						   int resno);
>	resource_size_t (*pci_sriov_resource_alignment)(struct pci_dev *dev,
>							int resno,
>							resource_size_t align);
>	#endif
>		:
>	}
>
>	ppc_md.pci_sriov_resource_size = pnv_pci_iov_res_size;
>	ppc_md.pci_sriov_resource_alignment = pnv_pci_iov_res_alignment;
>
>The point is not to have prefix "__" for callbacks in "struct machdep_calls".
>ppc_md.__pci_sriov_resource_size is the first one that has prefix "__"

Yep, will change the name.

>
>>>
>>>>+{
>>>>+	struct pci_dn *pdn = pci_get_pdn(pdev);
>>>>+	resource_size_t iov_align;
>>>>+
>>>>+	iov_align = resource_size(&pdev->resource[resno]);
>>>>+	if (iov_align)
>>>>+		return iov_align;
>>>>+
>>>>+	if (pdn->vfs)
>>>>+		return pdn->vfs * align;
>>>>+
>>>>+	return align;
>>>>+}
>>>> #endif /* CONFIG_PCI_IOV */
>>>>
>>>> /* Prevent enabling devices for which we couldn't properly
>>>>@@ -1777,6 +1793,7 @@ void __init pnv_pci_init_ioda_phb(struct device_node *np,
>>>> 	ppc_md.pcibios_window_alignment = pnv_pci_window_alignment;
>>>> #ifdef CONFIG_PCI_IOV
>>>> 	ppc_md.__pci_sriov_resource_size = __pnv_pci_sriov_resource_size;
>>>>+	ppc_md.__pci_sriov_resource_alignment = __pnv_pci_sriov_resource_alignment;
>>>> #endif /* CONFIG_PCI_IOV */
>>>> 	pci_add_flags(PCI_REASSIGN_ALL_RSRC);
>>>>
>
>Thanks,
>Gavin

-- 
Richard Yang
Help you, Help me


WARNING: multiple messages have this Message-ID (diff)
From: Wei Yang <weiyang@linux.vnet.ibm.com>
To: Gavin Shan <gwshan@linux.vnet.ibm.com>
Cc: Wei Yang <weiyang@linux.vnet.ibm.com>,
	benh@au1.ibm.com, linux-pci@vger.kernel.org,
	yan@linux.vnet.ibm.com, bhelgaas@google.com,
	qiudayu@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org
Subject: Re: [RFC PATCH V3 12/17] powerpc/powernv: implement pcibios_sriov_resource_alignment on powernv
Date: Tue, 24 Jun 2014 09:24:14 +0800	[thread overview]
Message-ID: <20140624012414.GA5204@richard> (raw)
In-Reply-To: <20140623232922.GA4018@shangw>

On Tue, Jun 24, 2014 at 09:29:22AM +1000, Gavin Shan wrote:
>On Mon, Jun 23, 2014 at 04:21:42PM +0800, Wei Yang wrote:
>>On Mon, Jun 23, 2014 at 04:09:47PM +1000, Gavin Shan wrote:
>>>On Tue, Jun 10, 2014 at 09:56:34AM +0800, Wei Yang wrote:
>>>>This patch implements the pcibios_sriov_resource_alignment() on powernv
>>>>platform.
>>>>
>>>>Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
>>>>---
>>>> arch/powerpc/include/asm/machdep.h        |    1 +
>>>> arch/powerpc/kernel/pci-common.c          |    8 ++++++++
>>>> arch/powerpc/platforms/powernv/pci-ioda.c |   17 +++++++++++++++++
>>>> 3 files changed, 26 insertions(+)
>>>>
>>>>diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h
>>>>index 2f2e770..3bbc55f 100644
>>>>--- a/arch/powerpc/include/asm/machdep.h
>>>>+++ b/arch/powerpc/include/asm/machdep.h
>>>>@@ -242,6 +242,7 @@ struct machdep_calls {
>>>> 	resource_size_t (*pcibios_window_alignment)(struct pci_bus *, unsigned long type);
>>>> #ifdef CONFIG_PCI_IOV
>>>> 	resource_size_t (*__pci_sriov_resource_size)(struct pci_dev *, int resno);
>>>>+	resource_size_t (*__pci_sriov_resource_alignment)(struct pci_dev *, int resno, resource_size_t align);
>
>Both lines exceed 80 lines here :)
>
>>>> #endif /* CONFIG_PCI_IOV */
>>>>
>>>> 	/* Called to shutdown machine specific hardware not already controlled
>>>>diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
>>>>index c4e2e92..35345ac 100644
>>>>--- a/arch/powerpc/kernel/pci-common.c
>>>>+++ b/arch/powerpc/kernel/pci-common.c
>>>>@@ -128,6 +128,14 @@ resource_size_t pcibios_sriov_resource_size(struct pci_dev *pdev, int resno)
>>>>
>>>> 	return 0;
>>>> }
>>>>+
>>>>+resource_size_t pcibios_sriov_resource_alignment(struct pci_dev *pdev, int resno, resource_size_t align)
>>>>+{
>>>>+	if (ppc_md.__pci_sriov_resource_alignment)
>>>>+		return ppc_md.__pci_sriov_resource_alignment(pdev, resno, align);
>>>>+
>>>>+	return 0;
>>>>+}
>>>> #endif /* CONFIG_PCI_IOV */
>>>>
>>>> static resource_size_t pcibios_io_size(const struct pci_controller *hose)
>>>>diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>index 7dfad6a..b0ac851 100644
>>>>--- a/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
>>>>@@ -1573,6 +1573,22 @@ static resource_size_t __pnv_pci_sriov_resource_size(struct pci_dev *pdev, int r
>>>>
>>>> 	return size;
>>>> }
>>>>+
>>>>+static resource_size_t __pnv_pci_sriov_resource_alignment(struct pci_dev *pdev, int resno,
>>>>+		resource_size_t align)
>>>
>>>The function could be "pcibios_sriov_resource_alignment()", but it's not a big deal.
>>>If you prefer the original one, then keep it :)
>>
>>I guess you want to name it to pnv_pcibios_sriov_resource_alignment()?
>>pcibios_sriov_resource_alignment() is the general name for this function.
>>
>>If yes, this is changed.
>>
>
>Nope, What I mean is to have something like this:
>
>	struct machdep_calls {
>		:
>	#ifdef CONFIG_PCI_IOV
>	resource_size_t (*pci_sriov_resource_size)(struct pci_dev *dev,
>						   int resno);
>	resource_size_t (*pci_sriov_resource_alignment)(struct pci_dev *dev,
>							int resno,
>							resource_size_t align);
>	#endif
>		:
>	}
>
>	ppc_md.pci_sriov_resource_size = pnv_pci_iov_res_size;
>	ppc_md.pci_sriov_resource_alignment = pnv_pci_iov_res_alignment;
>
>The point is not to have prefix "__" for callbacks in "struct machdep_calls".
>ppc_md.__pci_sriov_resource_size is the first one that has prefix "__"

Yep, will change the name.

>
>>>
>>>>+{
>>>>+	struct pci_dn *pdn = pci_get_pdn(pdev);
>>>>+	resource_size_t iov_align;
>>>>+
>>>>+	iov_align = resource_size(&pdev->resource[resno]);
>>>>+	if (iov_align)
>>>>+		return iov_align;
>>>>+
>>>>+	if (pdn->vfs)
>>>>+		return pdn->vfs * align;
>>>>+
>>>>+	return align;
>>>>+}
>>>> #endif /* CONFIG_PCI_IOV */
>>>>
>>>> /* Prevent enabling devices for which we couldn't properly
>>>>@@ -1777,6 +1793,7 @@ void __init pnv_pci_init_ioda_phb(struct device_node *np,
>>>> 	ppc_md.pcibios_window_alignment = pnv_pci_window_alignment;
>>>> #ifdef CONFIG_PCI_IOV
>>>> 	ppc_md.__pci_sriov_resource_size = __pnv_pci_sriov_resource_size;
>>>>+	ppc_md.__pci_sriov_resource_alignment = __pnv_pci_sriov_resource_alignment;
>>>> #endif /* CONFIG_PCI_IOV */
>>>> 	pci_add_flags(PCI_REASSIGN_ALL_RSRC);
>>>>
>
>Thanks,
>Gavin

-- 
Richard Yang
Help you, Help me

  reply	other threads:[~2014-06-24  1:24 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-10  1:56 [RFC PATCH V3 00/17] Enable SRIOV on POWER8 Wei Yang
2014-06-10  1:56 ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 01/17] pci/iov: Export interface for retrieve VF's BDF Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 02/17] pci/of: Match PCI VFs to dev-tree nodes dynamically Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-23  5:07   ` Gavin Shan
2014-06-23  5:07     ` Gavin Shan
2014-06-23  6:29     ` Wei Yang
2014-06-23  6:29       ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 03/17] ppc/pci: don't unset pci resources for VFs Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 04/17] PCI: SRIOV: add VF enable/disable hook Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-23  5:03   ` Gavin Shan
2014-06-23  5:03     ` Gavin Shan
2014-06-23  6:29     ` Wei Yang
2014-06-23  6:29       ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 05/17] ppc/pnv: user macro to define the TCE size Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-23  5:12   ` Gavin Shan
2014-06-23  5:12     ` Gavin Shan
2014-06-23  6:31     ` Wei Yang
2014-06-23  6:31       ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 06/17] ppc/pnv: allocate pe->iommu_table dynamically Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-24 10:06   ` Alexey Kardashevskiy
2014-06-24 10:06     ` Alexey Kardashevskiy
2014-06-25  1:12     ` Wei Yang
2014-06-25  1:12       ` Wei Yang
2014-06-25  4:12       ` Alexey Kardashevskiy
2014-06-25  4:12         ` Alexey Kardashevskiy
2014-06-25  5:27         ` Wei Yang
2014-06-25  5:27           ` Wei Yang
2014-06-25  7:50           ` Alexey Kardashevskiy
2014-06-25  7:50             ` Alexey Kardashevskiy
2014-06-25  7:56             ` Benjamin Herrenschmidt
2014-06-25  7:56               ` Benjamin Herrenschmidt
2014-06-25  9:18               ` Wei Yang
2014-06-25  9:18                 ` Wei Yang
2014-06-25  9:13             ` Wei Yang
2014-06-25  9:13               ` Wei Yang
2014-06-25  9:20           ` David Laight
2014-06-25  9:20             ` David Laight
2014-06-25  9:31             ` Wei Yang
2014-06-25  9:31               ` Wei Yang
2014-06-25 10:30             ` Alexey Kardashevskiy
2014-06-25 10:30               ` Alexey Kardashevskiy
2014-07-14  3:12             ` Benjamin Herrenschmidt
2014-06-10  1:56 ` [RFC PATCH V3 07/17] ppc/pnv: Add function to deconfig a PE Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-23  5:27   ` Gavin Shan
2014-06-23  5:27     ` Gavin Shan
2014-06-23  9:07     ` Wei Yang
2014-06-23  9:07       ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 08/17] PCI: Add weak pcibios_sriov_resource_size() interface Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-23  5:41   ` Gavin Shan
2014-06-23  5:41     ` Gavin Shan
2014-06-23  7:56     ` Wei Yang
2014-06-23  7:56       ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 09/17] PCI: Add weak pcibios_sriov_resource_alignment() interface Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 10/17] PCI: take additional IOV BAR alignment in sizing and assigning Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 11/17] ppc/pnv: Expand VF resources according to the number of total_pe Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-23  6:07   ` Gavin Shan
2014-06-23  6:07     ` Gavin Shan
2014-06-23  6:56     ` Wei Yang
2014-06-23  6:56       ` Wei Yang
2014-06-23  7:08       ` Gavin Shan
2014-06-23  7:08         ` Gavin Shan
2014-06-10  1:56 ` [RFC PATCH V3 12/17] powerpc/powernv: implement pcibios_sriov_resource_alignment on powernv Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-23  6:09   ` Gavin Shan
2014-06-23  6:09     ` Gavin Shan
2014-06-23  8:21     ` Wei Yang
2014-06-23  8:21       ` Wei Yang
2014-06-23 23:29       ` Gavin Shan
2014-06-23 23:29         ` Gavin Shan
2014-06-24  1:24         ` Wei Yang [this message]
2014-06-24  1:24           ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 13/17] powerpc/powernv: shift VF resource with an offset Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 14/17] ppc/pci: create/release dev-tree node for VFs Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-18 18:26   ` Grant Likely
2014-06-18 20:51     ` Benjamin Herrenschmidt
2014-06-18 20:51       ` Benjamin Herrenschmidt
2014-06-19  2:46     ` Wei Yang
2014-06-19  8:30       ` Grant Likely
2014-06-19  9:42         ` Wei Yang
2014-06-20  3:46         ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 15/17] powerpc/powernv: allocate VF PE Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 16/17] ppc/pci: Expanding IOV BAR, with m64_per_iov supported Wei Yang
2014-06-10  1:56   ` Wei Yang
2014-06-10  1:56 ` [RFC PATCH V3 17/17] ppc/pnv: Group VF PE when IOV BAR is big on PHB3 Wei Yang
2014-06-10  1:56   ` 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=20140624012414.GA5204@richard \
    --to=weiyang@linux.vnet.ibm.com \
    --cc=benh@au1.ibm.com \
    --cc=bhelgaas@google.com \
    --cc=gwshan@linux.vnet.ibm.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=qiudayu@linux.vnet.ibm.com \
    --cc=yan@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.