1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright(c) 2010-2014 Intel Corporation. 3 4Known Issues and Limitations in Legacy Releases 5=============================================== 6 7This section describes known issues with the DPDK software that aren't covered in the version specific release 8notes sections. 9 10 11Unit Test for Link Bonding may fail at test_tlb_tx_burst() 12---------------------------------------------------------- 13 14**Description**: 15 Unit tests will fail in ``test_tlb_tx_burst()`` function with error for uneven distribution of packets. 16 17**Implication**: 18 Unit test link_bonding_autotest will fail. 19 20**Resolution/Workaround**: 21 There is no workaround available. 22 23**Affected Environment/Platform**: 24 Fedora 20. 25 26**Driver/Module**: 27 Link Bonding. 28 29 30Pause Frame Forwarding does not work properly on igb 31---------------------------------------------------- 32 33**Description**: 34 For igb devices rte_eth_flow_ctrl_set does not work as expected. 35 Pause frames are always forwarded on igb, regardless of the ``RFCE``, ``MPMCF`` and ``DPF`` registers. 36 37**Implication**: 38 Pause frames will never be rejected by the host on 1G NICs and they will always be forwarded. 39 40**Resolution/Workaround**: 41 There is no workaround available. 42 43**Affected Environment/Platform**: 44 All. 45 46**Driver/Module**: 47 Poll Mode Driver (PMD). 48 49 50In packets provided by the PMD, some flags are missing 51------------------------------------------------------ 52 53**Description**: 54 In packets provided by the PMD, some flags are missing. 55 The application does not have access to information provided by the hardware 56 (packet is broadcast, packet is multicast, packet is IPv4 and so on). 57 58**Implication**: 59 The ``ol_flags`` field in the ``rte_mbuf`` structure is not correct and should not be used. 60 61**Resolution/Workaround**: 62 The application has to parse the Ethernet header itself to get the information, which is slower. 63 64**Affected Environment/Platform**: 65 All. 66 67**Driver/Module**: 68 Poll Mode Driver (PMD). 69 70The rte_malloc library is not fully implemented 71----------------------------------------------- 72 73**Description**: 74 The ``rte_malloc`` library is not fully implemented. 75 76**Implication**: 77 All debugging features of rte_malloc library described in architecture documentation are not yet implemented. 78 79**Resolution/Workaround**: 80 No workaround available. 81 82**Affected Environment/Platform**: 83 All. 84 85**Driver/Module**: 86 ``rte_malloc``. 87 88 89HPET reading is slow 90-------------------- 91 92**Description**: 93 Reading the HPET chip is slow. 94 95**Implication**: 96 An application that calls ``rte_get_hpet_cycles()`` or ``rte_timer_manage()`` runs slower. 97 98**Resolution/Workaround**: 99 The application should not call these functions too often in the main loop. 100 An alternative is to use the TSC register through ``rte_rdtsc()`` which is faster, 101 but specific to an lcore and is a cycle reference, not a time reference. 102 103**Affected Environment/Platform**: 104 All. 105 106**Driver/Module**: 107 Environment Abstraction Layer (EAL). 108 109 110HPET timers do not work on the Osage customer reference platform 111---------------------------------------------------------------- 112 113**Description**: 114 HPET timers do not work on the Osage customer reference platform which includes an Intel® Xeon® processor 5500 115 series processor) using the released BIOS from Intel. 116 117**Implication**: 118 On Osage boards, the implementation of the ``rte_delay_us()`` function must be changed to not use the HPET timer. 119 120**Resolution/Workaround**: 121 This can be addressed by building the system with the ``CONFIG_RTE_LIBEAL_USE_HPET=n`` 122 configuration option or by using the ``--no-hpet`` EAL option. 123 124**Affected Environment/Platform**: 125 The Osage customer reference platform. 126 Other vendor platforms with Intel® Xeon® processor 5500 series processors should 127 work correctly, provided the BIOS supports HPET. 128 129**Driver/Module**: 130 ``lib/librte_eal/include/rte_cycles.h`` 131 132 133Not all variants of supported NIC types have been used in testing 134----------------------------------------------------------------- 135 136**Description**: 137 The supported network interface cards can come in a number of variants with different device ID's. 138 Not all of these variants have been tested with the DPDK. 139 140 The NIC device identifiers used during testing: 141 142 * Intel® Ethernet Controller XL710 for 40GbE QSFP+ [8086:1584] 143 * Intel® Ethernet Controller XL710 for 40GbE QSFP+ [8086:1583] 144 * Intel® Ethernet Controller X710 for 10GbE SFP+ [8086:1572] 145 * Intel® 82576 Gigabit Ethernet Controller [8086:10c9] 146 * Intel® 82576 Quad Copper Gigabit Ethernet Controller [8086:10e8] 147 * Intel® 82580 Dual Copper Gigabit Ethernet Controller [8086:150e] 148 * Intel® I350 Quad Copper Gigabit Ethernet Controller [8086:1521] 149 * Intel® 82599 Dual Fibre 10 Gigabit Ethernet Controller [8086:10fb] 150 * Intel® Ethernet Server Adapter X520-T2 [8086: 151c] 151 * Intel® Ethernet Controller X540-T2 [8086:1528] 152 * Intel® 82574L Gigabit Network Connection [8086:10d3] 153 * Emulated Intel® 82540EM Gigabit Ethernet Controller [8086:100e] 154 * Emulated Intel® 82545EM Gigabit Ethernet Controller [8086:100f] 155 * Intel® Ethernet Server Adapter X520-4 [8086:154a] 156 * Intel® Ethernet Controller I210 [8086:1533] 157 158**Implication**: 159 Risk of issues with untested variants. 160 161**Resolution/Workaround**: 162 Use tested NIC variants. For those supported Ethernet controllers, additional device 163 IDs may be added to the software if required. 164 165**Affected Environment/Platform**: 166 All. 167 168**Driver/Module**: 169 Poll-mode drivers 170 171 172Multi-process sample app requires exact memory mapping 173------------------------------------------------------ 174 175**Description**: 176 The multi-process example application assumes that 177 it is possible to map the hugepage memory to the same virtual addresses in client and server applications. 178 Occasionally, very rarely with 64-bit, this does not occur and a client application will fail on startup. 179 The Linux "address-space layout randomization" security feature can sometimes cause this to occur. 180 181**Implication**: 182 A multi-process client application fails to initialize. 183 184**Resolution/Workaround**: 185 See the "Multi-process Limitations" section in the DPDK Programmer's Guide for more information. 186 187**Affected Environment/Platform**: 188 All. 189 190**Driver/Module**: 191 Multi-process example application 192 193 194Packets are not sent by the 1 GbE/10 GbE SR-IOV driver when the source MAC is not the MAC assigned to the VF NIC 195---------------------------------------------------------------------------------------------------------------- 196 197**Description**: 198 The 1 GbE/10 GbE SR-IOV driver can only send packets when the Ethernet header's source MAC address is the same as 199 that of the VF NIC. 200 The reason for this is that the Linux ``ixgbe`` driver module in the host OS has its anti-spoofing feature enabled. 201 202**Implication**: 203 Packets sent using the 1 GbE/10 GbE SR-IOV driver must have the source MAC address correctly set to that of the VF NIC. 204 Packets with other source address values are dropped by the NIC if the application attempts to transmit them. 205 206**Resolution/Workaround**: 207 Configure the Ethernet source address in each packet to match that of the VF NIC. 208 209**Affected Environment/Platform**: 210 All. 211 212**Driver/Module**: 213 1 GbE/10 GbE VF Poll Mode Driver (PMD). 214 215 216SR-IOV drivers do not fully implement the rte_ethdev API 217-------------------------------------------------------- 218 219**Description**: 220 The SR-IOV drivers only supports the following rte_ethdev API functions: 221 222 * rte_eth_dev_configure() 223 * rte_eth_tx_queue_setup() 224 * rte_eth_rx_queue_setup() 225 * rte_eth_dev_info_get() 226 * rte_eth_dev_start() 227 * rte_eth_tx_burst() 228 * rte_eth_rx_burst() 229 * rte_eth_dev_stop() 230 * rte_eth_stats_get() 231 * rte_eth_stats_reset() 232 * rte_eth_link_get() 233 * rte_eth_link_get_no_wait() 234 235**Implication**: 236 Calling an unsupported function will result in an application error. 237 238**Resolution/Workaround**: 239 Do not use other rte_ethdev API functions in applications that use the SR-IOV drivers. 240 241**Affected Environment/Platform**: 242 All. 243 244**Driver/Module**: 245 VF Poll Mode Driver (PMD). 246 247 248PMD does not work with --no-huge EAL command line parameter 249----------------------------------------------------------- 250 251**Description**: 252 Currently, the DPDK does not store any information about memory allocated by ``malloc()` (for example, NUMA node, 253 physical address), hence PMD drivers do not work when the ``--no-huge`` command line parameter is supplied to EAL. 254 255**Implication**: 256 Sending and receiving data with PMD will not work. 257 258**Resolution/Workaround**: 259 Use huge page memory or use VFIO to map devices. 260 261**Affected Environment/Platform**: 262 Systems running the DPDK on Linux 263 264**Driver/Module**: 265 Poll Mode Driver (PMD). 266 267 268Some hardware off-load functions are not supported by the VF Driver 269------------------------------------------------------------------- 270 271**Description**: 272 Currently, configuration of the following items is not supported by the VF driver: 273 274 * IP/UDP/TCP checksum offload 275 * Jumbo Frame Receipt 276 * HW Strip CRC 277 278**Implication**: 279 Any configuration for these items in the VF register will be ignored. 280 The behavior is dependent on the current PF setting. 281 282**Resolution/Workaround**: 283 For the PF (Physical Function) status on which the VF driver depends, there is an option item under PMD in the 284 config file. 285 For others, the VF will keep the same behavior as PF setting. 286 287**Affected Environment/Platform**: 288 All. 289 290**Driver/Module**: 291 VF (SR-IOV) Poll Mode Driver (PMD). 292 293 294Kernel crash on IGB port unbinding 295---------------------------------- 296 297**Description**: 298 Kernel crash may occur when unbinding 1G ports from the igb_uio driver, on 2.6.3x kernels such as shipped 299 with Fedora 14. 300 301**Implication**: 302 Kernel crash occurs. 303 304**Resolution/Workaround**: 305 Use newer kernels or do not unbind ports. 306 307**Affected Environment/Platform**: 308 2.6.3x kernels such as shipped with Fedora 14 309 310**Driver/Module**: 311 IGB Poll Mode Driver (PMD). 312 313 314Twinpond and Ironpond NICs do not report link status correctly 315-------------------------------------------------------------- 316 317**Description**: 318 Twin Pond/Iron Pond NICs do not bring the physical link down when shutting down the port. 319 320**Implication**: 321 The link is reported as up even after issuing ``shutdown`` command unless the cable is physically disconnected. 322 323**Resolution/Workaround**: 324 None. 325 326**Affected Environment/Platform**: 327 Twin Pond and Iron Pond NICs 328 329**Driver/Module**: 330 Poll Mode Driver (PMD). 331 332 333Discrepancies between statistics reported by different NICs 334----------------------------------------------------------- 335 336**Description**: 337 Gigabit Ethernet devices from Intel include CRC bytes when calculating packet reception statistics regardless 338 of hardware CRC stripping state, while 10-Gigabit Ethernet devices from Intel do so only when hardware CRC 339 stripping is disabled. 340 341**Implication**: 342 There may be a discrepancy in how different NICs display packet reception statistics. 343 344**Resolution/Workaround**: 345 None 346 347**Affected Environment/Platform**: 348 All. 349 350**Driver/Module**: 351 Poll Mode Driver (PMD). 352 353 354Error reported opening files on DPDK initialization 355--------------------------------------------------- 356 357**Description**: 358 On DPDK application startup, errors may be reported when opening files as part of the initialization process. 359 This occurs if a large number, for example, 500 or more, or if hugepages are used, due to the per-process 360 limit on the number of open files. 361 362**Implication**: 363 The DPDK application may fail to run. 364 365**Resolution/Workaround**: 366 If using 2 MB hugepages, consider switching to a fewer number of 1 GB pages. 367 Alternatively, use the ``ulimit`` command to increase the number of files which can be opened by a process. 368 369**Affected Environment/Platform**: 370 All. 371 372**Driver/Module**: 373 Environment Abstraction Layer (EAL). 374 375 376Intel® QuickAssist Technology sample application does not work on a 32-bit OS on Shumway 377---------------------------------------------------------------------------------------- 378 379**Description**: 380 The Intel® Communications Chipset 89xx Series device does not fully support NUMA on a 32-bit OS. 381 Consequently, the sample application cannot work properly on Shumway, since it requires NUMA on both nodes. 382 383**Implication**: 384 The sample application cannot work in 32-bit mode with emulated NUMA, on multi-socket boards. 385 386**Resolution/Workaround**: 387 There is no workaround available. 388 389**Affected Environment/Platform**: 390 Shumway 391 392**Driver/Module**: 393 All. 394 395 396Differences in how different Intel NICs handle maximum packet length for jumbo frame 397------------------------------------------------------------------------------------ 398 399**Description**: 400 10 Gigabit Ethernet devices from Intel do not take VLAN tags into account when calculating packet size 401 while Gigabit Ethernet devices do so for jumbo frames. 402 403**Implication**: 404 When receiving packets with VLAN tags, the actual maximum size of useful payload that Intel Gigabit Ethernet 405 devices are able to receive is 4 bytes (or 8 bytes in the case of packets with extended VLAN tags) less than 406 that of Intel 10 Gigabit Ethernet devices. 407 408**Resolution/Workaround**: 409 Increase the configured maximum packet size when using Intel Gigabit Ethernet devices. 410 411**Affected Environment/Platform**: 412 All. 413 414**Driver/Module**: 415 Poll Mode Driver (PMD). 416 417 418Binding PCI devices to igb_uio fails on Linux kernel 3.9 when more than one device is used 419------------------------------------------------------------------------------------------ 420 421**Description**: 422 A known bug in the uio driver included in Linux kernel version 3.9 prevents more than one PCI device to be 423 bound to the igb_uio driver. 424 425**Implication**: 426 The Poll Mode Driver (PMD) will crash on initialization. 427 428**Resolution/Workaround**: 429 Use earlier or later kernel versions, or apply the following 430 `patch <https://github.com/torvalds/linux/commit/5ed0505c713805f89473cdc0bbfb5110dfd840cb>`_. 431 432**Affected Environment/Platform**: 433 Linux systems with kernel version 3.9 434 435**Driver/Module**: 436 igb_uio module 437 438 439GCC might generate Intel® AVX instructions for processors without Intel® AVX support 440------------------------------------------------------------------------------------ 441 442**Description**: 443 When compiling DPDK (and any DPDK app), gcc may generate Intel® AVX instructions, even when the 444 processor does not support Intel® AVX. 445 446**Implication**: 447 Any DPDK app might crash while starting up. 448 449**Resolution/Workaround**: 450 Either compile using icc or set ``EXTRA_CFLAGS='-O3'`` prior to compilation. 451 452**Affected Environment/Platform**: 453 Platforms which processor does not support Intel® AVX. 454 455**Driver/Module**: 456 Environment Abstraction Layer (EAL). 457 458Ethertype filter could receive other packets (non-assigned) in Niantic 459---------------------------------------------------------------------- 460 461**Description**: 462 On Intel® Ethernet Controller 82599EB When Ethertype filter (priority enable) was set, unmatched packets also 463 could be received on the assigned queue, such as ARP packets without 802.1q tags or with the user priority not 464 equal to set value. 465 Launch the testpmd by disabling RSS and with multiply queues, then add the ethertype filter like the following 466 and then start forwarding:: 467 468 add_ethertype_filter 0 ethertype 0x0806 priority enable 3 queue 2 index 1 469 470 When sending ARP packets without 802.1q tag and with user priority as non-3 by tester, all the ARP packets can 471 be received on the assigned queue. 472 473**Implication**: 474 The user priority comparing in Ethertype filter cannot work probably. 475 It is a NIC's issue due to the following: "In fact, ETQF.UP is not functional, and the information will 476 be added in errata of 82599 and X540." 477 478**Resolution/Workaround**: 479 None 480 481**Affected Environment/Platform**: 482 All. 483 484**Driver/Module**: 485 Poll Mode Driver (PMD). 486 487 488Cannot set link speed on Intel® 40G Ethernet controller 489------------------------------------------------------- 490 491**Description**: 492 On Intel® 40G Ethernet Controller you cannot set the link to specific speed. 493 494**Implication**: 495 The link speed cannot be changed forcibly, though it can be configured by application. 496 497**Resolution/Workaround**: 498 None 499 500**Affected Environment/Platform**: 501 All. 502 503**Driver/Module**: 504 Poll Mode Driver (PMD). 505 506 507Devices bound to igb_uio with VT-d enabled do not work on Linux kernel 3.15-3.17 508-------------------------------------------------------------------------------- 509 510**Description**: 511 When VT-d is enabled (``iommu=pt intel_iommu=on``), devices are 1:1 mapped. 512 In the Linux kernel unbinding devices from drivers removes that mapping which result in IOMMU errors. 513 Introduced in Linux `kernel 3.15 commit 514 <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/iommu/intel-iommu.c?id=816997d03bca9fabcee65f3481eb0297103eceb7>`_, 515 solved in Linux `kernel 3.18 commit 516 <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/iommu/intel-iommu.c?id=1196c2fb0407683c2df92d3d09f9144d42830894>`_. 517 518**Implication**: 519 Devices will not be allowed to access memory, resulting in following kernel errors:: 520 521 dmar: DRHD: handling fault status reg 2 522 dmar: DMAR:[DMA Read] Request device [02:00.0] fault addr a0c58000 523 DMAR:[fault reason 02] Present bit in context entry is clear 524 525**Resolution/Workaround**: 526 Use earlier or later kernel versions, or avoid driver binding on boot by blacklisting the driver modules. 527 I.e., in the case of ``ixgbe``, we can pass the kernel command line option: ``modprobe.blacklist=ixgbe``. 528 This way we do not need to unbind the device to bind it to igb_uio. 529 530**Affected Environment/Platform**: 531 Linux systems with kernel versions 3.15 to 3.17. 532 533**Driver/Module**: 534 ``igb_uio`` module. 535 536 537VM power manager may not work on systems with more than 64 cores 538---------------------------------------------------------------- 539 540**Description**: 541 When using VM power manager on a system with more than 64 cores, VM(s) should not use cores 64 or higher. 542 543**Implication**: 544 VM power manager should not be used with VM(s) that are using cores 64 or above. 545 546**Resolution/Workaround**: 547 Do not use cores 64 or above. 548 549**Affected Environment/Platform**: 550 Platforms with more than 64 cores. 551 552**Driver/Module**: 553 VM power manager application. 554 555 556DPDK may not build on some Intel CPUs using clang < 3.7.0 557--------------------------------------------------------- 558 559**Description**: 560 When compiling DPDK with an earlier version than 3.7.0 of clang, CPU flags are not detected on some Intel platforms 561 such as Intel Broadwell/Skylake (and possibly future CPUs), and therefore compilation fails due to missing intrinsics. 562 563**Implication**: 564 DPDK will not build when using a clang version < 3.7.0. 565 566**Resolution/Workaround**: 567 Use clang 3.7.0 or higher, or gcc. 568 569**Affected Environment/Platform**: 570 Platforms with Intel Broadwell/Skylake using an old clang version. 571 572**Driver/Module**: 573 Environment Abstraction Layer (EAL). 574 575 576The last EAL argument is replaced by the program name in argv[] 577--------------------------------------------------------------- 578 579**Description**: 580 The last EAL argument is replaced by program name in ``argv[]`` after ``eal_parse_args`` is called. 581 This is the intended behavior but it causes the pointer to the last EAL argument to be lost. 582 583**Implication**: 584 If the last EAL argument in ``argv[]`` is generated by a malloc function, changing it will cause memory 585 issues when freeing the argument. 586 587**Resolution/Workaround**: 588 An application should not consider the value in ``argv[]`` as unchanged. 589 590**Affected Environment/Platform**: 591 ALL. 592 593**Driver/Module**: 594 Environment Abstraction Layer (EAL). 595 596 597I40e VF may not receive packets in the promiscuous mode 598------------------------------------------------------- 599 600**Description**: 601 Promiscuous mode is not supported by the DPDK i40e VF driver when using the 602 i40e Linux kernel driver as host driver. 603 604**Implication**: 605 The i40e VF does not receive packets when the destination MAC address is unknown. 606 607**Resolution/Workaround**: 608 Use a explicit destination MAC address that matches the VF. 609 610**Affected Environment/Platform**: 611 All. 612 613**Driver/Module**: 614 Poll Mode Driver (PMD). 615 616 617uio pci generic module bind failed in X710/XL710/XXV710 618------------------------------------------------------- 619 620**Description**: 621 The ``uio_pci_generic`` module is not supported by XL710, since the errata of XL710 622 states that the Interrupt Status bit is not implemented. The errata is the item #71 623 from the `xl710 controller spec 624 <http://www.intel.com/content/www/us/en/embedded/products/networking/xl710-10-40-controller-spec-update.html>`_. 625 The hw limitation is the same as other X710/XXV710 NICs. 626 627**Implication**: 628 When use ``--bind=uio_pci_generic``, the ``uio_pci_generic`` module probes device and check the Interrupt 629 Status bit. Since it is not supported by X710/XL710/XXV710, it return a *failed* value. The statement 630 that these products don’t support INTx masking, is indicated in the related `linux kernel commit 631 <https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/drivers/pci/quirks.c?id=8bcf4525c5d43306c5fd07e132bc8650e3491aec>`_. 632 633**Resolution/Workaround**: 634 Do not bind the ``uio_pci_generic`` module in X710/XL710/XXV710 NICs. 635 636**Affected Environment/Platform**: 637 All. 638 639**Driver/Module**: 640 Poll Mode Driver (PMD). 641 642 643virtio tx_burst() function cannot do TSO on shared packets 644---------------------------------------------------------- 645 646**Description**: 647 The standard TX function of virtio driver does not manage shared 648 packets properly when doing TSO. These packets should be read-only 649 but the driver modifies them. 650 651 When doing TSO, the virtio standard expects that the L4 checksum is 652 set to the pseudo header checksum in the packet data, which is 653 different than the DPDK API. The driver patches the L4 checksum to 654 conform to the virtio standard, but this solution is invalid when 655 dealing with shared packets (clones), because the packet data should 656 not be modified. 657 658**Implication**: 659 In this situation, the shared data will be modified by the driver, 660 potentially causing race conditions with the other users of the mbuf 661 data. 662 663**Resolution/Workaround**: 664 The workaround in the application is to ensure that the network 665 headers in the packet data are not shared. 666 667**Affected Environment/Platform**: 668 Virtual machines running a virtio driver. 669 670**Driver/Module**: 671 Poll Mode Driver (PMD). 672 673 674igb uio legacy mode can not be used in X710/XL710/XXV710 675-------------------------------------------------------- 676 677**Description**: 678 X710/XL710/XXV710 NICs lack support for indicating INTx is asserted via the interrupt 679 bit in the PCI status register. Linux deleted them from INTx support table. The related 680 `commit <https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/drivers/pci/quirks.c?id=8bcf4525c5d43306c5fd07e132bc8650e3491aec>`_. 681 682**Implication**: 683 When insmod ``igb_uio`` with ``intr_mode=legacy`` and test link status interrupt. Since 684 INTx interrupt is not supported by X710/XL710/XXV710, it will cause Input/Output error 685 when reading file descriptor. 686 687**Resolution/Workaround**: 688 Do not bind ``igb_uio`` with legacy mode in X710/XL710/XXV710 NICs, or do not use kernel 689 version >4.7 when you bind ``igb_uio`` with legacy mode. 690 691**Affected Environment/Platform**: 692 ALL. 693 694**Driver/Module**: 695 Poll Mode Driver (PMD). 696 697 698igb_uio can not be used when running l3fwd-power 699------------------------------------------------ 700 701**Description**: 702 Link Status Change(LSC) interrupt and packet receiving interrupt are all enabled in l3fwd-power 703 APP. Because of UIO only support one interrupt, so these two kinds of interrupt need to share 704 one, and the receiving interrupt have the higher priority, so can't get the right link status. 705 706**Implication**: 707 When insmod ``igb_uio`` and running l3fwd-power APP, link status getting doesn't work properly. 708 709**Resolution/Workaround**: 710 Use vfio-pci when LSC and packet receiving interrupt enabled. 711 712**Affected Environment/Platform**: 713 ALL. 714 715**Driver/Module**: 716 ``igb_uio`` module. 717 718 719Linux kernel 4.10.0 iommu attribute read error 720---------------------------------------------- 721 722**Description**: 723 When VT-d is enabled (``iommu=pt intel_iommu=on``), reading IOMMU attributes from 724 /sys/devices/virtual/iommu/dmarXXX/intel-iommu/cap on Linux kernel 4.10.0 error. 725 This bug is fixed in `Linux commit a7fdb6e648fb 726 <https://patchwork.kernel.org/patch/9595727/>`_, 727 This bug is introduced in `Linux commit 39ab9555c241 728 <https://patchwork.kernel.org/patch/9554403/>`_, 729 730**Implication**: 731 When binding devices to VFIO and attempting to run testpmd application, 732 testpmd (and other DPDK applications) will not initialize. 733 734**Resolution/Workaround**: 735 Use other linux kernel version. It only happens in linux kernel 4.10.0. 736 737**Affected Environment/Platform**: 738 ALL OS of linux kernel 4.10.0. 739 740**Driver/Module**: 741 ``vfio-pci`` module. 742 743Netvsc driver and application restart 744------------------------------------- 745 746**Description**: 747 The Linux kernel uio_hv_generic driver does not completely shutdown and clean up 748 resources properly if application using Netvsc PMD exits. 749 750**Implication**: 751 When application using Netvsc PMD is restarted it can not complete initialization 752 handshake sequence with the host. 753 754**Resolution/Workaround**: 755 Either reboot the guest or remove and reinsert the hv_uio_generic module. 756 757**Affected Environment/Platform**: 758 Linux Hyper-V. 759 760**Driver/Module**: 761 ``uio_hv_generic`` module. 762 763 764PHY link up fails when rebinding i40e NICs to kernel driver 765----------------------------------------------------------- 766 767**Description**: 768 Some kernel drivers are not able to handle the link status correctly 769 after DPDK application sets the PHY to link down. 770 771**Implication**: 772 The link status can't be set to "up" after the NIC is rebound to the 773 kernel driver. Before a DPDK application quits it will invoke the 774 function ``i40e_dev_stop()`` which will sets the PHY to link down. Some 775 kernel drivers may not be able to handle the link status correctly after 776 it retakes control of the device. This is a known PHY link configuration 777 issue in the i40e kernel driver. The fix has been addressed in the 2.7.4 rc 778 version. So if the i40e kernel driver is < 2.7.4 and doesn't have the 779 fix backported it will encounter this issue. 780 781**Resolution/Workaround**: 782 First try to remove and reinsert the i40e kernel driver. If that fails 783 reboot the system. 784 785**Affected Environment/Platform**: 786 All. 787 788**Driver/Module**: 789 Poll Mode Driver (PMD). 790 791 792Restricted vdev ethdev operations supported in secondary process 793---------------------------------------------------------------- 794**Description** 795 In current virtual device sharing model, Ethernet device data structure will be 796 shared between primary and secondary process. Only those Ethernet device operations 797 which based on it are workable in secondary process. 798 799**Implication** 800 Some Ethernet device operations like device start/stop will be failed on virtual 801 device in secondary process. 802 803**Affected Environment/Platform**: 804 ALL. 805 806**Driver/Module**: 807 Virtual Device Poll Mode Driver (PMD). 808 809 810Kernel crash when hot-unplug igb_uio device while DPDK application is running 811----------------------------------------------------------------------------- 812 813**Description**: 814 When device has been bound to igb_uio driver and application is running, 815 hot-unplugging the device may cause kernel crash. 816 817**Reason**: 818 When device is hot-unplugged, igb_uio driver will be removed which will destroy UIO resources. 819 Later trying to access any uio resource will cause kernel crash. 820 821**Resolution/Workaround**: 822 If using DPDK for PCI HW hot-unplug, prefer to bind device with VFIO instead of IGB_UIO. 823 824**Affected Environment/Platform**: 825 ALL. 826 827**Driver/Module**: 828 ``igb_uio`` module. 829 830 831AVX-512 support disabled 832------------------------ 833 834**Description**: 835 ``AVX-512`` support has been disabled on some conditions. 836 This shouldn't be confused with ``CONFIG_RTE_ENABLE_AVX512`` config option which is already 837 disabled by default. This config option defines if ``AVX-512`` specific implementations of 838 some file to be used or not. What has been disabled is compiler feature to produce ``AVX-512`` 839 instructions from any source code. 840 841 On DPDK v18.11 ``AVX-512`` is disabled for all ``GCC`` builds which reported to cause a performance 842 drop. 843 844 On DPDK v19.02 ``AVX-512`` disable scope is reduced to ``GCC`` and ``binutils version 2.30`` based 845 on information accrued from the GCC community defect. 846 847**Reason**: 848 Generated ``AVX-512`` code cause crash: 849 https://bugs.dpdk.org/show_bug.cgi?id=97 850 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88096 851 852**Resolution/Workaround**: 853 * Update ``binutils`` to newer version than ``2.30``. 854 855 OR 856 857 * Use different compiler, like ``clang`` for this case. 858 859**Affected Environment/Platform**: 860 ``GCC`` and ``binutils version 2.30``. 861 862**Driver/Module**: 863 ALL. 864 865 866Unsuitable IOVA mode may be picked as the default 867------------------------------------------------- 868 869**Description** 870 Not all kernel drivers and not all devices support all IOVA modes. EAL will 871 attempt to pick a reasonable default based on a number of factors, but there 872 may be cases where the default may be unsuitable (for example, hotplugging 873 devices using `igb_uio` driver while having picked IOVA as VA mode on EAL 874 initialization). 875 876**Implication** 877 Some devices (hotplugged or otherwise) may not work due to incompatible IOVA 878 mode being automatically picked by EAL. 879 880**Resolution/Workaround**: 881 It is possible to force EAL to pick a particular IOVA mode by using the 882 `--iova-mode` command-line parameter. If conflicting requirements are present 883 (such as one device requiring IOVA as PA and one requiring IOVA as VA mode), 884 there is no workaround. 885 886**Affected Environment/Platform**: 887 Linux. 888 889**Driver/Module**: 890 ALL. 891 892Vhost multi-queue reconnection failed with QEMU version >= 4.2.0 893---------------------------------------------------------------- 894 895**Description** 896 It's a QEMU regression bug (bad commit: c6beefd674ff). QEMU only saves 897 acked features for one vhost-net when vhost quits. When vhost reconnects 898 to virtio-net/virtio-pmd in multi-queue situations, the features been 899 set multiple times are not consistent. 900 901**Implication** 902 Vhost cannot reconnect back to virtio-net/virtio-pmd normally. 903 904**Resolution/Workaround**: 905 It is possible to filter the incorrect acked features at vhost-user side. 906 907**Affected Environment/Platform**: 908 ALL. 909 910**Driver/Module**: 911 Virtual Device Poll Mode Driver (PMD). 912