xref: /dpdk/doc/guides/rel_notes/known_issues.rst (revision 3cc6ecfdfe85d2577fef30e1791bb7534e3d60b3)
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