Olivier Matz [Mon, 12 Sep 2016 11:38:49 +0000 (13:38 +0200)]
app/test: decrease memory requirements for sched
The sched test consumes 35MB memory. When memory is too fragmented (with
2M hugepages), the test can fail.
To reduce this risk, decrease it to 4.5MB by modifying
n_pipes_per_subport and qsize.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Olivier Matz [Mon, 12 Sep 2016 11:38:08 +0000 (13:38 +0200)]
app/test: decrease memory requirements for hash
In hash autotest, the size of tables that should be successfully created
is 32K entries (256KB), except for the table called "different_name",
which is 1M entries (8MB). When memory is too fragmented (with 2M
hugepages), the test can fail.
To avoid allocation failures due to memory fragmentation, decrease the
size of the table to 32K.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Luca Boccassi [Wed, 14 Sep 2016 10:50:42 +0000 (11:50 +0100)]
mk: allow to override devel mode from environment
RTE_DEVEL_BUILD is set to := y in mk/rte.vars.mk, which makes it
impossible to override via an environment variable, and forces users
to pass it inline in the make call.
Use ?= instead to have it pick up the environment variable as well.
Signed-off-by: Luca Boccassi <lboccass@brocade.com>
Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Luca Boccassi [Tue, 30 Aug 2016 17:25:04 +0000 (18:25 +0100)]
mk: add missing preprocessor options
Some targets in mk/internal/rte.compile-pre.mk are calling CC or
HOSTCC without passing CPPFLAGS, EXTRA_CPPFLAGS or HOST_CPPFLAGS,
HOST_EXTRA_CPPFLAGS.
On Debian/Ubuntu builds this means that preprocessor flags set by the
dpkg-buildpackage environment, like hardening flags, are not
correctly passed to all objects builds.
Signed-off-by: Luca Boccassi <lboccass@brocade.com>
Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Thomas Monjalon [Thu, 22 Sep 2016 23:35:39 +0000 (01:35 +0200)]
mk: fix verbosity zero
Verbosity is considered enabled when $V is not empty.
It is a well spread shortcut in makefiles, see git grep '$(if $(*V'
So V=0 and V=1 are equivalent.
It is fixed by unsetting V when it is 0.
A side effect is to fix kernel module compilation verbosity
which is set to 0 when V is empty.
Reported-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Mon, 29 Aug 2016 09:11:32 +0000 (10:11 +0100)]
mk: fix install on FreeBSD
FreeBSD make install fails because of unsupported tar option:
tar: Option --warning=no-ignore-newer is not supported
Issue fixed by removing unsupported tar option.
Fixes:
6b62a72a70d0 ("mk: install a standard cutomizable tree")
Fixes:
e4552b9cc603 ("mk: install doc")
Reported-by: Daniel Verkamp <daniel.verkamp@intel.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Thu, 22 Sep 2016 14:48:54 +0000 (15:48 +0100)]
kni: fix large stack frame size
Compile error:
.../lib/librte_eal/linuxapp/kni/kni_net.c:
In function ‘kni_net_rx_lo_fifo’:
.../lib/librte_eal/linuxapp/kni/kni_net.c:331:1:
error: the frame size of 1056 bytes is larger than 1024 bytes
[-Werror=frame-larger-than=]
This compile error seen with some compiler / kernel combinations.
Moved some local variables to the kni_dev struct.
Fixes:
8451269e6d7b ("kni: remove continuous memory restriction")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Masoud Hasanifard [Sat, 17 Sep 2016 09:43:24 +0000 (14:13 +0430)]
hash: fix custom compare
Set cmp_jump_table_idx to KEY_CUSTOM in rte_hash_cmp_eq so that the custom
function we are setting in rte_hash_set_cmp_func properly works. The custom
function is only called by rte_hash_cmp_eq if cmp_jump_table_idx is set to
KEY_CUSTOM.
Fixes:
95da2f8e9c61 ("hash: customize compare function")
Signed-off-by: Masoud Hasanifard <masoudhasanifard@gmail.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Nikhil Jagtap [Wed, 21 Sep 2016 05:57:42 +0000 (00:57 -0500)]
meter: fix excess token bucket update in srtcm
As per srTCM RFC 2697, we should be updating the E bucket only after the
C bucket overflows. This patch fixes the current DPDK implementation,
where we are updating both the buckets simultaneously at the same rate
(CIR) which results in token accumulation rate of (2*CIR).
Signed-off-by: Nikhil Jagtap <nikhil.jagtap@gmail.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Ferruh Yigit [Thu, 25 Aug 2016 11:30:34 +0000 (12:30 +0100)]
kni: remove continuous memory restriction
Use mempool buf_addr and buf_physaddr fields for address translation.
Since each mbuf address calculated separately, the restriction of all
mbufs should come from a continuous memory restriction is no more valid.
mbuf related FIFO's content changed, rx_q and alloc_q now carries
physical address of mbufs. tx_q and free_q content not changed, they
still carries virtual address of mbufs.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Yangchao Zhou [Sun, 11 Sep 2016 09:59:23 +0000 (17:59 +0800)]
kni: fix error rollback kernel crash
Fixes:
9c61145ff6f9 ("kni: allow multiple threads")
Signed-off-by: Yangchao Zhou <zhouyates@gmail.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Fri, 2 Sep 2016 09:51:49 +0000 (10:51 +0100)]
kni: remove panic exits from library
This also helps to remove stack backtrace when kernel module is not
inserted.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Thu, 8 Sep 2016 18:32:09 +0000 (19:32 +0100)]
kni: fix build with kernel 4.8
Linux kernel v4.8 removes macro DEFINE_PCI_DEVICE_TABLE
Linux:
7e9321599011 ("treewide: remove references to the now unnecessary
DEFINE_PCI_DEVICE_TABLE")
Replaced macro with its value in kni ethtool drivers.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Ferruh Yigit [Fri, 16 Sep 2016 16:09:58 +0000 (17:09 +0100)]
kni: fix build with kernel < 3.0
Compile error:
CC [M] .../build/lib/librte_eal/linuxapp/kni/igb_main.o
.../build/lib/librte_eal/linuxapp/kni/igb_main.c:
In function ‘igb_check_swap_media’:
.../build/lib/librte_eal/linuxapp/kni/igb_main.c:1556:7:
error: variable ‘link’ set but not used [-Werror=unused-but-set-variable]
bool link;
^
With Linux kernel >= v3.0 this warning disabled:
Linux:
8417da6f2128 ("kbuild: Fix passing -Wno-* options to gcc 4.4+")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Pablo de Lara [Fri, 16 Sep 2016 21:01:09 +0000 (22:01 +0100)]
kni: support RHEL 7.3
Add support for RHEL 7.3, which uses kernel 3.10,
but backported features from newer kernels.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Thu, 15 Sep 2016 12:06:44 +0000 (13:06 +0100)]
kni: fix debug build
Fix build error with Linux kernel >= v4.7
Fix compile error because of Linux API change, 'trans_start' field
removed from 'struct net_device'.
Linux:
9b36627acecd ("net: remove dev->trans_start")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Weiliang Luo [Thu, 8 Sep 2016 15:29:57 +0000 (10:29 -0500)]
mempool: fix corruption due to invalid handler
When using rte_mempool_create(), the mempool handler is selected
depending on the flags given by the user:
- multi-consumer / multi-producer
- multi-consumer / single-producer
- single-consumer / multi-producer
- single-consumer / single-producer
The flags were not properly tested, resulting in the selection of sc/sp
handler if sc/mp or mc/sp was asked. This can lead to corruption or
crashes because the get/put operations are not atomic.
Fixes:
449c49b93a6b ("mempool: support handler operations")
Signed-off-by: Weiliang Luo <droidluo@gmail.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Robin Jarry [Wed, 10 Aug 2016 14:52:54 +0000 (16:52 +0200)]
mem: use more restrictive permissions on hugepages
There is no need for the page files to be readable (and executable) by
other users. This can be exploited by non-privileged users to access the
working memory of a DPDK app.
Open the files with 0600.
Signed-off-by: Robin Jarry <robin.jarry@6wind.com>
Pablo de Lara [Wed, 24 Aug 2016 22:24:54 +0000 (23:24 +0100)]
drivers: make driver names consistent
As discussed in the past release, driver names are modified
to be more consistent, and the future driver should follow
this new convention.
Driver names consist of:
"driver category"_"driver folder name"_"optional extra name".
For example:
- Crypto null driver -> "crypto_null"
- Network IXGBE VF driver -> "net_ixgbe_vf"
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Amine Kherbouche [Wed, 31 Aug 2016 08:34:26 +0000 (10:34 +0200)]
remove unused ring includes
This patch removes all unused <rte_ring.h> headers.
Signed-off-by: Amine Kherbouche <amine.kherbouche@6wind.com>
Pablo de Lara [Thu, 15 Sep 2016 23:25:32 +0000 (00:25 +0100)]
maintainers: claim responsability for crypto subtree
From 16.07, I will be the maintainer of the crypto subtree.
This will include:
- app/test/test_cryptodev*
- doc/guides/cryptodevs/
- drivers/crypto/
- examples/l2fwd-crypto/
- examples/ipsec-secgw/
- lib/librte_cryptodev/
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Ferruh Yigit [Fri, 26 Aug 2016 15:06:40 +0000 (16:06 +0100)]
scripts: disable optimization for ABI validation
abi-dumper giving following warning:
WARNING: incompatible build option detected: -O3
Although this patch won't fix warning, it is to ensure code compiled
with optimization disabled.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Thomas Monjalon [Fri, 9 Sep 2016 11:01:51 +0000 (13:01 +0200)]
scripts: reverse order of checked commits
The list of git commits to check was in the reversed order.
Also add a comment in the help of checkpatches.sh about list input.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Tested-by: David Marchand <david.marchand@6wind.com>
Thomas Monjalon [Mon, 29 Aug 2016 08:55:38 +0000 (10:55 +0200)]
scripts: remove useless checkpatch notes
Depending of the checkpatch version in use, more or less notes are
printed below the report.
Only 6 lines were stripped, resulting to such note being printed:
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
The stripping is now more reliable because based on a very stable pattern.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Mon, 29 Aug 2016 08:15:47 +0000 (10:15 +0200)]
scripts: hide double git reference check error
When checking a git reference which does not exist, a git error
with the long git-branch usage is printed:
% scripts/check-git-log.sh '-1
3780cbd'
error: malformed object name
2de9f8551ff9
usage: git branch ...
[a lot of lines]
Wrong 'Fixes' reference:
Fixes:
2de9f8551ff9 ("ethdev: fix documentation for queue start/stop")
The error from the script is sufficient so the git error can be hidden.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:11 +0000 (14:25 +0200)]
scripts: check compilation of exported header files
This script checks that header files in a given directory do not miss
dependencies when included on their own, do not conflict and accept being
compiled with the strictest possible flags.
It is too slow at the moment to be automatically executed by test-build.sh
and should be run voluntarily (like check-git-log.sh and friends) after
making changes to exported header files.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:10 +0000 (14:25 +0200)]
lib: hide static functions never defined
Arch-specific functions not defined for all architectures (missing on x86
in this case) and not used anywhere should not expose a prototype.
This commit prevents the following error:
error: `rte_mov48' declared `static' but never defined
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:09 +0000 (14:25 +0200)]
lib: remove named variadic macros in exported headers
Exported header files used by applications should allow the strictest
compiler flags. Language extensions used in many places must be explicitly
marked or removed to avoid warnings and compilation failures.
Since there is no way to force named variadic macros as extensions, use a
a standard __VA_ARGS__ with an extra dummy argument to format strings.
This commit prevents the following errors:
error: ISO C does not permit named variadic macros
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:08 +0000 (14:25 +0200)]
lib: work around forward reference to enum types
Exported header files used by applications should allow the strictest
compiler flags. Language extensions used in many places must be explicitly
marked or removed to avoid warnings and compilation failures.
This commit prevents the following errors:
error: ISO C forbids forward references to `enum' types
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:07 +0000 (14:25 +0200)]
lib: add missing include dependencies
Exported header files for use by applications should be self sufficient and
allow out of order inclusion. Moreover, they must include all the system
headers they need for types and macros.
This commit prevents the following errors:
error: `RTE_MAX_LCORE' undeclared here (not in a function)
error: `RTE_LPM_VALID_EXT_ENTRY_BITMASK' undeclared
(first use in this function)
error: #error "Unsupported cache line size"
error: `asm' undeclared (first use in this function)
error: implicit declaration of function `[...]'
error: unknown type name `[...]'
error: field `mac_addr' has incomplete type
error: `CHAR_BIT' undeclared here (not in a function)
error: `struct [...]' declared inside parameter list
error: unknown type name `uint8_t'
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:06 +0000 (14:25 +0200)]
lib: work around unnamed structs/unions
Exported header files used by applications should allow the strictest
compiler flags. Language extensions used in many places must be explicitly
marked to avoid warnings and compilation failures.
Unnamed structs/unions are allowed since C11, however many compiler
versions do not use this mode by default.
This commit prevents the following errors:
error: ISO C99 doesn't support unnamed structs/unions
error: struct has no named members
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:05 +0000 (14:25 +0200)]
lib: work around nonstandard bit-fields
Exported header files used by applications should allow the strictest
compiler flags. Language extensions used in many places must be explicitly
marked or removed to avoid warnings and compilation failures.
This commit prevents the following errors:
error: type of bit-field `[...]' is a GCC extension
Note: the standard does not require implementations to issue a diagnostic
message with these, and such errors do not occur with recent GCC or clang
versions. However, GCC 4.7 is still common and using the extension keyword
is easier than checking compiler version.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:04 +0000 (14:25 +0200)]
lib: use C99 syntax for zero-size arrays
Exported header files used by applications should allow the strictest
compiler flags. Language extensions used in many places must be explicitly
marked or removed to avoid warnings and compilation failures.
The extension keyword is used whenever the C99 syntax cannot do it.
This commit prevents the following errors:
error: ISO C forbids zero-size array `[...]'
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:03 +0000 (14:25 +0200)]
lib: work around large enum values
Exported header files used by applications should allow the strictest
compiler flags. Language extensions used in many places must be explicitly
marked or removed to avoid warnings and compilation failures.
This commit prevents the following errors:
error: ISO C restricts enumerator values to range of `int'
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Adrien Mazarguil [Thu, 8 Sep 2016 12:25:02 +0000 (14:25 +0200)]
lib: work around braced-groups within expressions
Exported header files used by applications should allow the strictest
compiler flags. Language extensions used in many places must be explicitly
marked or removed to avoid warnings and compilation failures.
This commit prevents the following errors:
error: ISO C forbids braced-groups within expressions
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Gowrishankar Muthukrishnan [Thu, 8 Sep 2016 16:48:10 +0000 (22:18 +0530)]
examples/ip_pipeline: fix lcore mapping for ppc64
This patch fixes ip_pipeline panic in app_init_core_map while preparing cpu
core map in powerpc with SMT off. cpu_core_map_compute_linux currently prepares
core mapping based on file existence in sysfs ie.
/sys/devices/system/cpu/cpu<LCORE_NUM>/topology/physical_package_id
/sys/devices/system/cpu/cpu<LCORE_NUM>/topology/core_id
These files do not exist for lcores which are offline for any reason (as in
powerpc, while SMT is off). In this situation, this function should further
continue preparing map for other online lcores instead of returning with -1
for a first unavailable lcore.
Also, in SMT=off scenario for powerpc, lcore ids can not be always indexed from
0 upto 'number of cores present' (/sys/devices/system/cpu/present). For eg, for
an online lcore 32, core_id returned in sysfs is 112 where online lcores are
10 (as in one configuration), hence sysfs lcore id can not be checked with
indexing lcore number before positioning lcore map array.
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Gowrishankar Muthukrishnan [Thu, 8 Sep 2016 16:48:06 +0000 (22:18 +0530)]
config: enable packet framework on ppc64le
This patch enables librte_port, librte_table, and librte_pipeline
in ppc64le.
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Gowrishankar Muthukrishnan [Thu, 8 Sep 2016 16:48:11 +0000 (22:18 +0530)]
table: fix verification on hash bucket header alignment
In powerpc systems, rte table hash structs rte_bucket_4_8, rte_bucket_4_16 and
rte_bucket_4_32 are not cache aligned and hence verification on same would fail.
Instead of checking alignment on cpu cacheline, it could equally be tested as
multiple of 64 bytes.
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Gowrishankar Muthukrishnan [Thu, 8 Sep 2016 16:48:07 +0000 (22:18 +0530)]
sched: enable on ppc64le
This patch enables librte_sched in ppc64le.
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Gowrishankar Muthukrishnan [Thu, 8 Sep 2016 16:48:05 +0000 (22:18 +0530)]
examples/l3fwd: add AltiVec for ppc64
This patch adds ppc64le port for em_mask_key function.
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Gowrishankar Muthukrishnan [Thu, 8 Sep 2016 16:48:04 +0000 (22:18 +0530)]
acl: add AltiVec for ppc64
This patch adds port for ACL library in ppc64le.
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Gowrishankar Muthukrishnan [Thu, 8 Sep 2016 16:48:03 +0000 (22:18 +0530)]
lpm: add AltiVec for ppc64
This patch adds ppc64le port for LPM library in DPDK.
Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Vincent Guo [Fri, 2 Sep 2016 10:23:13 +0000 (18:23 +0800)]
kni: fix module init/exit
Fix pernet calls when HAVE_SIMPLIFIED_PERNET_OPERATIONS is not set.
Fixes:
e6734d21b4e1 ("kni: fix build with kernel 2.6.32")
Signed-off-by: Vincent Guo <guopengfei160@163.com>
Acked-by Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Wed, 31 Aug 2016 14:49:11 +0000 (15:49 +0100)]
kni: support RHEL 6.8
Add support for RHEL6.8 which uses an old version of kernel with some
new features backported.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Wed, 31 Aug 2016 13:06:26 +0000 (14:06 +0100)]
kni: fix crash when removing interface
Removing KNI interface that has no PCI driver for ethtool support cause
kernel crash.
Fixes:
109febfe58f9 ("net/igb: move PCI device IDs from EAL")
Fixes:
221fba3b987c ("net/ixgbe: move PCI device IDs from EAL")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Thu, 4 Aug 2016 15:54:05 +0000 (16:54 +0100)]
kni: remove memzone lookup to get mbuf address
Originally mempool->mz is used to get address of the mbuf, but now
address get directly from mempool, so mempool->mz information is not
required.
Fixes:
d1d914ebbc25 ("mempool: allocate in several memory chunks by default")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Christian Ehrhardt [Mon, 1 Aug 2016 12:17:43 +0000 (14:17 +0200)]
kni: remove triple license information
License information is already in LICENSE.GPL.
Remove two extra copies and change referred filename in the files.
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Christian Ehrhardt [Wed, 3 Aug 2016 14:59:00 +0000 (16:59 +0200)]
scripts: convert devel config helper as simple file
Quoting the first line of the script: "#! /bin/echo must be loaded with ."
Given that we should drop the .sh file ending as well as the executable
flag - both are not needed to source the file.
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Christian Ehrhardt [Tue, 2 Aug 2016 06:40:00 +0000 (08:40 +0200)]
examples/ip_pipeline: fix Python interpreter
Due to regular lintian checks in Debian packaging it surfaced that these
two scripts had a space in their #! statement.
It is changed to an interpreter compatible with Python 2 and 3.
Fixes:
8673a3e8 ("examples/ip_pipeline: add config diagram generator")
Fixes:
fa667b46 ("examples/ip_pipeline: add core mappings script")
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Shreyansh Jain [Wed, 17 Aug 2016 13:06:43 +0000 (18:36 +0530)]
eal: fix a comment
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Mauricio Vasquez B [Sun, 14 Aug 2016 16:21:40 +0000 (18:21 +0200)]
doc: fix versioning example
The example only had as return type struct, it is actually
struct rte_acl_ctx *
Signed-off-by: Mauricio Vasquez B <mauricio.vasquez@polito.it>
Deirdre O'Connor [Mon, 22 Aug 2016 16:20:08 +0000 (17:20 +0100)]
doc: fix patchwork link
Fixes:
58abf6e77c6b ("doc: add contributors guide")
Reported-by: Jon Loeliger <jdl@netgate.com>
Signed-off-by: Deirdre O'Connor <deirdre.o.connor@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Ferruh Yigit [Fri, 5 Aug 2016 14:09:31 +0000 (15:09 +0100)]
eal: remove empty file for device IDs
All PCI device ids moved to drivers, it is safe to delete
rte_pci_dev_ids.h
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Fri, 5 Aug 2016 14:09:30 +0000 (15:09 +0100)]
net/igb: move PCI device IDs from EAL
PCI device ids moved from common header into igb driver itself.
KNI starts using pci_device_id from kni/ethtool/igb driver, this is only
for KNI ethtool support, KNI data path is not affected.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ferruh Yigit [Fri, 5 Aug 2016 14:09:29 +0000 (15:09 +0100)]
net/ixgbe: move PCI device IDs from EAL
PCI device ids moved from common header into ixgbe driver itself.
KNI starts using pci_device_id from kni/ethtool/ixgbe driver, this is
only for KNI ethtool support, KNI data path is not affected.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Thomas Monjalon [Tue, 23 Aug 2016 12:35:17 +0000 (14:35 +0200)]
doc: remove useless file listings
Lists of DPDK files are hard to maintain up to date and does not bring
much information.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
David Marchand [Fri, 29 Jul 2016 12:28:36 +0000 (14:28 +0200)]
ivshmem: remove library and its EAL integration
Following discussions on the mailing list [1] and since nobody stood up to
implement the necessary cleanups, here is the ivshmem integration removal.
There is not much to say about this patch, a lot of code is being removed.
The default configuration file for packet_ordering example is replaced with
the "native" x86 file.
The only tricky part is in eal_memory with the memseg index stuff.
More cleanups can be done after this but will come in subsequent patchsets.
[1]: http://dpdk.org/ml/archives/dev/2016-June/040844.html
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Pablo de Lara [Fri, 29 Jul 2016 18:20:49 +0000 (19:20 +0100)]
doc: fix references to old binding script
dpdk-nic-bind.py script has been renamed to dpdk-devbind.py,
but some references to the old script have remained.
This commit completes the renaming.
Fixes:
a5d7a3f77ddc ("unify tools naming")
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Jim Harris [Tue, 16 Aug 2016 22:46:46 +0000 (15:46 -0700)]
contigmem: zero all pages during mmap
On Linux, all huge pages are zeroed by the kernel before
first access by the DPDK application. But on FreeBSD,
the contigmem driver would only zero the contiguous
memory regions during initial driver load.
DPDK commit
b78c91751 eliminated the explicit memset()
operation for rte_zmalloc(), which was OK on Linux
because the kernel zeroes the pages during app start,
but this broke FreeBSD when restarting app.
So this patch explicitly zeroes the pages before they are mmap'd,
to ensure equivalent behavior to Linux.
Fixes:
b78c9175118f ("mem: do not zero out memory on zmalloc")
Reported-by: Daniel Verkamp <daniel.verkamp@intel.com>
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Tested-by: Daniel Verkamp <daniel.verkamp@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Aleksey Katargin [Mon, 1 Aug 2016 09:00:43 +0000 (14:00 +0500)]
table: fix symbol exports
Fixes:
8aa327214ceb ("table: hash")
Fixes:
68866e2417cc ("table: add 16-byte hash operations computed on lookup")
Signed-off-by: Aleksey Katargin <gureedo@gmail.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Thomas Monjalon [Mon, 1 Aug 2016 19:39:42 +0000 (21:39 +0200)]
version: 16.11-rc0
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Mon, 1 Aug 2016 12:54:06 +0000 (14:54 +0200)]
mbuf: remove deprecated internal function
The function __rte_mbuf_raw_alloc was reserved for internal use and
has been deprecated in favor of the public function rte_mbuf_raw_alloc.
It can be safely removed now.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Fri, 29 Jul 2016 12:55:28 +0000 (14:55 +0200)]
log: remove deprecated history dump
The log history feature was deprecated in 16.07.
The remaining empty functions are removed in 16.11.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: David Marchand <david.marchand@6wind.com>
Thomas Monjalon [Fri, 29 Jul 2016 13:34:29 +0000 (15:34 +0200)]
doc: postpone mempool ABI breakage
It was planned to remove some mempool functions which are deprecated
since 16.07.
As no other mempool ABI change is planned in 16.11, it is better
to postpone and group every mempool ABI changes in 17.02.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
John McNamara [Fri, 29 Jul 2016 11:59:14 +0000 (12:59 +0100)]
doc: generate NIC overview table from ini files
Convert the NIC feature table in the overview doc into a set of ini
files and add functions into the Sphinx conf.py file to auto-generate
them back into an RST table.
The reason for doing this is to make it easier for PMD maintainers to
update the feature matrix that makes up the table and to avoid
frequent and hard to resolve conflicts in doc/guides/nics/overview.rst.
A NIC/PMD feature matrix is now an ini file like the following:
$ head doc/guides/nics/nic_features/i40e.ini
;
; Features of the i40e network driver.
;
[Features]
Link status = Y
Link status event = Y
Rx interrupt = Y
Queue start/stop = Y
...
The output RST table matches the existing table with the column
headers sorted.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
John McNamara [Fri, 29 Jul 2016 11:23:27 +0000 (12:23 +0100)]
doc: add template release notes for 16.11
Add template release notes for DPDK 16.11 with inline
comments and explanations of the various sections.
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Thomas Monjalon [Thu, 28 Jul 2016 18:48:41 +0000 (20:48 +0200)]
version: 16.07.0
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Fan Zhang [Thu, 19 May 2016 14:18:35 +0000 (15:18 +0100)]
doc: announce API change in port library
The API changes are planned for rte_port_source_params and
rte_port_sink_params, which will be supported from release 16.11.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Yuanhan Liu [Fri, 15 Jul 2016 12:28:33 +0000 (20:28 +0800)]
doc: announce vhost-cuse removal
Vhost-cuse was invented before vhost-user exist. The both are actually
doing the same thing: a vhost-net implementation in user space. But they
are not exactly the same thing.
Firstly, vhost-cuse is harder for use; no one seems to care it, either.
Furthermore, since v2.1, a large majority of development effort has gone
to vhost-user. For example, we extended the vhost-user spec to add the
multiple queue support. We also added the vhost-user live migration at
v16.04 and the latest one, vhost-user reconnect that allows vhost app
restart without restarting the guest. Both of them are very important
features for product usage and none of them works for vhost-cuse.
You now see that the difference between vhost-user and vhost-cuse is
big (and will be bigger and bigger as time moves forward), that you
should never use vhost-cuse, that we should drop it completely.
The remove would also result to a much cleaner code base, allowing us
to do all kinds of extending easier.
So here to mark vhost-cuse as deprecated in this release and will be
removed in the next release (v16.11).
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Ciara Loftus <ciara.loftus@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Rich Lane <rich.lane@bigswitch.com>
Acked-by: Jan Viktorin <viktorin@rehivetech.com>
Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Thomas Monjalon [Wed, 20 Jul 2016 16:35:46 +0000 (18:35 +0200)]
doc: announce ivshmem support removal
There was a prior call with an explanation of what needs to be done:
http://dpdk.org/ml/archives/dev/2016-June/040844.html
- Qemu patch upstreamed
- IVSHMEM PCI device managed by a PCI driver
- No DPDK objects (ring/mempool) allocated by EAL
As nobody seems interested, it is time to remove this code which
makes EAL improvements harder.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: David Marchand <david.marchand@6wind.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Jan Viktorin <viktorin@rehivetech.com>
Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Olivier Matz [Wed, 20 Jul 2016 07:16:14 +0000 (09:16 +0200)]
doc: announce ABI change for mbuf structure
For 16.11, the mbuf structure will be modified implying ABI breakage.
Some discussions already took place here:
http://www.dpdk.org/dev/patchwork/patch/12878/
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: John Daley <johndale@cisco.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Tomasz Kulasek [Thu, 21 Jul 2016 15:24:19 +0000 (17:24 +0200)]
doc: announce ABI change for Tx preparation
This is an ABI deprecation notice for DPDK 16.11 in librte_ether about
changes in rte_eth_dev and rte_eth_desc_lim structures.
As discussed in that thread:
http://dpdk.org/ml/archives/dev/2015-September/023603.html
Different NIC models depending on HW offload requested might impose
different requirements on packets to be TX-ed in terms of:
- Max number of fragments per packet allowed
- Max number of fragments per TSO segments
- The way pseudo-header checksum should be pre-calculated
- L3/L4 header fields filling
- etc.
MOTIVATION:
-----------
1) Some work cannot (and didn't should) be done in rte_eth_tx_burst.
However, this work is sometimes required, and now, it's an
application issue.
2) Different hardware may have different requirements for TX offloads,
other subset can be supported and so on.
3) Some parameters (eg. number of segments in ixgbe driver) may hung
device. These parameters may be vary for different devices.
For example i40e HW allows 8 fragments per packet, but that is after
TSO segmentation. While ixgbe has a 38-fragment pre-TSO limit.
4) Fields in packet may require different initialization (like eg. will
require pseudo-header checksum precalculation, sometimes in a
different way depending on packet type, and so on). Now application
needs to care about it.
5) Using additional API (rte_eth_tx_prep) before rte_eth_tx_burst let to
prepare packet burst in acceptable form for specific device.
6) Some additional checks may be done in debug mode keeping tx_burst
implementation clean.
PROPOSAL:
---------
To help user to deal with all these varieties we propose to:
1. Introduce rte_eth_tx_prep() function to do necessary preparations of
packet burst to be safely transmitted on device for desired HW
offloads (set/reset checksum field according to the hardware
requirements) and check HW constraints (number of segments per
packet, etc).
While the limitations and requirements may differ for devices, it
requires to extend rte_eth_dev structure with new function pointer
"tx_pkt_prep" which can be implemented in the driver to prepare and
verify packets, in devices specific way, before burst, what should to
prevent application to send malformed packets.
2. Also new fields will be introduced in rte_eth_desc_lim:
nb_seg_max and nb_mtu_seg_max, providing an information about max
segments in TSO and non-TSO packets acceptable by device.
This information is useful for application to not create/limit
malicious packet.
APPLICATION (CASE OF USE):
--------------------------
1) Application should to initialize burst of packets to send, set
required tx offload flags and required fields, like l2_len, l3_len,
l4_len, and tso_segsz
2) Application passes burst to the rte_eth_tx_prep to check conditions
required to send packets through the NIC.
3) The result of rte_eth_tx_prep can be used to send valid packets
and/or restore invalid if function fails.
eg.
for (i = 0; i < nb_pkts; i++) {
/* initialize or process packet */
bufs[i]->tso_segsz = 800;
bufs[i]->ol_flags = PKT_TX_TCP_SEG | PKT_TX_IPV4
| PKT_TX_IP_CKSUM;
bufs[i]->l2_len = sizeof(struct ether_hdr);
bufs[i]->l3_len = sizeof(struct ipv4_hdr);
bufs[i]->l4_len = sizeof(struct tcp_hdr);
}
/* Prepare burst of TX packets */
nb_prep = rte_eth_tx_prep(port, 0, bufs, nb_pkts);
if (nb_prep < nb_pkts) {
printf("tx_prep failed\n");
/* drop or restore invalid packets */
}
/* Send burst of TX packets */
nb_tx = rte_eth_tx_burst(port, 0, bufs, nb_prep);
/* Free any unsent packets. */
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Thomas Monjalon [Tue, 26 Jul 2016 16:22:21 +0000 (18:22 +0200)]
doc: announce renaming of ethdev library
The right name of ethdev should be dpdk_netdev. However:
1/ We are using rte_ prefix in the code and library names.
2/ The API uses rte_ethdev
That's why 16.11 will just have the rte_ prefix prepended to
the library filename as every other libraries.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Jan Viktorin <viktorin@rehivetech.com>
Acked-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Pablo de Lara [Sat, 9 Jul 2016 16:56:34 +0000 (17:56 +0100)]
doc: announce driver name changes
Driver names for all the supported devices in DPDK do not have
a naming convention. Some are using a prefix, some are not
and some have long names. Driver names are used when creating
virtual devices, so it is useful to have consistency in the names.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Rahul Lakkireddy [Thu, 28 Jul 2016 10:15:28 +0000 (15:45 +0530)]
doc: remove deprecation notice related to new flow types
Remove deprecation notice pertaining to introduction of new flow
types in favor of a more generic filtering infrastructure proposal.
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com>
Yulong Pei [Thu, 28 Jul 2016 06:18:32 +0000 (14:18 +0800)]
doc: add tested hardware and systems for 16.07
Add new section on tested platforms and nics and OSes to the release notes.
Signed-off-by: Yulong Pei <yulong.pei@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
John McNamara [Wed, 27 Jul 2016 13:26:55 +0000 (14:26 +0100)]
doc: improve wording of new features in 16.07
Improve the wording of some text in the "new features" section of
the release notes.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: John McNamara <john.mcnamara@intel.com>
Olga Shern [Wed, 27 Jul 2016 09:27:26 +0000 (12:27 +0300)]
doc: update guide and release notes for mlx5
Signed-off-by: Olga Shern <olgas@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Shreyansh Jain [Tue, 26 Jul 2016 13:31:41 +0000 (19:01 +0530)]
doc: fix path to testpmd app
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Jeff Guo [Wed, 27 Jul 2016 02:56:34 +0000 (22:56 -0400)]
doc: add known issue for promiscuous mode in i40e VF
When use i40e linux kernel driver as host driver and DPDK handler the i40e
VF, the promiscuous mode doesn't work in i40e VF. It is not supported by
DPDK i40e VF driver right now.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Dumitru Ceara [Tue, 26 Jul 2016 10:46:09 +0000 (12:46 +0200)]
net/i40e: fix metadata in first mbuf of scattered Rx
The driver is incorrectly setting the RSS field in the last mbuf in
the packet chain instead of the first. Moreover, the last mbuf might
have already been freed if it only contained the Ethernet CRC.
Also, fix the call to i40e_rxd_build_fdir to store the fdir flags in
the first mbuf of the chain instead of the last.
Fixes:
4861cde46116 ("i40e: new poll mode driver")
Fixes:
5a21d9715f81 ("i40e: report flow director matching")
Signed-off-by: Dumitru Ceara <dumitru.ceara@gmail.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Sankar Chokkalingam [Wed, 27 Jul 2016 09:35:30 +0000 (02:35 -0700)]
examples/ip_pipeline: fix flow classification config
This configuration is example configuration for flow classification.
This fix changes the offset and mask value to compute the hash correctly.
This fix does not involve code change and do not impact compilation,
build and performance.
Fixes:
93771a569daa ("examples/ip_pipeline: rework flow classification CLI")
Signed-off-by: Sankar Chokkalingam <sankarx.chokkalingam@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Nikhil Rao [Tue, 26 Jul 2016 14:12:40 +0000 (19:42 +0530)]
ethdev: fix documentation for queue start/stop
Fix documentation for rte_eth_dev_tx/rx_queue_start/stop() functions
Fixes:
2de9f8551ff9 ("ethdev: fix documentation for queue start/stop")
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Wei Dai [Wed, 27 Jul 2016 11:25:56 +0000 (19:25 +0800)]
eal: fix tail blank check in --lcores argument
the tail blank after a group of lcore or cpu set
will make check of its end character fail.
for example: --lcores '(0-3)@(0-3) ,(4-5)@(4-5)',
the next character after cpu set (0-3) is not ','
or '\0', which fail the check in eal_parse_lcores( ).
Fixes:
53e54bf81700 ("eal: new option --lcores for cpu assignment")
Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Wei Dai [Wed, 27 Jul 2016 11:23:41 +0000 (19:23 +0800)]
eal: fix parsing of option --lcores
The '-' in lcore set overrides cpu set of following
lcore set in the argument of EAL option --lcores.
for example --locres '0-2,(3-5)@(3,4),6@(5,6),7@(5-7)',
0-2 make lflags=1 which indeed suppress following
cpu set (3,4), (5,6) and (5-7) after @ .
Fixes:
53e54bf81700 ("eal: new option --lcores for cpu assignment")
Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Wei Dai [Wed, 27 Jul 2016 11:22:31 +0000 (19:22 +0800)]
eal: remove redundant code to parse --lcores
local variable i is not referred by other codes in
the function eal_parse_lcores( ), so it can be removed.
Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tetsuya Mukawa [Thu, 28 Jul 2016 05:53:59 +0000 (14:53 +0900)]
maintainers: update email address
Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
Thomas Monjalon [Mon, 25 Jul 2016 16:29:37 +0000 (18:29 +0200)]
version: 16.07-rc5
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Thomas Monjalon [Mon, 25 Jul 2016 19:32:03 +0000 (21:32 +0200)]
mempool: fix unsafe removal from list by callback
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>
Thomas Monjalon [Mon, 25 Jul 2016 12:56:37 +0000 (14:56 +0200)]
maintainers: add an entry for the stable branches
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>
Jingjing Wu [Mon, 25 Jul 2016 05:36:09 +0000 (13:36 +0800)]
net/i40e: fix VSI removing when releasing
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>
Maxime Coquelin [Mon, 25 Jul 2016 14:09:58 +0000 (16:09 +0200)]
vhost: fix off-by-one error on descriptor number check
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>
Hiroyuki Mikita [Sun, 17 Jul 2016 18:08:00 +0000 (03:08 +0900)]
timer: fix corruption with reset
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>
Hiroyuki Mikita [Sun, 17 Jul 2016 17:35:50 +0000 (02:35 +0900)]
timer: remove unnecessary list insertion
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>
Hiroyuki Mikita [Sun, 17 Jul 2016 14:35:39 +0000 (23:35 +0900)]
timer: fix pending-list manipulation
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>
Jerin Jacob [Sun, 24 Jul 2016 17:07:40 +0000 (22:37 +0530)]
ring: fix single consumer dequeue performance
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>
Thomas Monjalon [Mon, 25 Jul 2016 10:10:55 +0000 (12:10 +0200)]
mk: fix link with glibc < 2.17
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>
Ferruh Yigit [Mon, 25 Jul 2016 12:55:49 +0000 (13:55 +0100)]
mk: fix build with clang < 3.5
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>
Ferruh Yigit [Mon, 25 Jul 2016 12:55:48 +0000 (13:55 +0100)]
mk: fix clang version query
-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>
Thomas Monjalon [Fri, 22 Jul 2016 20:41:56 +0000 (22:41 +0200)]
version: 16.07-rc4
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>