Since modern kernels don't allow unprivileged processes to read the
pagemaps file, the instructions on running as non-root are out-of-date. Add
a note clarifying that they will only work with earlier kernel versions.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Document NIC features, add more information about them and add more
implementation related support.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Update the "make help" output to reflect the additions
of make targets for tags database generation.
Fixes: aafaea3d3b70 ("devtools: add tags and cscope index generation")
Signed-off-by: Gabriel Carrillo <erik.g.carrillo@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Users can now use 'make defconfig' to generate a configuration using
the most appropriate defaults for the current machine.
<arch-machine-execenv-toolchain>
arch taken from uname -m
machine defaults to native
execenv is taken from uname, Linux=linuxapp, otherwise bsdapp
toolchain is taken from $CC -v to see which compiler to use
Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
During the refactoring of the sample app to be more generic, the
option to set -n0 and process a huge number of packets was lost.
This commit re-adds -n0, and will process INT64_MAX number of packets.
Fixes: adb5d5486c39 ("examples/eventdev_pipeline_sw_pmd: add sample app")
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Fix a typo that cause IPv6 packet type not be parsed.
Fixes: 71a7e2424e07 ("examples/l3fwd: fix using packet type blindly")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
This reverts commit 035a8cf88f010c82de3040c895c801ce0849b065.
Don't send messages to inactive VF will cause DPDK PF failing
to send messages to kernel VF.
With this revert, this issue will be solved.
Fixes: 035a8cf88f01 ("net/i40e: fix PF notify when VF is not up")
Cc: stable@dpdk.org
Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
After fail to create a flow and if this is the first flow, the
mask_added flag should be reset, or it will prevent a new flow
which require different mask be created, since the mask config
remains impact.
Fixes: 72c135a89f8 ("net/ixgbe: create consistent filter")
Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
The GRO header file depends on stdint and mbuf.
Spotted with devtools/check-includes.sh
Fixes: e996506a1c07 ("lib/gro: add Generic Receive Offload API framework")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
The PCI helper file depends on some EAL definitions.
Spotted with devtools/check-includes.sh:
error: implicit declaration of function ‘rte_eal_process_type’
error: ‘RTE_PROC_PRIMARY’ undeclared
error: implicit declaration of function ‘rte_socket_id’
There was also this error because the inline keyword was missing:
error: ‘rte_event_pmd_pci_probe’ defined but not used
Fixes: 9a8269d56942 ("eventdev: make PCI probe and remove functions optional")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
snprintf returns the length it would have written had the given length
been enough, *terminating null byte excluded*.
It will however limit the length of its writing to given length minus
one, and always put a terminating null-byte at the end of the string.
This must be taken into account when calculating the total length of the
device declaration string.
Fixes: 3054036f054a ("eal: fix possible crash in hotplug")
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
The original purpose of this deprecation is to make sure PCI devices
are reset whenever DPDK apps crash.
Since the commit b58eedfc7dd5 from Shijith can fix this problem without
deprecating anything, now there is no need to deprecate iomem and ioport
mapping in igb_uio.
Fixes: 3bac1dbc1ed5 ("doc: announce iomem and ioport removal from igb_uio")
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
This file was not referenced in MAINTAINERS list.
The miss is spotted with devtools/check-maintainers.sh.
As this test file is related to eventdev, they should both
have the same maintainer.
Fixes: 1ee55d7a6e4d ("test/eventdev: add auto-tests for event ring functions")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
The metrics headers were listed in misc section,
whereas they belong to the device API family.
Fixes: 349950ddb9c5 ("metrics: add information metrics library")
Fixes: 2ad7ba9a6567 ("bitrate: add bitrate statistics library")
Fixes: 5cd3cac9ed22 ("latency: added new library for latency stats")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
The keepalive header was listed in misc section,
despite its doxygen comment is "LCore Keepalive Monitor".
Fixes: 75583b0d1efd ("eal: add keep alive monitoring")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
It is very difficult to list OS which are really supported.
Instead of continuing this unrealistic effort, a more reliable list
of tested platforms and OS is updated in the release notes.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
Add tested Intel platforms with Intel NICs to the release note.
Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Added notes to the documentation warning that if UEFI secure boot
is enabled the Linux kernel may disallow the use of UIO on the
system, and a suggested workaround of using the vfio-pci kernel
module instead of igb_uio or uio_pci_generic.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Add How-To doc to describe the use of the pdump library
and the dpdk-pdump tool to capture traffic on DPDK
ports.
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
This patch adds description of the traffic management api to dpdk
programmers guide.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Fixes: 7a364faef185 ("cryptodev: remove crypto device type enumeration")
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Memory is reserved after each crypto operation
for the necessary IV(s), which could be for cipher,
authentication or AEAD algorithms.
However, for AEAD algorithms (such as AES-GCM), this
memory was not being reserved, leading to potential
memory overflow.
Fixes: 8a5b494a7f99 ("app/test-crypto-perf: add AEAD parameters")
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
The lsc_interrupt flag is enabled by default, and when the --tx-first is
used as a command line parameter, the 32 packets can be sent out before
the link state is up, resulting in the loss of the packets, and no further
forwarding will take place.
E.g. ./build/app/testpmd -c f0 -- --tx-first --stats-period 1
When the --tx-first is used, the lsc_interrupt flag needs to be disabled,
ensuring the links are up before forwarding traffic. Therefore, during the
parameter checking at startup, if --tx-first is used, we now warn the user,
and set lsc_interrupt to 0.
Fixes: 99cabef08855 ("app/testpmd: add parameter to start forwarding Tx first")
Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
In testpmd, GRO is supported by csum forwarding engine, but the cmdline
message shows GRO is supported by io forwarding engine. This patch is
to fix this issue.
Fixes: b40f8d782ba1 ("app/testpmd: enable TCP/IPv4 GRO")
Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Vector code is very young and can present some issues for users, to avoid
them to modify the selections function by commenting the code and recompile
the PMD, new devices parameters are added to deactivate the Tx and/or Rx
vector code.
By using such device parameters, the user will be able to fall back to
regular burst functions.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
If there's a Rx completion with error (e.g, MTU mismatch), it is handled
later out of main burst loop as a slow path for performance reason.
Statistics should be corrected by subtracting counters of errored packets.
Also, the last entry of mlx5_ptype_table[] must be RTE_PTYPE_ALL_MASK to
mark error in completion.
Fixes: ea16068c0064 ("net/mlx5: fix L4 packet type support")
Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
The pinfo variable has wrong data. This has to have merged data of two
fields from Rx completion - pkt_info and hdr_type_etc.
Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
The data_off field of newly allocated mbufs is stale data. This shouldn't
be used in calculating Rx address for device when posting free buffers.
RTE_PKTMBUF_HEADROOM should be used instead and data_off of a mbuf will be
reset on packet reception anyway.
Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Unlike mlx5_rx_burst(), mlx5_rx_burst_vec() doesn't replace completed
buffers one by one right after completion is processed but replenishes
multiple buffers later with rte_mempool_get_bulk(). Therefore, there could
be some buffer addresses left in the SW ring (rxq->elts[]) which have
already been delivered to application. As PMD doesn't own such buffers, it
must not be freed by PMD. "Trimming" is needed before cleanup.
A problem can be seen when quitting testpmd when
CONFIG_RTE_LIBRTE_MBUF_DEBUG=y and CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=y
Trimming should be as simple as possible, it shouldn't touch any indexes
and buffer allocation isn't necessary.
Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Changing the MTU is not related to changing the number of segments,
activating or not the multi-segment support should be handled by the
application.
Fixes: 9964b965ad69 ("net/mlx5: re-add Rx scatter support")
Cc: stable@dpdk.org
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Current mlx4 OFED version has bug which returns error to
ibv destroy functions when the device was plugged out, in
spite of the resources were destroyed correctly.
Hence, failsafe PMD was aborted, only in debug mode, when
it tries to remove the device in plug-out process.
The workaround added option to replace all claim_zero
assertions with debugging messages, by the way, this option
affects non ibv destroy assertions.
DPDK 18.02 release should work with Mellanox OFED-4.2 which will
include the verbs fix to this bug, then, this patch can
be removed.
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Occasionally, the amount of packets to free from the work queue ends
perfectly on a boundary to have nb_free = 0 and pool = 0. This causes
a segfault as follows:
(gdb) bt
#0 rte_mempool_default_cache
#1 rte_mempool_put_bulk (n=0, obj_table=0x7f10deff2530, mp=0x0)
#2 enic_free_wq_bufs (wq=wq@entry=0x7efabffcd5b0,
completed_index=completed_index@entry=33)
#3 0x00007f11e9c86e17 in enic_cleanup_wq (enic=<optimized out>,
wq=wq@entry=0x7efabffcd5b0)
at /usr/src/debug/openvswitch-2.6.1/dpdk-16.11/drivers/net/enic/enic_rxtx.c:442
#4 0x00007f11e9c86e5f in enic_xmit_pkts (tx_queue=0x7efabffcd5b0,
tx_pkts=0x7f10deffb1a8, nb_pkts=<optimized out>)
at /usr/src/debug/openvswitch-2.6.1/dpdk-16.11/drivers/net/enic/enic_rxtx.c:470
#5 0x00007f11e9e147ad in rte_eth_tx_burst (nb_pkts=<optimized out>,
tx_pkts=0x7f10deffb1a8, queue_id=0, port_id=<optimized out>)
This commit makes the enic wq driver match other drivers who call the
bulk free, by checking that there are actual packets to free.
Fixes: 36935afbc53c ("net/enic: refactor Tx mbuf recycling")
CC: stable@dpdk.org
Reported-by: Vincent S. Cojot <vcojot@redhat.com>
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1468631
Signed-off-by: Aaron Conole <aconole@redhat.com>
Reviewed-by: John Daley <johndale@cisco.com>
Buffer length be configured for each data segment should not exceed
the requested value, or device may fill data that exceed the boundary
of memory that be reserved.
Fixes: 4861cde46116 ("i40e: new poll mode driver")
Cc: stable@dpdk.org
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Reviewed-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
When the output of an exec() slave definition is only a single newline
character, the fail-safe currently fails to parse the device with the
value returned by the rte_devargs library.
This behavior is incorrect, because the fail-safe should make a
difference between the absence of a device, and an erroneous device
declaration.
Fix the output sanitization in the case where no newline was at its end
and detect the special case of an absent device. The correct error code
is then returned.
Fixes: a0194d828100 ("net/failsafe: add flexible device definition")
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
When there is no preferred device, failsafe will always
try to scan for preferred device. And if there is no device
found with the exec option, popen() will get an empty output.
In this case, it was forgotten to close the file descriptor.
It is fixed by closing the file descriptor even if the output is empty.
Coverity issue: 158633
Fixes: a0194d828100 ("net/failsafe: add flexible device definition")
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
We should only restore shadow_vfta when hw_vlan_filter is active.
Otherwise, we should restore the previous filtering behavior.
Fixes: f003fc383487 ("vmxnet3: enable vlan filtering")
Cc: stable@dpdk.org
Signed-off-by: Chas Williams <ciwillia@brocade.com>
Acked-by: Shrikrishna Khare <skhare@vmware.com>
Each dirty page logging operation should be atomic. But it's not
atomic in current implementation. So it's possible that some dirty
pages can't be logged successfully when different threads try to
log different pages into the same byte of the log buffer concurrently.
This patch fixes this issue.
Fixes: b171fad1ffa5 ("vhost: log used vring changes")
Cc: stable@dpdk.org
Reported-by: Xiao Wang <xiao.w.wang@intel.com>
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
If rte_eal_devargs_parse fails, the rte_devargs has not yet been inserted
in the global list. When jumping to err_devarg, the removal fails and it
is not properly freed.
Free the allocated rte_devargs if its removal failed.
Coverity issue: 158658
Fixes: 7e8b26650146 ("eal: fix hotplug add / remove")
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
If devargs is NULL, building the full_dev_name will segfault
when using strlen on it.
Coverity issue: 158630
Fixes: 7e8b26650146 ("eal: fix hotplug add / remove")
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Do not fail upon detecting a set bus configuration when adding an
rte_devargs. i.e. adding a blacklisted PCI device while the bus is
configured in whitelist mode.
This failure condition has been introduced when the bus policies
were implemented. This implementation however was meant to strictly
follow the existing API. This check was not and should not be performed
until the current API has been properly deprecated.
The same kind of check is already done when parsing EAL options.
Fixes: 02823c1db0bc ("devargs: parse bus policies")
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
When the EAL parses the common options given to the application,
not all subsystems are available. Some device drivers are registered
afterward upon dynamic plugin loading.
Devices using those drivers are thus unable to be parsed by any drivers
and are rejected.
Store the device options first and keep them for later processing.
Parse these right before initializing the buses, the drivers must have
been stabilized at this point.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Tested-by: Dirk-Holger Lenz <dirk.lenz@ng4t.com>
Printing the number of scanned devices should be a debug log,
not an error.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Fixes: 066731939589 ("doc: add libnuma as dependency")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
With this commit, the correct method to use git fixline to indicate
a fix of a previous commit has changed. The new rules require the
author of the original code that is being fixed to be on CC.
The logic behind this improvement is that if there is a genuine bug,
one of the ideal people to review is the author of the original code
being fixed. Adding them on Cc makes them aware of the patch, avoiding
it from being passed by accidentally while reading the mailing-list.
Given that the original author (now on Cc:) might not actually review,
there is no value in keeping the Cc: in git commit history. If the
original author performs a review, their Reviewed-by: or Acked-by: is
stored in git history (same as now).
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>