3639 Commits

Author SHA1 Message Date
Olga Shern
0a3b350da8 mlx5: fix Tx loss after initialization
Pre-registering mbuf memory pools when creating TX queues avoids costly
registrations later in the data path.

Fixes: 2e22920b85d9 ("mlx5: support non-scattered Tx and Rx")

Signed-off-by: Olga Shern <olgas@mellanox.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-11-24 17:49:27 +01:00
Olga Shern
45d7e38c6f mlx4: fix Tx loss after initialization
Pre-registering mbuf memory pools when creating TX queues avoids costly
registrations later in the data path.

Fixes: 7fae69eeff13 ("mlx4: new poll mode driver")

Signed-off-by: Olga Shern <olgas@mellanox.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-11-24 17:49:27 +01:00
Adrien Mazarguil
34d0626306 mlx5: fix scattered Tx with too many segments
Buffers with too many segments are linearized to overcome
MLX5_PMD_SGE_WR_N, unfortunately the last segment is never sent.

Fixes: 3ee8444608a9 ("mlx5: support scattered Rx and Tx")

Signed-off-by: Jesper Wramberg <jesper.wramberg@gmail.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-11-24 17:49:27 +01:00
Adrien Mazarguil
2921677f15 mlx4: fix scattered Tx with too many segments
Buffers with too many segments are linearized to overcome
MLX4_PMD_SGE_WR_N, unfortunately the last segment is never sent.

Fixes: be11b35817e0 ("mlx4: move scattered Tx processing to helper function")

Signed-off-by: Jesper Wramberg <jesper.wramberg@gmail.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-11-24 17:49:27 +01:00
Adrien Mazarguil
8340392e9b mlx5: fix memory registration for indirect mbuf data
Indirect mbuf data may come from a different mempool which must be
registered separately as another memory region, otherwise such mbufs cannot
be sent.

Fixes: 2e22920b85d9 ("mlx5: support non-scattered Tx and Rx")

Signed-off-by: Jesper Wramberg <jesper.wramberg@gmail.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-11-24 17:49:27 +01:00
Adrien Mazarguil
f4acfd4176 mlx4: fix memory registration for indirect mbuf data
Indirect mbuf data may come from a different mempool which must be
registered separately as another memory region, otherwise such mbufs cannot
be sent.

Fixes: 7fae69eeff13 ("mlx4: new poll mode driver")

Signed-off-by: Jesper Wramberg <jesper.wramberg@gmail.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-11-24 17:49:27 +01:00
Adrien Mazarguil
7efc807d48 mlx5: fix possible crash when clearing device statistics
A typo causes TX stats indices to be retrieved from RX queues.

Fixes: 87011737b715 ("mlx5: add software counters")

Reported-by: Nicolas Harnois <nicolas.harnois@6wind.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-11-24 17:49:27 +01:00
Adrien Mazarguil
0f9db82d9f mlx4: fix possible crash when clearing device statistics
A typo causes TX stats indices to be retrieved from RX queues.

Fixes: 7fae69eeff13 ("mlx4: new poll mode driver")

Reported-by: Nicolas Harnois <nicolas.harnois@6wind.com>
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2015-11-24 17:39:21 +01:00
Rahul Lakkireddy
334505bad2 cxgbe: use trylock in Tx callback instead of spinning for a lock
CXGBE PMD depends on an alarm to periodically transmit any pending
coalesced packets and hence spins for a lock for each tx queue in the
alarm callback.

A better solution is to try to get a lock whenever possible, instead
of spinning for it.

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
2015-11-24 14:56:27 +01:00
Rahul Lakkireddy
ca0481dade cxgbe: fix minimum descriptors requirement
Most dpdk examples and apps seem to initialize with a minimum of 128 rx
descriptors and 512 tx descriptors for queue setup.  However, CXGBE PMD
enforces a minimum of 1024 descriptors.  This causes the dpdk stack
to return -EINVAL because the apps do not request the minimum required.

The fix is to relax this enforcing in CXGBE PMD. A minimum of 128
descriptors seems to be a good number with the least impact on the
performance.

Fixes: 946c9ed95616 ("cxgbe: get descriptor limits")

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
2015-11-24 14:56:08 +01:00
Cunming Liang
4ba427971a ixgbe: fix VFIO interrupt vector
The vector number may change during 'dev_start'. Before enabling a new vector mapping,
it's necessary to disable/unmap the previous setting.

Fixes: 7ab8500037f6 ("ixgbe: fix VF start with PF stopped")

Reported-by: Yong Liu <yong.liu@intel.com>
Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Tested-by: Yong Liu <yong.liu@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2015-11-24 14:56:08 +01:00
Cunming Liang
4a4ee6c361 igb: fix VFIO interrupt vector
The vector number may change during 'dev_start'.
Before enabling a new vector mapping,
it's necessary to disable/unmap the previous setting.

Fixes: fe685de2b1b6 ("igb: fix VF start with PF stopped")

Reported-by: Yong Liu <yong.liu@intel.com>
Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
2015-11-24 14:56:07 +01:00
Chen Jing D(Mark)
10eb9ce8dc fm10k: allow to disable vector driver
fm10k driver will meet compile error on non-x86 platforms due to
SSE instructions. Original implementation didn't have switch to
turn off vPMD.
The improvement introduces a macro to turn on/off vPMD functions,
it's on by default. On non-x86 platforms, it can simply be turned
off to fix compile issue.

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
2015-11-24 12:35:19 +01:00
Chen Jing D(Mark)
06977caf34 fm10k: fix crash when closing
When the fm10k port is closed, both func tx_queue_clean() and
fm10k_tx_queue_release_mbufs_vec() will try to release buffer in
SW ring. The latter func won't do sanity check on those pointers
and cause crash.

The fix removed Vector TX buffer release func since it can share
the release functions with regular TX.

Fixes: fb9066e479a6 ("fm10k: reset and release mbuf for vector Tx")

Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Acked-by: Michael Qiu <michael.qiu@intel.com>
2015-11-24 12:35:19 +01:00
Shaopeng He
6b59a3bc82 fm10k: fix VLAN in Rx mbuf
vlan_tci should be copied from RX descriptor to mbuf,
and flag PKT_RX_VLAN_PKT should be set for every RX packet,
this patch fixes this issue.
Packets in fm10k device always carry at least one VLAN tag.
For those packets coming in without VLAN tag,
the port default VLAN tag will be used.
So in fm10k, always PKT_RX_VLAN_PKT flag is set and vlan_tci
is valid for each RX packet's mbuf.

Signed-off-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
2015-11-24 12:35:19 +01:00
Jingjing Wu
4522eca135 i40evf: fix write flush
For i40e vf driver, should use I40EVF_WRITE_FLUSH to flush
configuration but not I40E_WRITE_FLUSH. This patch fixed this issue.

Fixes: be6c228d4da3 (i40evf: support Rx interrupt)

Reported-by: Qian Xu <qian.q.xu@intel.com>
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2015-11-23 23:51:14 +01:00
Jingjing Wu
1487a7c6ef i40e: fix BW info without DCB enabled
If DCB is not enabled, the BW info is not stored for VSI. This
patch fixes this issue by merging functions i40e_vsi_dump_bw_config
and i40e_vsi_get_bw_info together.

Fixes: c8b9a3e3fe1b (i40e: support DCB mode)

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2015-11-23 23:51:14 +01:00
Jingjing Wu
283a1eaf41 i40e: fix DCB configuration with firmware >= 5.x
When NVM version is updated to 5.x, DCB can not be configured. This
issue is because of the FW version validation is not correct.
This patch fixed this issue.

Fixes: c8b9a3e3fe1b (i40e: support DCB mode)

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Tested-by: Yulong Pei <yulong.pei@intel.com>
2015-11-23 23:51:14 +01:00
Helin Zhang
2f1e228174 i40e: skip link control as firmware workaround
As firmware does not support any link control from software driver
side, any phy config should be ignored as a workaround. Otherwise
the link might not be up again after binding back to kernel driver.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
2015-11-23 23:51:14 +01:00
Helin Zhang
8ebb29567b i40e: fix reconfiguring hash enable flags
It fixes the issue of not re-configuring hash enable flags (HENA)
if there is no key.

Fixes: d0a349409bd7 ("i40e: support AQ based RSS config")

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
2015-11-23 23:51:14 +01:00
Harry van Haaren
0834d1524d i40e: remove CRC size from byte counters
This patch removes the crc bytes from byte counter statistics.

Doing so fixes a bug that CRC bytes were included on TX but not
on RX, causing mismatch of bytes received / sent.

Fixes: 9aace75fc82e ("i40e: fix statistics")

Reported-by: Weichun Chen <weichunx.chen@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-11-23 23:51:14 +01:00
Harry van Haaren
c03fcee9ab ixgbe: remove CRC size from byte counters
This patch removes the crc bytes from byte counter statistics.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-11-23 23:51:14 +01:00
Harry van Haaren
156c5a8cf9 e1000: remove CRC size from byte counters
This patch removes the crc bytes from byte counter statistics.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-11-23 23:51:14 +01:00
Jon DeVree
1be847dd45 e1000: fix PCI device info with secondary process
This fixes a bug added to em and igb drivers which causes the pci info
seen by the primary process to become invalidated by secondary process
startup.
This call was added after the process type check in the other drivers.

Fixes: eeefe73f0af1 ("drivers: copy PCI device info to ethdev data")

Signed-off-by: Jon DeVree <nuxi@vault24.org>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
2015-11-23 23:51:14 +01:00
Mauricio Vasquez B
d082c0395b ring: fix memory leak when detaching
When freeing the device it is also neccesary to free
rx_queues and tx_queues

Signed-off-by: Mauricio Vasquez B <mauricio.vasquezbernal@studenti.polito.it>
2015-11-23 23:51:14 +01:00
Zhe Tao
850d6bb7d5 config: disable i40e vector driver
Issue: l3fwd app need the ptype in the mbuf to forward the packets properly.
But now some drivers like virtio driver and FVL vPMD will not set the ptype
in mbuf, so l3fwd cannot work properly on that kind of drivers.

Configure the vector PMD option as no for default as a work around for l3fwd.
After the l3fwd app can handle the undefined ptype or the i40e vPMD can
return the ptype, the option will be set as yes for default again.

Signed-off-by: Zhe Tao <zhe.tao@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2015-11-23 23:51:14 +01:00
Rahul Lakkireddy
386c993e95 ethdev: add a missing sanity check for Tx queue setup
Add a sanity check for number of tx descriptors requested during tx
queue setup.  Return -EINVAL if the number requested does not meet
the tx descriptor requirements of the device.

Fixes: 80a1deb4c77a ("ethdev: add API to retrieve queue information")

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-11-23 23:51:14 +01:00
Panu Matilainen
87ea252421 ethdev: fix missing symbol export
It prevents some drivers to load:
	undefined symbol: rte_eth_dma_zone_reserve

Fixes: 719dbebceb81 ("xen: allow determining DOM0 at runtime")

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2015-11-23 22:26:16 +01:00
Panu Matilainen
46454f16d5 eal: fix plugin directory scan to be filesystem agnostic
Not all filesystems supply struct dirent d_type field, in which case
everything in the specified directory would go ignored. One such
filesystem being XFS which RHEL 7 defaults to... stat() the entries
instead.

Fixes: 9f8eb1d9ca0f ("eal: support driver loading from directory")

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
2015-11-23 16:51:53 +01:00
Panu Matilainen
26852dcd0d eal: fix plugin loading without requiring full path
The added error checking on plugin initialization in
commit 9f8eb1d9ca0f56d6292db5858c52e6873d0abe51 broke the ability of
loading plugins by their basename from default linker locations.
Only use stat() for directory discovery and leave error handling
to dlopen() to restore former behavior.

Fixes: 9f8eb1d9ca0f ("eal: support driver loading from directory")

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
2015-11-23 16:35:36 +01:00
David Marchand
ca8477c881 eal: restrict empty declarations to doxygen
No need for those forward declarations (which breaks build when asking for
C++11 or adding pedantic flag).

Signed-off-by: David Marchand <david.marchand@6wind.com>
2015-11-23 16:20:31 +01:00
David Marchand
e103df6b73 eal: revert C++ app build fix
It does not build with every C++ compilers.
Reverts the _UNDERLYING_TYPE workarounds to prepare
for another fix in the next patch.

Fixes: 621389bbbe08 ("eal: fix C++ app build")

Signed-off-by: David Marchand <david.marchand@6wind.com>
2015-11-23 16:20:31 +01:00
Ferruh Yigit
cba0d5f101 eal: fix alarm clock type for glibc < 2.12
CLOCK_MONOTONIC_RAW added in glibc 2.12, using this define in older
glibc versions cause compile error:
'error: identifier "CLOCK_MONOTONIC_RAW" is undefined'

This patch replaces "CLOCK_MONOTONIC_RAW" with "CLOCK_MONOTONIC" for
older glibc versions, versions that support "CLOCK_MONOTONIC_RAW"
will keep using this clock type.

Fixes: d08d304508a8 ("eal/linux: make alarm not affected by system time jump")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2015-11-20 17:38:24 +01:00
Matej Vido
d992985ff3 szedata2: add scattered Rx
Add new RX function for handling scattered packets.

Signed-off-by: Matej Vido <matejvido@gmail.com>
2015-11-20 17:17:05 +01:00
Matej Vido
906cea82aa szedata2: add Tx
TX function handles scattered and non-scattered packets.

Signed-off-by: Matej Vido <matejvido@gmail.com>
2015-11-20 17:17:05 +01:00
Matej Vido
29fa906242 szedata2: add non-scattered Rx
Signed-off-by: Matej Vido <matejvido@gmail.com>
2015-11-20 17:17:04 +01:00
Matej Vido
abef3dd62e szedata2: add new poll mode driver
Add virtual PMD which communicates with COMBO cards through sze2
layer using libsze2 library.

Since link_speed is uint16_t, there can not be used number for 100G
speed, therefore link_speed is set to ETH_LINK_SPEED_10G until the
type of link_speed is solved.

Signed-off-by: Matej Vido <matejvido@gmail.com>
2015-11-20 17:17:04 +01:00
Thomas Monjalon
4e76dec07d mk: fix extra options when linking lib through compiler
When using a linker option not known by the compiler like -rpath,
the library linkage was failing.
It is fixed by prefixing the option with -Wl, as it is done in other
makefiles.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2015-11-20 17:16:49 +01:00
Declan Doherty
3a96022f36 mk: fix build with icc 16
This patch changes the ICC conditional check to disable
-no-inline-max-size and -no-inline-max-total-size to be
for all versions of icc greater than 14 and not just for version 15.

Signed-off-by: Declan Doherty <declan.doherty@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
2015-11-20 17:16:35 +01:00
Konstantin Ananyev
a49886ddac acl: fix native build on haswell with icc
On HSW box with icc 16.0.0 build for x86_64-native-linuxapp-icc fails with:
icc: command line warning #10120: overriding '-march=native' with '-msse4.1'
...
dpdk.org/x86_64-native-linuxapp-icc/include/rte_memcpy.h(96): error: identifier "__m256i" is undefined

The reason is that icc treats "-march=native ... -msse4.1"
in a different way, then gcc and clang.
For icc it means override all flags enabled with
'-march=native' with '-msse4.1'.
Even when '-march=native' is a superset for '-msse4.1'.
To overcome the problem add a check is SSE4.1 compilation flag already enabled.
If yes, then no need to add '-msse4.1'
Similar change for avx2 compilation option.

Fixes: 074f54ad03ee ("acl: fix build and runtime for default target")

Reported-by: Declan Doherty <declan.doherty@intel.com>
Reported-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2015-11-20 17:16:35 +01:00
Remy Horton
e64833f227 examples/l2fwd-keepalive: add sample application
Modified version of l2fwd to demonstrate keep-alive functionality.

Signed-off-by: Remy Horton <remy.horton@intel.com>
Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>
Signed-off-by: John J Browne <john.j.browne@intel.com>
2015-11-19 15:45:26 +01:00
Remy Horton
75583b0d1e eal: add keep alive monitoring
Adds functions for detecting and reporting the live-ness of LCores,
the primary requirement of which is minimal overheads for the
core(s) being checked. Core failures are notified via an application
defined callback.

Signed-off-by: Remy Horton <remy.horton@intel.com>
2015-11-19 15:44:51 +01:00
Helin Zhang
e6734d21b4 kni: fix build with kernel 2.6.32
It fixes the compile issue on kernel version 2.6.32 or old ones.

Error logs:
lib/librte_eal/linuxapp/kni/kni_misc.c:121: error: unknown field id specified in initializer
lib/librte_eal/linuxapp/kni/kni_misc.c:121: error: excess elements in struct initializer
lib/librte_eal/linuxapp/kni/kni_misc.c:121: error: (near initialization for kni_net_ops)
lib/librte_eal/linuxapp/kni/kni_misc.c:122: error: unknown field size specified in initializer
lib/librte_eal/linuxapp/kni/kni_misc.c:122: error: excess elements in struct initializer
lib/librte_eal/linuxapp/kni/kni_misc.c:122: error: (near initialization for kni_net_ops)

Fixes: 72a7a2b2469e ("kni: allow per-net instances")

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2015-11-19 10:16:41 +01:00
Simon Kagstrom
b0fb5155f8 kni: use utsrelease to determine Ubuntu kernel version
/proc/version_signature is the version for the host machine, but in
e.g., chroots, this does not necessarily match that DPDK is built
for. DPDK will then build for the wrong kernel version - that of the
server, and not that installed in the (build) chroot.

The patch uses utsrelease.h from the kernel sources instead and fakes
the upload version.

Tested on a server with Ubuntu 12.04, building in a chroot for Ubuntu
14.04.

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: Johan Faltstrom <johan.faltstrom@netinsight.net>
Acked-by: Helin Zhang <helin.zhang@intel.com>
2015-11-19 10:06:56 +01:00
Zhigang Lu
c07ce2d907 config: disable KNI module on tile
Commit 36080ff96b0e causes compiling error on tile, as tile
does not support KNI, so we disable the CONFIG_RTE_KNI_KMOD.

Fixes: 36080ff96b0e ("config: add KNI kmod option")

Reported-by: Guo Xin <gxin@ezchip.com>
Signed-off-by: Zhigang Lu <zlu@ezchip.com>
2015-11-19 10:01:17 +01:00
Jerin Jacob
4c02e453cc eal: introduce SMP memory barriers
This commit introduce rte_smp_mb(), rte_smp_wmb() and rte_smp_rmb(), in
order to enable memory barriers between lcores.
The patch does not provide any functional change for IA, the goal is to
have infrastructure for weakly ordered machines like ARM to work on DPDK.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-11-18 22:44:01 +01:00
Jerin Jacob
f4f4b99f2b mk: add thunderx machine target based on armv8-a
Created the new thunderx machine target to address difference
in "cache line size" and "-mcpu=thunderx" vs default armv8-a machine target

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2015-11-18 22:44:01 +01:00
Jerin Jacob
b3ce00e5fe mk: introduce ARMv8 architecture
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2015-11-18 22:44:01 +01:00
Jerin Jacob
34fa6c27c1 acl: add NEON optimization for ARMv8
The implementation uses NEON gcc intrinsic.
Verified with testacl and acl_autotest applications on arm64 architecture.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2015-11-18 22:44:01 +01:00
Jerin Jacob
97523f822b eal/arm: add CPU flags for ARMv8
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2015-11-18 22:44:01 +01:00