igb_uio: deprecate extended tag
It deprecates sys files of 'extended_tag' and 'max_read_request_size' which was not documented. Signed-off-by: Helin Zhang <helin.zhang@intel.com> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
This commit is contained in:
parent
68f7759382
commit
b7cf8e1559
@ -186,27 +186,17 @@ Check with the local Intel's Network Division application engineers for firmware
|
||||
The base driver to support firmware version of FVL3E will be integrated in the next
|
||||
DPDK release, so currently the validated firmware version is 4.2.6.
|
||||
|
||||
Enabling Extended Tag and Setting Max Read Request Size
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Enabling Extended Tag
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
PCI configurations of ``extended_tag`` and max _read_requ st_size have big impacts on performance of small packets on 40G NIC.
|
||||
Enabling extended_tag and setting ``max_read_request_size`` to small size such as 128 bytes provide great helps to high performance of small packets.
|
||||
PCI configuration of ``extended_tag`` has big impact on small packet size
|
||||
performance of 40G ports. Enabling ``extended_tag`` can help 40G port to
|
||||
achieve the best performance, especially for small packet size.
|
||||
|
||||
* These can be done in some BIOS implementations.
|
||||
* Disabling/enabling ``extended_tag`` can be done in some BIOS implementations.
|
||||
|
||||
* For other BIOS implementations, PCI configurations can be changed by using command of ``setpci``, or special configurations in DPDK config file of ``common_linux``.
|
||||
|
||||
* Bits 7:5 at address of 0xA8 of each PCI device is used for setting the max_read_request_size,
|
||||
and bit 8 of 0xA8 of each PCI device is used for enabling/disabling the extended_tag.
|
||||
lspci and setpci can be used to read the values of 0xA8 and then write it back after being changed.
|
||||
|
||||
* In config file of common_linux, below three configurations can be changed for the same purpose.
|
||||
|
||||
``CONFIG_RTE_PCI_CONFIG``
|
||||
|
||||
``CONFIG_RTE_PCI_EXTENDED_TAG``
|
||||
|
||||
``CONFIG_RTE_PCI_MAX_READ_REQUEST_SIZE``
|
||||
* If BIOS does not enable it, and does not support changing it, tools
|
||||
(e.g. ``setpci`` on Linux) can be used to enable or disable ``extended_tag``.
|
||||
|
||||
* From release 16.04, ``extended_tag`` is enabled by default during port
|
||||
initialization, users don't need to care about that anymore.
|
||||
|
@ -12,6 +12,8 @@ Deprecation Notices
|
||||
and will be removed from 16.07.
|
||||
Macros CONFIG_RTE_PCI_CONFIG, CONFIG_RTE_PCI_EXTENDED_TAG and
|
||||
CONFIG_RTE_PCI_MAX_READ_REQUEST_SIZE will be removed.
|
||||
The /sys entries extended_tag and max_read_request_size created by igb_uio
|
||||
will be removed.
|
||||
|
||||
* The following fields have been deprecated in rte_eth_stats:
|
||||
ibadcrc, ibadlen, imcasts, fdirmatch, fdirmiss,
|
||||
|
@ -40,15 +40,6 @@
|
||||
|
||||
#include "compat.h"
|
||||
|
||||
#ifdef RTE_PCI_CONFIG
|
||||
#define PCI_SYS_FILE_BUF_SIZE 10
|
||||
#define PCI_DEV_CAP_REG 0xA4
|
||||
#define PCI_DEV_CTRL_REG 0xA8
|
||||
#define PCI_DEV_CAP_EXT_TAG_MASK 0x20
|
||||
#define PCI_DEV_CTRL_EXT_TAG_SHIFT 8
|
||||
#define PCI_DEV_CTRL_EXT_TAG_MASK (1 << PCI_DEV_CTRL_EXT_TAG_SHIFT)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* A structure describing the private information for a uio device.
|
||||
*/
|
||||
@ -94,19 +85,9 @@ store_max_vfs(struct device *dev, struct device_attribute *attr,
|
||||
static ssize_t
|
||||
show_extended_tag(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct pci_dev *pci_dev = to_pci_dev(dev);
|
||||
uint32_t val = 0;
|
||||
dev_info(dev, "Deprecated\n");
|
||||
|
||||
pci_read_config_dword(pci_dev, PCI_DEV_CAP_REG, &val);
|
||||
if (!(val & PCI_DEV_CAP_EXT_TAG_MASK)) /* Not supported */
|
||||
return snprintf(buf, PCI_SYS_FILE_BUF_SIZE, "%s\n", "invalid");
|
||||
|
||||
val = 0;
|
||||
pci_bus_read_config_dword(pci_dev->bus, pci_dev->devfn,
|
||||
PCI_DEV_CTRL_REG, &val);
|
||||
|
||||
return snprintf(buf, PCI_SYS_FILE_BUF_SIZE, "%s\n",
|
||||
(val & PCI_DEV_CTRL_EXT_TAG_MASK) ? "on" : "off");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
@ -115,36 +96,9 @@ store_extended_tag(struct device *dev,
|
||||
const char *buf,
|
||||
size_t count)
|
||||
{
|
||||
struct pci_dev *pci_dev = to_pci_dev(dev);
|
||||
uint32_t val = 0, enable;
|
||||
dev_info(dev, "Deprecated\n");
|
||||
|
||||
if (strncmp(buf, "on", 2) == 0)
|
||||
enable = 1;
|
||||
else if (strncmp(buf, "off", 3) == 0)
|
||||
enable = 0;
|
||||
else
|
||||
return -EINVAL;
|
||||
|
||||
pci_cfg_access_lock(pci_dev);
|
||||
pci_bus_read_config_dword(pci_dev->bus, pci_dev->devfn,
|
||||
PCI_DEV_CAP_REG, &val);
|
||||
if (!(val & PCI_DEV_CAP_EXT_TAG_MASK)) { /* Not supported */
|
||||
pci_cfg_access_unlock(pci_dev);
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
val = 0;
|
||||
pci_bus_read_config_dword(pci_dev->bus, pci_dev->devfn,
|
||||
PCI_DEV_CTRL_REG, &val);
|
||||
if (enable)
|
||||
val |= PCI_DEV_CTRL_EXT_TAG_MASK;
|
||||
else
|
||||
val &= ~PCI_DEV_CTRL_EXT_TAG_MASK;
|
||||
pci_bus_write_config_dword(pci_dev->bus, pci_dev->devfn,
|
||||
PCI_DEV_CTRL_REG, val);
|
||||
pci_cfg_access_unlock(pci_dev);
|
||||
|
||||
return count;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
@ -152,10 +106,9 @@ show_max_read_request_size(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
struct pci_dev *pci_dev = to_pci_dev(dev);
|
||||
int val = pcie_get_readrq(pci_dev);
|
||||
dev_info(dev, "Deprecated\n");
|
||||
|
||||
return snprintf(buf, PCI_SYS_FILE_BUF_SIZE, "%d\n", val);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
@ -164,18 +117,9 @@ store_max_read_request_size(struct device *dev,
|
||||
const char *buf,
|
||||
size_t count)
|
||||
{
|
||||
struct pci_dev *pci_dev = to_pci_dev(dev);
|
||||
unsigned long size = 0;
|
||||
int ret;
|
||||
dev_info(dev, "Deprecated\n");
|
||||
|
||||
if (0 != kstrtoul(buf, 0, &size))
|
||||
return -EINVAL;
|
||||
|
||||
ret = pcie_set_readrq(pci_dev, (int)size);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return count;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user