X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Fknown_issues.rst;h=de0782136d3cc622840fe48eb5ab2c5253bc4214;hb=9c1e0dc39a03c95447095241eaf3764d2e0dd003;hp=9f1fcdbb3a99317d6a3f726fd2987cfa6a1b17a9;hpb=1ce6591e238a1c7a1884049c40aa33326d1657ea;p=dpdk.git diff --git a/doc/guides/rel_notes/known_issues.rst b/doc/guides/rel_notes/known_issues.rst index 9f1fcdbb3a..de0782136d 100644 --- a/doc/guides/rel_notes/known_issues.rst +++ b/doc/guides/rel_notes/known_issues.rst @@ -1,33 +1,5 @@ -.. BSD LICENSE - Copyright(c) 2010-2014 Intel Corporation. All rights reserved. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of Intel Corporation nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2010-2014 Intel Corporation. Known Issues and Limitations in Legacy Releases =============================================== @@ -155,7 +127,7 @@ HPET timers do not work on the Osage customer reference platform work correctly, provided the BIOS supports HPET. **Driver/Module**: - ``lib/librte_eal/common/include/rte_cycles.h`` + ``lib/librte_eal/include/rte_cycles.h`` Not all variants of supported NIC types have been used in testing @@ -163,7 +135,7 @@ Not all variants of supported NIC types have been used in testing **Description**: The supported network interface cards can come in a number of variants with different device ID's. - Not all of these variants have been tested with the Intel® DPDK. + Not all of these variants have been tested with the DPDK. The NIC device identifiers used during testing: @@ -210,7 +182,7 @@ Multi-process sample app requires exact memory mapping A multi-process client application fails to initialize. **Resolution/Workaround**: - See the "Multi-process Limitations" section in the Intel® DPDK Programmer's Guide for more information. + See the "Multi-process Limitations" section in the DPDK Programmer's Guide for more information. **Affected Environment/Platform**: All. @@ -468,7 +440,7 @@ GCC might generate Intel® AVX instructions for processors without Intel® AVX s ------------------------------------------------------------------------------------ **Description**: - When compiling Intel® DPDK (and any DPDK app), gcc may generate Intel® AVX instructions, even when the + When compiling DPDK (and any DPDK app), gcc may generate Intel® AVX instructions, even when the processor does not support Intel® AVX. **Implication**: @@ -532,25 +504,6 @@ Cannot set link speed on Intel® 40G Ethernet controller Poll Mode Driver (PMD). -Stopping the port does not down the link on Intel® 40G Ethernet controller --------------------------------------------------------------------------- - -**Description**: - On Intel® 40G Ethernet Controller stopping the port does not really down the port link. - -**Implication**: - The port link will be still up after stopping the port. - -**Resolution/Workaround**: - None - -**Affected Environment/Platform**: - All. - -**Driver/Module**: - Poll Mode Driver (PMD). - - Devices bound to igb_uio with VT-d enabled do not work on Linux kernel 3.15-3.17 -------------------------------------------------------------------------------- @@ -598,3 +551,340 @@ VM power manager may not work on systems with more than 64 cores **Driver/Module**: VM power manager application. + + +DPDK may not build on some Intel CPUs using clang < 3.7.0 +--------------------------------------------------------- + +**Description**: + When compiling DPDK with an earlier version than 3.7.0 of clang, CPU flags are not detected on some Intel platforms + such as Intel Broadwell/Skylake (and possibly future CPUs), and therefore compilation fails due to missing intrinsics. + +**Implication**: + DPDK will not build when using a clang version < 3.7.0. + +**Resolution/Workaround**: + Use clang 3.7.0 or higher, or gcc. + +**Affected Environment/Platform**: + Platforms with Intel Broadwell/Skylake using an old clang version. + +**Driver/Module**: + Environment Abstraction Layer (EAL). + + +The last EAL argument is replaced by the program name in argv[] +--------------------------------------------------------------- + +**Description**: + The last EAL argument is replaced by program name in ``argv[]`` after ``eal_parse_args`` is called. + This is the intended behavior but it causes the pointer to the last EAL argument to be lost. + +**Implication**: + If the last EAL argument in ``argv[]`` is generated by a malloc function, changing it will cause memory + issues when freeing the argument. + +**Resolution/Workaround**: + An application should not consider the value in ``argv[]`` as unchanged. + +**Affected Environment/Platform**: + ALL. + +**Driver/Module**: + Environment Abstraction Layer (EAL). + + +I40e VF may not receive packets in the promiscuous mode +------------------------------------------------------- + +**Description**: + Promiscuous mode is not supported by the DPDK i40e VF driver when using the + i40e Linux kernel driver as host driver. + +**Implication**: + The i40e VF does not receive packets when the destination MAC address is unknown. + +**Resolution/Workaround**: + Use a explicit destination MAC address that matches the VF. + +**Affected Environment/Platform**: + All. + +**Driver/Module**: + Poll Mode Driver (PMD). + + +uio pci generic module bind failed in X710/XL710/XXV710 +------------------------------------------------------- + +**Description**: + The ``uio_pci_generic`` module is not supported by XL710, since the errata of XL710 + states that the Interrupt Status bit is not implemented. The errata is the item #71 + from the `xl710 controller spec + `_. + The hw limitation is the same as other X710/XXV710 NICs. + +**Implication**: + When use ``--bind=uio_pci_generic``, the ``uio_pci_generic`` module probes device and check the Interrupt + Status bit. Since it is not supported by X710/XL710/XXV710, it return a *failed* value. The statement + that these products don’t support INTx masking, is indicated in the related `linux kernel commit + `_. + +**Resolution/Workaround**: + Do not bind the ``uio_pci_generic`` module in X710/XL710/XXV710 NICs. + +**Affected Environment/Platform**: + All. + +**Driver/Module**: + Poll Mode Driver (PMD). + + +virtio tx_burst() function cannot do TSO on shared packets +---------------------------------------------------------- + +**Description**: + The standard TX function of virtio driver does not manage shared + packets properly when doing TSO. These packets should be read-only + but the driver modifies them. + + When doing TSO, the virtio standard expects that the L4 checksum is + set to the pseudo header checksum in the packet data, which is + different than the DPDK API. The driver patches the L4 checksum to + conform to the virtio standard, but this solution is invalid when + dealing with shared packets (clones), because the packet data should + not be modified. + +**Implication**: + In this situation, the shared data will be modified by the driver, + potentially causing race conditions with the other users of the mbuf + data. + +**Resolution/Workaround**: + The workaround in the application is to ensure that the network + headers in the packet data are not shared. + +**Affected Environment/Platform**: + Virtual machines running a virtio driver. + +**Driver/Module**: + Poll Mode Driver (PMD). + + +igb uio legacy mode can not be used in X710/XL710/XXV710 +-------------------------------------------------------- + +**Description**: + X710/XL710/XXV710 NICs lack support for indicating INTx is asserted via the interrupt + bit in the PCI status register. Linux deleted them from INTx support table. The related + `commit `_. + +**Implication**: + When insmod ``igb_uio`` with ``intr_mode=legacy`` and test link status interrupt. Since + INTx interrupt is not supported by X710/XL710/XXV710, it will cause Input/Output error + when reading file descriptor. + +**Resolution/Workaround**: + Do not bind ``igb_uio`` with legacy mode in X710/XL710/XXV710 NICs, or do not use kernel + version >4.7 when you bind ``igb_uio`` with legacy mode. + +**Affected Environment/Platform**: + ALL. + +**Driver/Module**: + Poll Mode Driver (PMD). + + +igb_uio can not be used when running l3fwd-power +------------------------------------------------ + +**Description**: + Link Status Change(LSC) interrupt and packet receiving interrupt are all enabled in l3fwd-power + APP. Because of UIO only support one interrupt, so these two kinds of interrupt need to share + one, and the receiving interrupt have the higher priority, so can't get the right link status. + +**Implication**: + When insmod ``igb_uio`` and running l3fwd-power APP, link status getting doesn't work properly. + +**Resolution/Workaround**: + Use vfio-pci when LSC and packet receiving interrupt enabled. + +**Affected Environment/Platform**: + ALL. + +**Driver/Module**: + ``igb_uio`` module. + + +Linux kernel 4.10.0 iommu attribute read error +---------------------------------------------- + +**Description**: + When VT-d is enabled (``iommu=pt intel_iommu=on``), reading IOMMU attributes from + /sys/devices/virtual/iommu/dmarXXX/intel-iommu/cap on Linux kernel 4.10.0 error. + This bug is fixed in `Linux commit a7fdb6e648fb + `_, + This bug is introduced in `Linux commit 39ab9555c241 + `_, + +**Implication**: + When binding devices to VFIO and attempting to run testpmd application, + testpmd (and other DPDK applications) will not initialize. + +**Resolution/Workaround**: + Use other linux kernel version. It only happens in linux kernel 4.10.0. + +**Affected Environment/Platform**: + ALL OS of linux kernel 4.10.0. + +**Driver/Module**: + ``vfio-pci`` module. + +Netvsc driver and application restart +------------------------------------- + +**Description**: + The Linux kernel uio_hv_generic driver does not completely shutdown and clean up + resources properly if application using Netvsc PMD exits. + +**Implication**: + When application using Netvsc PMD is restarted it can not complete initialization + handshake sequence with the host. + +**Resolution/Workaround**: + Either reboot the guest or remove and reinsert the hv_uio_generic module. + +**Affected Environment/Platform**: + Linux Hyper-V. + +**Driver/Module**: + ``uio_hv_generic`` module. + + +PHY link up fails when rebinding i40e NICs to kernel driver +----------------------------------------------------------- + +**Description**: + Some kernel drivers are not able to handle the link status correctly + after DPDK application sets the PHY to link down. + +**Implication**: + The link status can't be set to "up" after the NIC is rebound to the + kernel driver. Before a DPDK application quits it will invoke the + function ``i40e_dev_stop()`` which will sets the PHY to link down. Some + kernel drivers may not be able to handle the link status correctly after + it retakes control of the device. This is a known PHY link configuration + issue in the i40e kernel driver. The fix has been addressed in the 2.7.4 rc + version. So if the i40e kernel driver is < 2.7.4 and doesn't have the + fix backported it will encounter this issue. + +**Resolution/Workaround**: + First try to remove and reinsert the i40e kernel driver. If that fails + reboot the system. + +**Affected Environment/Platform**: + All. + +**Driver/Module**: + Poll Mode Driver (PMD). + + +Restricted vdev ethdev operations supported in secondary process +---------------------------------------------------------------- +**Description** + In current virtual device sharing model, Ethernet device data structure will be + shared between primary and secondary process. Only those Ethernet device operations + which based on it are workable in secondary process. + +**Implication** + Some Ethernet device operations like device start/stop will be failed on virtual + device in secondary process. + +**Affected Environment/Platform**: + ALL. + +**Driver/Module**: + Virtual Device Poll Mode Driver (PMD). + + +Kernel crash when hot-unplug igb_uio device while DPDK application is running +----------------------------------------------------------------------------- + +**Description**: + When device has been bound to igb_uio driver and application is running, + hot-unplugging the device may cause kernel crash. + +**Reason**: + When device is hot-unplugged, igb_uio driver will be removed which will destroy UIO resources. + Later trying to access any uio resource will cause kernel crash. + +**Resolution/Workaround**: + If using DPDK for PCI HW hot-unplug, prefer to bind device with VFIO instead of IGB_UIO. + +**Affected Environment/Platform**: + ALL. + +**Driver/Module**: + ``igb_uio`` module. + + +AVX-512 support disabled +------------------------ + +**Description**: + ``AVX-512`` support has been disabled on some conditions. + This shouldn't be confused with ``CONFIG_RTE_ENABLE_AVX512`` config option which is already + disabled by default. This config option defines if ``AVX-512`` specific implementations of + some file to be used or not. What has been disabled is compiler feature to produce ``AVX-512`` + instructions from any source code. + + On DPDK v18.11 ``AVX-512`` is disabled for all ``GCC`` builds which reported to cause a performance + drop. + + On DPDK v19.02 ``AVX-512`` disable scope is reduced to ``GCC`` and ``binutils version 2.30`` based + on information accrued from the GCC community defect. + +**Reason**: + Generated ``AVX-512`` code cause crash: + https://bugs.dpdk.org/show_bug.cgi?id=97 + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88096 + +**Resolution/Workaround**: + * Update ``binutils`` to newer version than ``2.30``. + + OR + + * Use different compiler, like ``clang`` for this case. + +**Affected Environment/Platform**: + ``GCC`` and ``binutils version 2.30``. + +**Driver/Module**: + ALL. + + +Unsuitable IOVA mode may be picked as the default +------------------------------------------------- + +**Description** + Not all kernel drivers and not all devices support all IOVA modes. EAL will + attempt to pick a reasonable default based on a number of factors, but there + may be cases where the default may be unsuitable (for example, hotplugging + devices using `igb_uio` driver while having picked IOVA as VA mode on EAL + initialization). + +**Implication** + Some devices (hotplugged or otherwise) may not work due to incompatible IOVA + mode being automatically picked by EAL. + +**Resolution/Workaround**: + It is possible to force EAL to pick a particular IOVA mode by using the + `--iova-mode` command-line parameter. If conflicting requirements are present + (such as one device requiring IOVA as PA and one requiring IOVA as VA mode), + there is no workaround. + +**Affected Environment/Platform**: + Linux. + +**Driver/Module**: + ALL.