[dpdk-dev,2/3] eal: remove pci config of extended tag

Message ID 1450665486-8335-3-git-send-email-helin.zhang@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

Zhang, Helin Dec. 21, 2015, 2:38 a.m. UTC
  Remove pci configuration of 'extended tag' and 'max read request
size', as they are not required by all devices and it lets PMD to
configure them if neccessary.
In addition, 'pci_config_space_set()' is deprecated.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
---
 config/common_linuxapp                  |  7 ---
 lib/librte_eal/common/eal_common_pci.c  |  7 ---
 lib/librte_eal/common/include/rte_pci.h |  4 +-
 lib/librte_eal/linuxapp/eal/eal_pci.c   | 90 +++------------------------------
 4 files changed, 9 insertions(+), 99 deletions(-)
  

Comments

Zhang, Helin Feb. 22, 2016, 3:59 a.m. UTC | #1
It enables 'extended tag' for i40e devices only during its port
initialization, which is key for 40G performance. It also deprecates
the similar in igb_uio, and eal lib.

v2:
 - Changed the type of return value of i40e_enable_extended_tag() to 'void'.
 - Fixed the compile warnings.
 - Kept the sys files as they were, and added ABI change announcement for them.
 - Moved high performance part of i40e from 'GSG' to a new for .nics'.

Helin Zhang (3):
  i40e: enable extended tag
  eal: remove pci config of extended tag
  igb_uio: deprecate sys files

 config/common_linuxapp                    |  1 +
 doc/guides/linux_gsg/enable_func.rst      | 47 ----------------
 doc/guides/nics/i40e.rst                  | 76 ++++++++++++++++++++++++++
 doc/guides/rel_notes/deprecation.rst      |  6 +++
 doc/guides/rel_notes/release_16_04.rst    |  6 +++
 drivers/net/i40e/i40e_ethdev.c            | 65 ++++++++++++++++++++--
 lib/librte_eal/common/eal_common_pci.c    |  7 ---
 lib/librte_eal/common/include/rte_pci.h   |  2 +
 lib/librte_eal/linuxapp/eal/eal_pci.c     | 90 +++----------------------------
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 72 +++----------------------
 10 files changed, 167 insertions(+), 205 deletions(-)
 create mode 100644 doc/guides/nics/i40e.rst
  
Jingjing Wu Feb. 22, 2016, 5:52 a.m. UTC | #2
> -----Original Message-----
> From: Zhang, Helin
> Sent: Monday, February 22, 2016 12:00 PM
> To: dev@dpdk.org
> Cc: thomas.monjalon@6wind.com; Wu, Jingjing; zhe.tag@intel.com; Zhang,
> Helin
> Subject: [PATCH v2 0/3] enable extended tag for i40e
> 
> It enables 'extended tag' for i40e devices only during its port initialization,
> which is key for 40G performance. It also deprecates the similar in igb_uio,
> and eal lib.
> 
> v2:
>  - Changed the type of return value of i40e_enable_extended_tag() to 'void'.
>  - Fixed the compile warnings.
>  - Kept the sys files as they were, and added ABI change announcement for
> them.
>  - Moved high performance part of i40e from 'GSG' to a new for .nics'.
> 
> Helin Zhang (3):
>   i40e: enable extended tag
>   eal: remove pci config of extended tag
>   igb_uio: deprecate sys files

Agree to add a doc i40e.rst to record i40e specific stuff.
I also sent a patch http://dpdk.org/dev/patchwork/patch/10173/, it will be great if they can be merged.  :)

Acked-by: Jingjing Wu <jingjing.wu@intel.com>

> 
> --
> 1.9.3
  
Thomas Monjalon March 8, 2016, 6:38 p.m. UTC | #3
It enables 'extended tag' for i40e devices only during its port
initialization, which is key for 40G performance. It also deprecates
the similar in igb_uio, and eal lib.

v3:
 - fix build with deprecated attribute
 - keep deprecated attribute
 - reword release notes a bit
 - revert doc move from v2
 - better split the patches

v2:
 - Changed the type of return value of i40e_enable_extended_tag() to 'void'.
 - Fixed the compile warnings.
 - Kept the sys files as they were, and added ABI change announcement for them.
 - Moved high performance part of i40e from 'GSG' to a new for .nics'.

Helin Zhang (3):
  i40e: enable extended tag
  pci: remove config of extended tag
  igb_uio: deprecate extended tag

 config/common_base                        |  1 +
 doc/guides/linux_gsg/enable_func.rst      | 27 ++++------
 doc/guides/rel_notes/deprecation.rst      |  7 +++
 doc/guides/rel_notes/release_16_04.rst    |  6 +++
 drivers/net/i40e/i40e_ethdev.c            | 65 ++++++++++++++++++++--
 lib/librte_eal/common/eal_common_pci.c    |  7 ---
 lib/librte_eal/common/include/rte_pci.h   |  5 +-
 lib/librte_eal/linuxapp/eal/eal_pci.c     | 90 +++----------------------------
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 72 +++----------------------
 9 files changed, 104 insertions(+), 176 deletions(-)
  
Thomas Monjalon March 8, 2016, 6:41 p.m. UTC | #4
2016-03-08 19:38, Thomas Monjalon:
> It enables 'extended tag' for i40e devices only during its port
> initialization, which is key for 40G performance. It also deprecates
> the similar in igb_uio, and eal lib.
> 
> v3:
>  - fix build with deprecated attribute
>  - keep deprecated attribute
>  - reword release notes a bit
>  - revert doc move from v2
>  - better split the patches

I've forgot the Acked-by: Jingjing Wu <jingjing.wu@intel.com>

Helin, if you agree with this new revision, I'll apply it.
  
Zhang, Helin March 9, 2016, 12:48 a.m. UTC | #5
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Wednesday, March 9, 2016 2:41 AM
> To: Zhang, Helin <helin.zhang@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [PATCH v3 0/3] enable extended tag for i40e
> 
> 2016-03-08 19:38, Thomas Monjalon:
> > It enables 'extended tag' for i40e devices only during its port
> > initialization, which is key for 40G performance. It also deprecates
> > the similar in igb_uio, and eal lib.
> >
> > v3:
> >  - fix build with deprecated attribute
> >  - keep deprecated attribute
> >  - reword release notes a bit
> >  - revert doc move from v2
> >  - better split the patches
> 
> I've forgot the Acked-by: Jingjing Wu <jingjing.wu@intel.com>
> 
> Helin, if you agree with this new revision, I'll apply it.

Thomas

Yes, that's what I expected to be applied. Please apply it, thank you very much!

Regards,
Helin
  
Thomas Monjalon March 9, 2016, 12:50 a.m. UTC | #6
2016-03-09 00:48, Zhang, Helin:
> 
> > -----Original Message-----
> > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > Sent: Wednesday, March 9, 2016 2:41 AM
> > To: Zhang, Helin <helin.zhang@intel.com>
> > Cc: dev@dpdk.org
> > Subject: Re: [PATCH v3 0/3] enable extended tag for i40e
> > 
> > 2016-03-08 19:38, Thomas Monjalon:
> > > It enables 'extended tag' for i40e devices only during its port
> > > initialization, which is key for 40G performance. It also deprecates
> > > the similar in igb_uio, and eal lib.
> > >
> > > v3:
> > >  - fix build with deprecated attribute
> > >  - keep deprecated attribute
> > >  - reword release notes a bit
> > >  - revert doc move from v2
> > >  - better split the patches
> > 
> > I've forgot the Acked-by: Jingjing Wu <jingjing.wu@intel.com>
> > 
> > Helin, if you agree with this new revision, I'll apply it.
> 
> Thomas
> 
> Yes, that's what I expected to be applied. Please apply it, thank you very much!

Note that reworking these patches was an investment for future,
to show how better split patches ;)
  
Thomas Monjalon March 9, 2016, 12:52 a.m. UTC | #7
2016-03-09 00:48, Zhang, Helin:
> > 2016-03-08 19:38, Thomas Monjalon:
> > > It enables 'extended tag' for i40e devices only during its port
> > > initialization, which is key for 40G performance. It also deprecates
> > > the similar in igb_uio, and eal lib.
> > >
> > > v3:
> > >  - fix build with deprecated attribute
> > >  - keep deprecated attribute
> > >  - reword release notes a bit
> > >  - revert doc move from v2
> > >  - better split the patches
> > 
> > I've forgot the Acked-by: Jingjing Wu <jingjing.wu@intel.com>
> > 
> > Helin, if you agree with this new revision, I'll apply it.
> 
> Thomas
> 
> Yes, that's what I expected to be applied. Please apply it, thank you very much!

Applied, thanks
  

Patch

diff --git a/config/common_linuxapp b/config/common_linuxapp
index 74bc515..f52baf9 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -115,13 +115,6 @@  CONFIG_RTE_MALLOC_DEBUG=n
 CONFIG_RTE_EAL_PMD_PATH=""
 
 #
-# Special configurations in PCI Config Space for high performance
-#
-CONFIG_RTE_PCI_CONFIG=n
-CONFIG_RTE_PCI_EXTENDED_TAG=""
-CONFIG_RTE_PCI_MAX_READ_REQUEST_SIZE=0
-
-#
 # Compile Environment Abstraction Layer for linux
 #
 CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y
diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c
index dcfe947..63d0829 100644
--- a/lib/librte_eal/common/eal_common_pci.c
+++ b/lib/librte_eal/common/eal_common_pci.c
@@ -180,13 +180,6 @@  rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct rte_pci_device *d
 		}
 
 		if (dr->drv_flags & RTE_PCI_DRV_NEED_MAPPING) {
-#ifdef RTE_PCI_CONFIG
-			/*
-			 * Set PCIe config space for high performance.
-			 * Return value can be ignored.
-			 */
-			pci_config_space_set(dev);
-#endif
 			/* map resources for devices that use igb_uio */
 			ret = pci_map_device(dev);
 			if (ret != 0)
diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h
index 334c12e..8201fe8 100644
--- a/lib/librte_eal/common/include/rte_pci.h
+++ b/lib/librte_eal/common/include/rte_pci.h
@@ -489,12 +489,14 @@  int rte_eal_pci_write_config(const struct rte_pci_device *device,
 #ifdef RTE_PCI_CONFIG
 /**
  * Set special config space registers for performance purpose.
+ * It is deprecated, as all configurations have been moved into
+ * each PMDs respectively.
  *
  * @param dev
  *   A pointer to a rte_pci_device structure describing the device
  *   to use
  */
-void pci_config_space_set(struct rte_pci_device *dev);
+void pci_config_space_set(struct rte_pci_device *dev) __rte_deprecated;
 #endif /* RTE_PCI_CONFIG */
 
 #ifdef __cplusplus
diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c
index bc5b5be..11de652 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci.c
@@ -482,92 +482,14 @@  error:
 }
 
 #ifdef RTE_PCI_CONFIG
-static int
-pci_config_extended_tag(struct rte_pci_device *dev)
-{
-	struct rte_pci_addr *loc = &dev->addr;
-	char filename[PATH_MAX];
-	char buf[BUFSIZ];
-	FILE *f;
-
-	/* not configured, let it as is */
-	if (strncmp(RTE_PCI_EXTENDED_TAG, "on", 2) != 0 &&
-		strncmp(RTE_PCI_EXTENDED_TAG, "off", 3) != 0)
-		return 0;
-
-	snprintf(filename, sizeof(filename),
-		SYSFS_PCI_DEVICES "/" PCI_PRI_FMT "/" "extended_tag",
-		loc->domain, loc->bus, loc->devid, loc->function);
-	f = fopen(filename, "rw+");
-	if (!f)
-		return -1;
-
-	fgets(buf, sizeof(buf), f);
-	if (strncmp(RTE_PCI_EXTENDED_TAG, "on", 2) == 0) {
-		/* enable Extended Tag*/
-		if (strncmp(buf, "on", 2) != 0) {
-			fseek(f, 0, SEEK_SET);
-			fputs("on", f);
-		}
-	} else {
-		/* disable Extended Tag */
-		if (strncmp(buf, "off", 3) != 0) {
-			fseek(f, 0, SEEK_SET);
-			fputs("off", f);
-		}
-	}
-	fclose(f);
-
-	return 0;
-}
-
-static int
-pci_config_max_read_request_size(struct rte_pci_device *dev)
-{
-	struct rte_pci_addr *loc = &dev->addr;
-	char filename[PATH_MAX];
-	char buf[BUFSIZ], param[BUFSIZ];
-	FILE *f;
-	/* size can be 128, 256, 512, 1024, 2048, 4096 */
-	uint32_t max_size = RTE_PCI_MAX_READ_REQUEST_SIZE;
-
-	/* not configured, let it as is */
-	if (!max_size)
-		return 0;
-
-	snprintf(filename, sizeof(filename),
-		SYSFS_PCI_DEVICES "/" PCI_PRI_FMT "/" "max_read_request_size",
-			loc->domain, loc->bus, loc->devid, loc->function);
-	f = fopen(filename, "rw+");
-	if (!f)
-		return -1;
-
-	fgets(buf, sizeof(buf), f);
-	snprintf(param, sizeof(param), "%d", max_size);
-
-	/* check if the size to be set is the same as current */
-	if (strcmp(buf, param) == 0) {
-		fclose(f);
-		return 0;
-	}
-	fseek(f, 0, SEEK_SET);
-	fputs(param, f);
-	fclose(f);
-
-	return 0;
-}
-
+/*
+ * It is deprecated, all its configurations have been moved into
+ * each PMD respectively.
+ */
 void
-pci_config_space_set(struct rte_pci_device *dev)
+pci_config_space_set(__rte_unused struct rte_pci_device *dev)
 {
-	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-		return;
-
-	/* configure extended tag */
-	pci_config_extended_tag(dev);
-
-	/* configure max read request size */
-	pci_config_max_read_request_size(dev);
+	RTE_LOG(DEBUG, EAL, "Nothing here, as it is deprecated\n");
 }
 #endif