summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-07-25version: 16.07-rc5v16.07-rc5Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-25mempool: fix unsafe removal from list by callbackThomas Monjalon
If a mempool is removed from the list by a callback function during rte_mempool_walk(), the TAILQ_FOREACH loop will fail unexpectedly. It is fixed by using the safe version of the loop macro. Reported-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
2016-07-25maintainers: add an entry for the stable branchesThomas Monjalon
This git tree will be used to backport some fixes from the master branch to maintain some "stable releases". The minor version number z will be incremented for these releases: YY.MM.z Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: John McNamara <john.mcnamara@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-25net/i40e: fix VSI removing when releasingJingjing Wu
VSI structure needs to be removed from TAILQ list when releasing. But for the child VSI it will be removed again after the structure is freed. It will cause core dump when the DPDK i40e using as PF host driver. This patch fixes it to only remove child VSI from TAILQ before send adminq command to remove it from hardware. Fixes: 4861cde46116 ("i40e: new poll mode driver") Fixes: 440499cf5376 ("net/i40e: support floating VEB") Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> Acked-by: Helin Zhang <helin.zhang@intel.com>
2016-07-25vhost: fix off-by-one error on descriptor number checkMaxime Coquelin
nr_desc is not an index but the number of descriptors, so can be equal to the virtqueue size. Fixes: a436f53ebfeb ("vhost: avoid dead loop chain") Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-25timer: fix corruption with resetHiroyuki Mikita
When timer_cb resets another running timer on the same lcore, the list of expired timers is chained to the pending-list. This commit prevents a running timer from being reset by not its own timer_cb. Fixes: a4b7a5a45cf5 ("timer: fix race condition") Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com> Acked-by: Robert Sanford <rsanford@akamai.com>
2016-07-25timer: remove unnecessary list insertionHiroyuki Mikita
When timer_set_running_state() fails in rte_timer_manage(), the failed timer is put back on pending-list. In this case, another core tries to reset or stop the timer. It does not need to be on pending-list. Fixes: a4b7a5a45cf5 ("timer: fix race condition") Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com> Acked-by: Robert Sanford <rsanford@akamai.com>
2016-07-25timer: fix pending-list manipulationHiroyuki Mikita
This commit fixes incorrect pending-list manipulation when getting list of expired timers in rte_timer_manage(). When timer_get_prev_entries() sets pending_head on prev, the pending-list is broken. The next of pending_head always becomes NULL. In this depth level, it is not need to manipulate the list. Fixes: 9b15ba895b9f ("timer: use a skip list") Signed-off-by: Hiroyuki Mikita <h.mikita89@gmail.com> Acked-by: Robert Sanford <rsanford@akamai.com>
2016-07-25ring: fix single consumer dequeue performanceJerin Jacob
Use of rte_smb_wmb() instead of rte_smb_rmb() in sc dequeue function creates the additional overhead of waiting for all the STOREs to be completed to local buffer from ring buffer memory. The sc dequeue function demands only LOAD-STORE barrier where LOADs from ring buffer memory needs to be completed before tail pointer update. Changing to rte_smb_rmb() to enable the required LOAD-STORE barrier. Fixes: ecc7d10e448e ("ring: guarantee dequeue ordering before tail update") Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-07-25mk: fix link with glibc < 2.17Thomas Monjalon
There is a dependency on librt with old glibc. The -lrt option was added everywhere it is needed but was also added in some applications makefiles as the first link option. The problem is this option is really useful only if added after the objects or libraries using it (except if using --whole-archive). And the -lrt options put after were removed to avoid duplicates. It was resulting in errors linking test application: eal_timer.c:(.text+0x128): undefined reference to `clock_gettime' eal_timer.c:(.text+0x166): undefined reference to `clock_gettime' eal_alarm.c:(.text+0xda): undefined reference to `clock_gettime' eal_alarm.c:(.text+0x211): undefined reference to `clock_gettime' It is fixed by removing superfluous -lrt in app makefiles. Fixes: 281948b4753e ("mk: fix missing librt dependencies") Fixes: 2f6414f4baf1 ("mk: fix static link with glibc < 2.17") Reported-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-25mk: fix build with clang < 3.5Ferruh Yigit
clang version < 3.5 doesn't support -z linker option, and some FreeBSD box still has clang versions < 3.5 as default version. compile error: clang: error: unknown argument: '-z' Fixes: fd591c4c4e35 ("mk: check shared library dependencies") Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Tested-by: Bruce Richardson <bruce.richardson@intel.com>
2016-07-25mk: fix clang version queryFerruh Yigit
-dumpversion is for gcc compatibility and doesn't return actual clang version. -dumpversion only returns 4.2.1 for a long time. Fixes: 2ef6eea891e5 ("mk: add clang toolchain") Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Tested-by: Bruce Richardson <bruce.richardson@intel.com>
2016-07-22version: 16.07-rc4v16.07-rc4Thomas Monjalon
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-22maintainers: add git tree for virtio/vhostYuanhan Liu
Add a git tree line for the virtio/vhost section, to make an explicit statement that the developers are suggested to make patches based on that tree. Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-22maintainers: split networking and crypto driversThomas Monjalon
There are now 2 different sections for drivers/net/ and drivers/crypto/. It makes possible to declare some dedicated git trees. Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2016-07-22unify tools namingThomas Monjalon
The following tools may be installed system-wide. It may be cleaner and more convenient to find them with the same dpdk- prefix (especially for autocompletion). Moreover, the script dpdk_nic_bind.py deserves a new name because it is not restricted to NICs and can be used for e.g. crypto. These files are renamed: pmdinfogen -> dpdk-pmdinfogen pmdinfo.py -> dpdk-pmdinfo.py dpdk_pdump -> dpdk-pdump dpdk_proc_info -> dpdk-procinfo dpdk_nic_bind.py -> dpdk-devbind.py setup.sh -> dpdk-setup.sh The tools pmdinfogen, pmdinfo.py and dpdk_pdump are new in 16.07. The scripts dpdk_nic_bind.py and setup.sh may have been used with previous releases by end users. That's why a symbolic link still provide the old name in the installed tools directory. Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-22doc: update sphinx installation instructionsJohn McNamara
Update the Sphinx installation instructions in the documentation contributors guide to reflect the fact that in the 1.4+ versions of Sphinx the ReadTheDocs theme must also be installed. Previously, in version 1.3.x, it was installed by default. Also change 'yum' to 'dnf' for package installations. Signed-off-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: fix sphinx highlighting warningsJohn McNamara
Fix warnings raised by Python Sphinx 1.4.5: guides/sample_app_ug/ip_pipeline.rst:334: WARNING: Could not lex literal_block as "ini". Highlighting skipped. guides/sample_app_ug/l2_forward_real_virtual.rst:467: WARNING: Could not lex literal_block as "c". Highlighting skipped. guides/sample_app_ug/l3_forward.rst:293: WARNING: Could not lex literal_block as "c". Highlighting skipped. guides/sample_app_ug/vm_power_management.rst:162: WARNING: Could not lex literal_block as "xml". Highlighting skipped. These warnings arise from invalid syntax in code-block directives. Fixes: f1e779ec5b50 ("doc: update ip pipeline app guide") Fixes: d0dff9ba445e ("doc: sample application user guide") Fixes: c75f4e6a7a2b ("doc: add vm power mgmt app") Signed-off-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: fix release notes for 16.07John McNamara
Fix grammar, spelling and formatting of DPDK 16.07 release notes. Signed-off-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: add cryptodev shared library version to release notesPablo de Lara
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2016-07-22doc: add flow bifurcation howto on LinuxJingjing Wu
Flow Bifurcation is a mechanism which uses features of advanced Ethernet devices to split traffic between queues. It provides the capability to let the kernel driver and DPDK driver co-exist and take advantage of both. It is achieved by using SR-IOV and the NIC's advanced filtering. This patch describes Flow Bifurcation and adds the user guide for ixgbe and i40e NICs. Signed-off-by: Jingjing Wu <jingjing.wu@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: add VM live migration imageBernard Iremonger
This patch adds an image of the Live Migration of a VM using vhost_user on the host, test configuration. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: add VM live migration howto with vhost-userBernard Iremonger
This patch describes the procedure to be be followed to perform Live Migration of a VM with Virtio PMD running on a host which is running the vhost_user sample application (vhost-switch). It includes sample host and VM scripts used in the procedure. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: add VF live migration imageBernard Iremonger
This patch adds an image of the Live Migration for virtio and sriov test configuration. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: add VF live migration howto with bonded virtioBernard Iremonger
This patch describes the procedure to be be followed to perform Live Migration of a VM with Virtio and VF PMD's using the bonding PMD. It includes sample host and VM scripts used in the procedure, and a sample switch configuration. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: fix vhost setup in tep_termination guideMark Kavanagh
- Fix vhost setup flags - Add minor edits to improve readability and consistency Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: note a pitfall on vhost reconnect featureYuanhan Liu
The vhost feature negotiation only happens at virtio reset stage, say when a virtio-net device is firstly initiated, or when DPDK virtio PMD initiates. That means, if vhost APP restarts after the negotiation and reconnects, the feature negotiation process will not be triggered again, meaning the info is lost. To make reconnect work, QEMU simply saves the negotiated features before the restart and restores it afterwards. Therefore, the vhost supported features must be exactly the same before and after the restart. For example, if TSO is disabled and then enabled, nothing will work and undefined issues might happen. Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22doc: update release notes and guide for enicJohn Daley
Signed-off-by: John Daley <johndale@cisco.com>
2016-07-22doc: fix macro name in mempool guideShreyansh Jain
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22examples/l2fwd-ivshmem: fix build with iccFerruh Yigit
icc version 16.0.2, compile error: examples/l2fwd-ivshmem/host/host.c(157): error #3656: variable "total_vm_packets_dropped" may be used before its value is set total_vm_packets_dropped += ctrl->vm_ports[portid].stats.dropped; ^ Fixes: 6aa497249172 ("examples/l2fwd-ivshmem: import sample application") Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
2016-07-22app/pdump: cleanup rings upon failuresReshma Pattan
Function create_mp_ring_vdev() for failure cases exits without freeing the created rte rings, because of this, pdump tool cannot be rerun successfully. Added rte ring cleanup logic upon failures. Fixes: caa7028276b8 ("app/pdump: add tool for packet capturing") Signed-off-by: Reshma Pattan <reshma.pattan@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2016-07-22net/i40e: fix unsafe tailq element removalPablo de Lara
i40e driver was removing elements when iterating tailq lists with TAILQ_FOREACH macro, which is not safe. It is especially visible since the memory is zeroed on free (commit ea0bddbd14e6). Instead, TAILQ_FOREACH_SAFE macro is used when removing/freeing these elements. Fixes: 4861cde46116 ("i40e: new poll mode driver") Fixes: 440499cf5376 ("net/i40e: support floating VEB") Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2016-07-22eal: add tailq safe iterator macroPablo de Lara
Removing/freeing elements elements within a TAILQ_FOREACH loop is not safe. FreeBSD defines TAILQ_FOREACH_SAFE macro, which permits these operations safely. This patch defines this macro for Linux systems, where it is not defined. Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2016-07-22mem: fix check of physical address retrievalMichal Jastrzebski
In rte_mem_virt2phy: Value returned from a function and indicating the number of bytes was ignored. This could cause a wrong pfn (page frame number) mask read from pagemap file. When read returns less than the number of sizeof(uint64_t) bytes, function rte_mem_virt2phy returns error. Coverity issue: 13212 Fixes: 40b966a211ab ("ivshmem: library changes for mmaping using ivshmem") Signed-off-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
2016-07-22scripts: validate ABI faster with parallel make jobsNeil Horman
John Mcnamara and I were discussing enhancing the validate_abi script to build the dpdk tree faster with multiple jobs. Theres no reason not to do it, so this implements that requirement. It uses a DPDK_MAKE_JOBS variable that can be set by the user to limit the job count. By default the job count is set to the number of online cpus. Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
2016-07-22examples/ip_pipeline: fix performance with default configSankar Chokkalingam
In TM, the read size should be lesser than the write size to improve performance. This enables the TM ports to push maximum packets to the output port. This fix changes the burst_read value from 64 to 24 in default_tm_params. Signed-off-by: Sankar Chokkalingam <sankarx.chokkalingam@intel.com> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2016-07-22examples/ip_pipeline: fix IPv6 flow classificationSankar Chokkalingam
IP Pipeline application with the configuration for Flow Classification IPV6 did not instantiate. Parse error in section "PIPELINE1": entry "dma_src_mask" too long The dma_src_mask check in pipeline_passthrough_parse_args() is wrong. This fix increases the length of dma_src_mask by 1 for NULL termination and corrected the validation of dma_src_mask length. This fix is also propagated to pipeline_fc_parse_args() for key_mask_str validation. Signed-off-by: Sankar Chokkalingam <sankarx.chokkalingam@intel.com> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2016-07-22examples/ip_pipeline: fix action flow bulk commandSankar Chokkalingam
Error while executing action flow bulk command pipeline> p 1 action flow bulk ./config/action.txt Command "action flow bulk" failed pipeline> The flow action entries are added successfully. But the return value is not computed correctly. Due to this, the error message appears on CLI. The return value is computed with rsp->n_flows after rsp pointer is freed. This fix computes the return value before rsp pointer is freed. Signed-off-by: Sankar Chokkalingam <sankarx.chokkalingam@intel.com> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2016-07-22examples/performance-thread: add missing bracesPablo de Lara
pthread_detach() function was returning 0 even when not calling lthread_detach(), due to missing braces in conditional (extra indentation was applied, giving a hint this is the correct fix). Fixes: 433ba6228f9a ("examples/performance-thread: add pthread_shim app") Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Tested-by: John McNamara <john.mcnamara@intel.com> Acked-by: John McNamara <john.mcnamara@intel.com>
2016-07-22examples/vhost: fix performanceJianfeng Tan
We find significant perfermance drop introduced by below commit, when vhost example is started with --mergeable 0 and inside vm, kernel virtio-net driver is used to do ip based forwarding. The commit, 859b480d5afd ("vhost: add guest offload setting"), adds support for VIRTIO_NET_F_GUEST_TSO4 and VIRTIO_NET_F_GUEST_TSO6, in vhost lib. But inside vhost example, the way to disable tso only excludes the direction from virtio to vhost, but not the opposite direction. When mergeable is disabled, it triggers big_packets path of virtio-net driver to prepare to receive possible big packets with size of 64K. Because mergeable is off, for each entry of avail ring, virtio driver uses 19 desc chained together, with one desc pointing to header, other 18 desc pointing to 4K-sized pages. But QEMU only creates 256 desc entries for each vq, which results in that only 13 packets can be received. VM kernel can quickly handle those packets and go to sleep (HLT). As QEMU has no option to set the desc entries of a vq, so here, we disable VIRTIO_NET_F_GUEST_TSO4 and VIRTIO_NET_F_GUEST_TSO6 with VIRTIO_NET_F_HOST_TSO4 and VIRTIO_NET_F_HOST_TSO6 when we disable tso of vhost example, to avoid VM kernel virtio driver go into big_packets path. Fixes: 9fd72e3cbd29 ("examples/vhost: add virtio offload") Reported-by: Qian Xu <qian.q.xu@intel.com> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Tested-by: Qian Xu <qian.q.xu@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-22examples/ipsec-secgw: call start functionHemant Agrawal
The usual device sequence is configure, queue setup and start. Crypto device should be started before use. Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2016-07-22examples/l2fwd-crypto: call start functionHemant Agrawal
The usual device sequence is configure, queue setup and start. Crypto device should be started before use. Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com> Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2016-07-22examples/ipsec-secgw: fix build with gcc 4.5Sergio Gonzalez Monroy
GCC 4.5.x does not handle well initializing anonymous union and/or structs. To make the compiler happy we name those anonymous union/struct. Fixes: 906257e965b7 ("examples/ipsec-secgw: support IPv6") Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
2016-07-22cryptodev: fix memory leak in parameter parsingPablo de Lara
When parsing the parameters for virtual device initialization, rte_kvargs structure was being freed only if there was an error, not when parsing was successful. Coverity issue: 124568 Fixes: f3e764fa2fb7 ("cryptodev: uninline parameter parsing") Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
2016-07-22net/virtio-user: fix inconsistent nameJianfeng Tan
The commit cb6696d22023 ("drivers: update registration macro usage") changes the name from virtio-user to virtio_user, because hyphen cannot be used in a C symbol name. However, this commit does not update the strings in docs and source code, which could lead to failure to start this device as per the docs. This patch updates related strings in the docs and source code. Fixes: cb6696d22023 ("drivers: update registration macro usage") Reported-by: Tiwei Bie <tiwei.bie@intel.com> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com> Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2016-07-22net/fm10k: fix RSS hash configXiao Wang
Sometimes app just wants to update the RSS hash function and no RSS key update is needed, but fm10k pmd will return EINVAL for this case. If the rss_key is NULL, we don't need to check the rss_key_len. Fixes: 57033cdf8fdc ("fm10k: add PF RSS") Reported-by: Xueqin Lin <xueqin.lin@intel.com> Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
2016-07-22net/i40e: fix out-of-bounds writes in vector RxSergey Dyasly
Rx loop inside _recv_raw_pkts_vec() ignores nb_pkts argument and always tries to receive RTE_I40E_VPMD_RX_BURST (32) packets. This is a violation of rte_eth_rx_burst() API and can lead to memory corruption (out-of-bounds writes to struct rte_mbuf **rx_pkts) if nb_pkts is less than 32. Fix this by actually using nb_pkts inside the loop. Fixes: 9ed94e5bb04e ("i40e: add vector Rx") Signed-off-by: Sergey Dyasly <s.dyasly@samsung.com> Acked-by: Ilya Maximets <i.maximets@samsung.com> Acked-by: Adam Bynes <adambynes@outlook.com>
2016-07-22net/i40e: fix speed capabilitiesIdo Barnea
Signed-off-by: Ido Barnea <ibarnea@cisco.com> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
2016-07-22net/ixgbe/base: fix C++ buildIdo Barnea
Signed-off-by: Ido Barnea <ibarnea@cisco.com>
2016-07-22net/enic: heed VLAN strip flagJohn Daley
The configure function enicpmd_dev_configure() was not paying attention to the rxmode VLAN strip bit. Set the VLAN strip mode according to the bit. Fixes: fefed3d1e62c ("enic: new driver") Signed-off-by: John Daley <johndale@cisco.com> Reviewed-by: David Harton <dharton@cisco.com> Tested-by: David Harton <dharton@cisco.com>