[dpdk-dev,2/3] eal: remove pci config of extended tag
Commit Message
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
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
> -----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
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(-)
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.
> -----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
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 ;)
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
@@ -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
@@ -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)
@@ -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
@@ -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