Commit graph

216 commits

Author SHA1 Message Date
Thomas Monjalon 6793a1f771 devtools: fix checkpatch for filename with space
If the patch filename or the temporary file path have a space
in their name, the script checkpatches.sh does not work.
The variables for the filenames must be enclosed in quotes
in order to preserve spaces.

Fixes: 4bec48184e ("devtools: add checks for ABI symbol addition")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2018-07-20 22:53:17 +02:00
Thomas Monjalon 084ca57284 devtools: fix symbol check for filename with space
If the patch filename or the temporary file path have a space
in their name, the script check-symbol-change.sh does not work.
The variables for the filenames must be enclosed in quotes
in order to preserve spaces.

Fixes: 4bec48184e ("devtools: add checks for ABI symbol addition")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2018-07-20 11:37:26 +02:00
Neil Horman 4bec48184e devtools: add checks for ABI symbol addition
Recently, some additional patches were added to allow for programmatic
marking of C symbols as experimental.  The addition of these markers is
dependent on the manual addition of exported symbols to the EXPERIMENTAL
section of the corresponding libraries version map file.  The consensus
on review is that, in addition to mandating the addition of symbols to
the EXPERIMENTAL version in the map, we need a mechanism to enforce our
documented process of mandating that addition when they are introduced.
To that end, I am proposing this change.  It is an addition to the
checkpatches script, which scan incoming patches for additions and
removals of symbols to the map file, and warns the user appropriately.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
2018-07-16 01:09:58 +02:00
Gavin Hu 44e830c4e9 devtools: expand meson cross compiling test coverage
The default test script covers only default host cc compiler, either gcc or
clang, the fix is to increase the coverage by adding one more to cover
clang and the others for gcc.

Fixes: a55277a788 ("devtools: add test script for meson builds")
Cc: stable@dpdk.org

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-07-11 21:14:21 +02:00
Gavin Hu c0d022070f devtools: fix ninja command in build test
On some linux distributions, eg: CentOS, the ninja executable has a
different name: ninja-build, this patch is to check and adapt to it
accordingly.

./devtools/test-meson-builds.sh: line 24: ninja: command not found

Fixes: a55277a788 ("devtools: add test script for meson builds")
Cc: stable@dpdk.org

Signed-off-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-07-11 21:14:21 +02:00
Bruce Richardson 03843d4df3 devtools: fix ARM builds test with meson
For cross-builds the CC environmental variable only applies for compiling
native binaries i.e. pmdinfogen, so setting it to a cross-build compiler
will only cause problems. Leave the value unset in the script to use the
platform-default compiler.

Fixes: a55277a788 ("devtools: add test script for meson builds")
Cc: stable@dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
2018-06-14 17:46:02 +02:00
Stephen Hemminger 22781f640e devtools: ignore SPDX warning of checkpatch
Since DPDK developers have decided to use a different tag format
than the kernel developers, ignore warnings about SPDX tags.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
2018-06-08 21:39:15 +02:00
Thomas Monjalon f8ad40dc99 devtools: check orphan symbols in map files
The script check-symbol-maps.sh finds the symbols exported
in a map file but not referenced in the codebase.

Suggested-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-05-29 17:43:33 +02:00
Bruce Richardson a55277a788 devtools: add test script for meson builds
To simplify testing with the meson and ninja builds, we can add a script
to set up and do multiple builds. Currently this script sets up:

* clang and gcc builds
* builds using static and shared linkage for binaries (libs are always
   built as both)
* a build using the lowest instruction-set level for x86 (-march=nehalem)
* cross-builds for each cross-file listed in config/arm

Each build is configured in a directory ending in *-build, and then for
the build stage, we just call ninja in each directory in turn. [i.e. we
assume every directory starting with "build-" is a meson build, which is
probably an ok assumption].

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2018-05-29 17:36:59 +02:00
Olivier Matz f83a3d3fa8 use SPDX tag for 6WIND copyrighted files
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
2018-05-25 10:47:06 +02:00
Thomas Monjalon ea9382dc2b use SPDX license tag in Mellanox copyrighted files
Some files were left with full license and wrong copyright format.
They are switched to this format:
	SPDX-License-Identifier: BSD-3-Clause
	Copyright 2017 Mellanox Technologies, Ltd

Fixes: 5feecc57d9 ("align SPDX Mellanox copyrights")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2018-05-25 10:33:33 +02:00
Juhamatti Kuusisaari 515e92ebb6 devtools: check Linux script path if directory
Handle properly a case where the path (DPDK_PATCH_PATH
or DPDK_MAINTAINER_PATH) is set to point to a directory.

Signed-off-by: Juhamatti Kuusisaari <juhamatti.kuusisaari@coriant.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-05-23 00:33:35 +02:00
Ferruh Yigit 5a141fb494 devtools: add git log checks for more acronyms
checks added for vDPA, MSS, UDP, EEPROM

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-05-23 00:33:35 +02:00
Andy Green 5831a2198a devtools: provide more generic grep in git check
On Fedora 28, every patch is faulted for
"Wrong headline uppercase", because [A-Z] is not
always case sensitive.

Change to use [[:upper:]]

Signed-off-by: Andy Green <andy@warmcat.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-05-14 23:32:23 +02:00
Lee Daly 3c32e89f68 compress/isal: add skeleton ISA-L compression PMD
Adding basic skeleton of the ISA-L compression driver.
No compression functionality, but lays the foundation for
operations in the rest of the patchset.

The ISA-L compression driver utilizes Intel's ISA-L compression
library and compressdev API.

Signed-off-by: Lee Daly <lee.daly@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-05-10 17:46:20 +01:00
Tomasz Duszynski e95faac151 crypto/mrvl: rename PMD to mvsam
Picking a company stock ticker for a PMD name might not be a best approach
in a long run since name is too generic.

This patch addresses that and renames mrvl to mvsam.

Signed-off-by: Natalie Samsonov <nsamsono@marvell.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2018-05-10 17:46:19 +01:00
Ravi Kumar 0054d84f6e crypto/ccp: add AMD ccp skeleton PMD
Added DPDK crypto PMD for AMD Cryptographic Co-Processors.
This patch adds a basic skeleton for PMD.

Signed-off-by: Ravi Kumar <ravi1.kumar@amd.com>
2018-04-23 18:19:43 +01:00
Marko Kovacevic dad3736481 crypto/aesni_gcm: support IPsec Multi-buffer lib v0.49
Adds support for the v0.49 of the IPsec Multi-buffer lib,
which now gets compiled and installed as a shared object.
Therefore, there is no need to pass the AESNI_MULTI_BUFFER_LIB_PATH

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-04-23 16:57:55 +01:00
Marko Kovacevic 2a1e2da1bb crypto/aesni_mb: support IPsec Multi-buffer lib v0.49
Adds support for the v0.49 of the IPsec Multi-buffer lib,
which now gets compiled and installed as a shared object.
Therefore, there is no need to pass the AESNI_MULTI_BUFFER_LIB_PATH

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-04-23 16:57:55 +01:00
Thomas Monjalon e70e26861e net/mvpp2: fix build
The iterator RTE_ETH_FOREACH_DEV (added in below commit)
requires to enable experimental APIs.

Fixing also the config option rename in the build test.

Fixes: 8728ccf376 ("fix ethdev ports enumeration")
Fixes: fe93968722 ("net/mrvl: rename PMD as mvpp2")

Reported-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-20 01:16:46 +02:00
Bruce Richardson 5364de644a eal: support strlcpy function
The strncpy function is error prone for doing "safe" string copies, so
we generally try to use "snprintf" instead in the code. The function
"strlcpy" is a better alternative, since it better conveys the
intention of the programmer, and doesn't suffer from the non-null
terminating behaviour of it's n'ed brethern.

The downside of this function is that it is not available by default
on linux, though standard in the BSD's. It is available on most
distros by installing "libbsd" package.

This patch therefore provides the following in rte_string_fns.h to ensure
that strlcpy is available there:
* for BSD, include string.h as normal
* if RTE_USE_LIBBSD is set, include <bsd/string.h>
* if not set, fallback to snprintf for strlcpy

Using make build system, the RTE_USE_LIBBSD is a hard-coded value to "n",
but when using meson, it's automatically set based on what is available
on the platform.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
2018-04-04 17:33:08 +02:00
Pablo de Lara 79bf1844cd devtools: do not create kernel dir
get-maintainer script requires the creation of
some folders, including "kernel". Since now this folder
exists in DPDK folder, it is not required to create it.

Fixes: acaa9ee991 ("move kernel modules directories")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-04-04 13:43:33 +02:00
Neil Horman 7317af97f9 compat: relicense some files
Received a note the other day from the Linux Foundation governance board
for DPDK indicating that several files I have copyright on need to be
relicensed to be compliant with the DPDK licensing guidelines.  I have
some concerns with some parts of the request, but am not opposed to
other parts.  So, for those pieces that we are in consensus on, I'm
proposing that we change their license from BSD 2 clause to 3 clause.
I'm also updating the files to use the SPDX licensing scheme

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-02-06 23:13:47 +01:00
Amr Mokhtar b8cfe2c9ae bb/turbo_sw: add software turbo driver
- bbdev 'turbo_sw' is the software accelerated version of 3GPP L1
 Turbo coding operation using the optimized Intel FlexRAN SDK libraries.
- 'turbo_sw' pmd is disabled by default

Signed-off-by: Amr Mokhtar <amr.mokhtar@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-01-19 01:44:25 +01:00
Pavan Nikhilesh 43e9f17ce7 log: remove log level config option
Remove RTE_LOG_LEVEL config option, use existing RTE_LOG_DP_LEVEL config
option for controlling datapath log level.
RTE_LOG_LEVEL is no longer needed as dynamic logging can be used to
control global and module specific log levels.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
2018-01-17 14:21:46 +01:00
Adrien Mazarguil 8cf791231e devtools: update check-includes exceptions
rte_eal_interrupts.h is an internal file not supposed to be included
directly by applications.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
2018-01-17 00:24:45 +01:00
Tomasz Duszynski 05dabebf5c devtools: add mrvl net PMD to test-build
Add MRVL NET PMD to test build tool.

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Acked-by: Jianbo Liu <jianbo.liu@arm.com>
2018-01-16 18:47:49 +01:00
Jerin Jacob df6ff2030a tools: use SPDX tag for Cavium copyright files
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-09 16:19:01 +01:00
Thomas Monjalon b4d5af2418 devtools: ignore checkpatch warning for maintainers file
The script checkpatch.pl from Linux is enforcing a tab
in the MAINTAINERS file (Linux commit 628f91a28649).
It can be ignored in our wrapper checkpatches.sh.

Suggested-by: Remy Horton <remy.horton@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Remy Horton <remy.horton@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
2018-01-09 01:43:25 +01:00
Bruce Richardson 9d7c01f810 tools: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for
scripting files with only an Intel copyright on them.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-04 22:41:39 +01:00
Ferruh Yigit cb9c546f90 devtools: add git log checks for SCTP and IOVA
Acronyms must be uppercase.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-01-04 18:33:34 +01:00
Olivier Matz 2ba9a32c96 devtools: enhance error message in get maintainer script
When the DPDK_GETMAINTAINER_PATH variable was not set, the error
message from get-maintainer.sh was quite cheap:

	$ devtools/get-maintainer.sh --help
	usage: get-maintainer.sh <patch>
	Cannot execute DPDK_GETMAINTAINER_PATH

Add a more detailed explanation about this variable in the help.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
2018-01-04 18:15:35 +01:00
Ferruh Yigit 7a62910653 devtools: add script to get maintainers from patch
This is a wrapper to Linux kernel get_maintainer.pl file and only
supports parsing MAINTAINERS file (no git fallback etc..)

Requires DPDK_GETMAINTAINER_PATH devel config option set, please check
devtools/load-devel-config.

DPDK_GETMAINTAINER_PATH should be full path to the get_maintainer.pl
script, like:
DPDK_GETMAINTAINER_PATH=~/linux/scripts/get_maintainer.pl

Can be used individually:
./devtools/get-maintainer.sh <my.patch>

Or via git send-email, to add maintainers automatically:
git send-email --to-cmd ./devtools/get-maintainer.sh \
--cc dev@dpdk.org HEAD -4

Currently there is an ugly workaround to be able to use Linux script out
of the kernel tree, later better method can replace it.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-11-08 00:38:46 +01:00
Olivier Matz c4a5fe3bf8 devtools: rework ABI checker script
The initial version of the script had some limitations:
- cannot work on a non-clean workspace
- environment variables are not documented
- no compilation log in case of failure
- return success even it abi is incompatible

This patch addresses these issues and rework the code.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2017-11-08 00:23:22 +01:00
Thomas Monjalon f774eaf817 devtools: rename build dependency of mlx drivers
The Mellanox drivers were requiring MOFED at compilation time.
It is now possible to use the upstream rdma-core package.
So the dependency option is renamed in the build tool.

Fixes: 43e9d9794c ("net/mlx5: support upstream rdma-core")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2017-11-07 23:46:24 +01:00
Tomasz Duszynski 8a61c83af2 crypto/mrvl: add mrvl crypto driver
Add support for the Marvell Security Crypto Accelerator EIP197.
Driver is based on external, publicly available, Marvell MUSDK
library that provides access to the hardware with minimum overhead
and high performance.

Driver comes with support for the following features:

* Symmetric crypto
* Sym operation chaining
* AES CBC (128)
* AES CBC (192)
* AES CBC (256)
* AES CTR (128)
* AES CTR (192)
* AES CTR (256)
* 3DES CBC
* 3DES CTR
* MD5
* MD5 HMAC
* SHA1
* SHA1 HMAC
* SHA256
* SHA256 HMAC
* SHA384
* SHA384 HMAC
* SHA512
* SHA512 HMAC
* AES GCM (128)

Driver was engineered cooperatively by Semihalf and Marvell teams.

Semihalf:
Jacek Siuda <jck@semihalf.com>
Tomasz Duszynski <tdu@semihalf.com>

Marvell:
Dmitri Epshtein <dima@marvell.com>
Natalie Samsonov <nsamsono@marvell.com>

Signed-off-by: Jacek Siuda <jck@semihalf.com>
Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
2017-10-12 15:22:39 +01:00
Thomas Monjalon 5d65895d9c devtools: fix version search with git < 2.7.0
The script git-log-fixes.sh (used in check-git-log.sh) looks
for git tags to find the version where a bug is introduced.

In DPDK 17.08, the script has been fixed to ignore tags from
non current branch.
It was using the option --merged which was introduced in git 2.7.0.

As git 2.7.0 is not so old, a fallback is provided for some years.

The fallback is replacing the tag --merged option by a branch filter.
If the tag is found in the branch, the branch name is replaced
by the tag.

This script could be improved to allow using another reference branch,
instead of hard coding HEAD branch (the current one).

Fixes: 26857dabb3 ("devtools: ignore non merged tags for backport")
Cc: stable@dpdk.org

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
2017-09-22 15:42:24 +02:00
Thomas Monjalon 7605d9b8f7 devtools: speed up maintainers check
There is a huge speed improvement when forcing Unicode to be disabled
in this script.
In my test, it is improved from 13s to 6s.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-08-03 12:40:35 +02:00
Thomas Monjalon f3cb39e882 devtools: add script to find duplicated includes
Based on Stephen's idea (originally implemented in a Perl script),
this is a shell script to find duplicated includes in a file.
It looks for all the .c and .h files of the git repository.

It is fast enough because automatically well parallelized.

Suggested-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Keith Wiles <keith.wiles@intel.com>
2017-08-03 12:05:09 +02:00
Thomas Monjalon 26857dabb3 devtools: ignore non merged tags for backport
When checking if a buggy commit was introduced in an old version,
the script compares last tag containing the bug and current version.
The non merged tags from non related branches must be ignored.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
2017-08-03 11:57:14 +02:00
Jerin Jacob 3abcd29f2d update Cavium Inc copyright headers
Replace the incorrect reference to "Cavium Networks", "Cavium Ltd"
company name with correct the "Cavium, Inc" company name in
copyright headers.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-07-08 17:43:49 +02:00
Pablo de Lara 6f16aab09a crypto/aesni_gcm: migrate to Multi-buffer library
Since Intel Multi Buffer library for IPSec has been updated to
support Scatter Gather List, the AESNI GCM PMD can link
to this library, instead of the ISA-L library.

This move eases the maintenance of the driver, as it will
use the same library as the AESNI MB PMD.
It also adds support for 192-bit keys.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2017-07-06 22:26:50 +02:00
Ilya Maximets 1b72605d24 mem: balanced allocation of hugepages
Currently EAL allocates hugepages one by one not paying attention
from which NUMA node allocation was done.

Such behaviour leads to allocation failure if number of available
hugepages for application limited by cgroups or hugetlbfs and
memory requested not only from the first socket.

Example:
	# 90 x 1GB hugepages availavle in a system

	cgcreate -g hugetlb:/test
	# Limit to 32GB of hugepages
	cgset -r hugetlb.1GB.limit_in_bytes=34359738368 test
	# Request 4GB from each of 2 sockets
	cgexec -g hugetlb:test testpmd --socket-mem=4096,4096 ...

	EAL: SIGBUS: Cannot mmap more hugepages of size 1024 MB
	EAL: 32 not 90 hugepages of size 1024 MB allocated
	EAL: Not enough memory available on socket 1!
	     Requested: 4096MB, available: 0MB
	PANIC in rte_eal_init():
	Cannot init memory

	This happens beacause all allocated pages are
	on socket 0.

Fix this issue by setting mempolicy MPOL_PREFERRED for each hugepage
to one of requested nodes using following schema:

	1) Allocate essential hugepages:
		1.1) Allocate as many hugepages from numa N to
		     only fit requested memory for this numa.
		1.2) repeat 1.1 for all numa nodes.
	2) Try to map all remaining free hugepages in a round-robin
	   fashion.
	3) Sort pages and choose the most suitable.

In this case all essential memory will be allocated and all remaining
pages will be fairly distributed between all requested nodes.

New config option RTE_EAL_NUMA_AWARE_HUGEPAGES introduced and
enabled by default for linuxapp except armv7 and dpaa2.
Enabling of this option adds libnuma as a dependency for EAL.

Fixes: 77988fc08d ("mem: fix allocating all free hugepages")

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-06-30 17:54:32 +02:00
Jerin Jacob 98a7ea332b fix typos using codespell utility
Fixing typos across dpdk source code using codespell utility.
Skipped the ethdev driver's base code fixes to keep the base
code intact.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2017-06-14 23:54:13 +02:00
Adrien Mazarguil f8904d5636 vhost: fix header for strict compilation flags
Exported headers must allow compilation with the strictest flags. This
commit addresses the following errors:

 In file included from /tmp/check-includes.sh.20132.c:1:0:
 build/include/rte_vhost.h:73:30: error: ISO C forbids zero-size array
    'regions' [-Werror=pedantic]
 [...]

Also:

- Add C++ awareness to rte_vhost.h for consistency with rte_eth_vhost.h.
- Move Linux includes into C++ block to prevent linking issues with
  exported symbols.
- Update check-includes.sh following the removal of rte_virtio_net.h.

Finally, update check-includes.sh to ignore rte_vhost.h and rte_eth_vhost.h
from now on since the Linux headers they depend on are not clean enough:

 In file included from /usr/include/linux/vhost.h:17:0,
                  from build/include/rte_vhost.h:43,
                  from build/include/rte_eth_vhost.h:44,
                  from /tmp/check-includes.sh.20132.c:1:
 /usr/include/linux/virtio_ring.h: In function 'vring_init':
 /usr/include/linux/virtio_ring.h:146:16: error: pointer of type 'void *'
    used in arithmetic [-Werror=pointer-arith]
 [...]
 In file included from build/include/rte_vhost.h:43:0,
                  from build/include/rte_eth_vhost.h:44,
                  from /tmp/check-includes.sh.20132.c:1:
 /usr/include/linux/vhost.h: At top level:
 /usr/include/linux/vhost.h:73:3: error: ISO C99 doesn't support unnamed
    structs/unions [-Werror=pedantic]
 [...]

Fixes: eb32247457 ("vhost: export guest memory regions")
Fixes: a798beb47c ("vhost: rename header file")

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2017-05-01 00:13:15 +02:00
Jerin Jacob aafaea3d3b devtools: add tags and cscope index generation
This script generates cscope, gtags, and tags index files based on
EAL environment(architecture and OS(linux/bsd)).

Selection of the architecture and OS environment is based on dpdk
configuration target(T=).If EAL environment(T=) is not specified,
the script generates tag files based on available source code.

Usage: make tags|cscope|gtags|etags [T=config]

example usage:
make cscope
make tags T=x86_64-native-linuxapp-gcc
make gtags T=arm64-armv8a-linuxapp-gcc

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Thomas Monjalon <thomas@monjalon.net>
2017-04-30 12:57:04 +02:00
Yuanhan Liu f051679dc5 devtools: list stable commits without fixline
Some commits for stable releases (with Cc stable tag) may not have the
fixline.
Thus, this patch makes git-log-fixes.sh script also list those stable
commits do not have fixline.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2017-04-28 12:05:03 +02:00
Ferruh Yigit eba33e87ad devtools: add git log checks for acronyms
CRC, LSC and VSI must be uppercased.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-04-25 11:58:07 +02:00
Bruce Richardson 99a7213b14 devtools: add test apps to build script
Since the test app is no longer being build by default as part of a build,
we need to update the testbuild script to take account of this.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2017-04-06 21:44:06 +02:00
Bruce Richardson a894e13ede examples: enable build of performance-thread
The performance-thread example was not build by default in the make
examples build target. It will compile ok for x86_64 targets so add it to
the examples makefile list for that platform.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2017-04-06 21:37:19 +02:00
Yuanhan Liu 87efbcc7ab devtools: make commits with stable tag outstanding
So that, as a stable maintainer while picking commits to a stable release,
I could pay less attention to those have it and pay more attention to those
don't have it.

Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2017-04-06 21:26:16 +02:00
Bruce Richardson a3e34aa85d devtools: make log checking script BSD-compatible
The -e flag to readlink doesn't exist on FreeBSD so change it to -f instead
which is present on both BSD and Linux. Error reported is:

  readlink: illegal option -- e
  usage: readlink [-fn] [file ...]
  usage: dirname string [...]
  ./devtools/check-git-log.sh: /git-log-fixes.sh: not found

Fixes: 814c8822ef ("scripts: check cc stable mailing list in commit")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2017-03-27 23:45:56 +02:00
Olivier Matz feb9f680cd mk: optimize directory dependencies
Before this patch, the management of dependencies between directories
had several issues:

- the generation of .depdirs, done at configuration is slow: it can take
  more than one minute on some slow targets (usually ~10s on a standard
  PC without -j).

- for instance, it is possible to express a dependency like:
  - app/foo depends on lib/librte_foo
  - and lib/librte_foo depends on app/bar
  But this won't work because the directories are traversed with a
  depth-first algorithm, so we have to choose between doing 'app' before
  or after 'lib'.

- the script depdirs-rule.sh is too complex.

- we cannot use "make -d" for debug, because the output of make is used for
  the generation of .depdirs.

This patch moves the DEPDIRS-* variables in the upper Makefile, making
the dependencies much easier to calculate. A DEPDIRS variable is still
used to process library dependencies in LDLIBS.

After this commit, "make config" is almost immediate.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Tested-by: Robin Jarry <robin.jarry@6wind.com>
Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-03-27 23:28:43 +02:00
Thomas Monjalon 31123211bd remove unmaintained TILE-Gx architecture
The TILE-Gx architecture and its driver mpipe are not maintained.
The code is removed to avoid confusion.

A last update has been done in 17.05 before removal.
It can be built with the updated toolchain:
	http://www.mellanox.com/repository/solutions/tile-scm/
and libgxio:
	http://www.mellanox.com/repository/solutions/tile-scm/libgxio-1.0.tar.xz

Quote from http://dpdk.org/ml/archives/dev/2017-February/057940.html
"
Mellanox agrees to remove TILE-Gx support from DPDK.org, but will continue
to support customers using DPDK.
Customer that needs support should contact Mellanox directly.
"

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2017-03-15 11:40:57 +01:00
Allain Legacy cf75514c8e devtools: ignore warning on long log string
The checkpatch.pl tool is flagging warnings on long debug log strings.
Since splitting these strings makes it difficult to search for logs it is
preferred to allow these as exceptions to the long line rule.  The addition
of the LONG_LINE_STRINGS to the list of exceptions will allow lines that
end with a string to exceed the maximum line length, but lines that end
with variables or other constructs will still be flagged as errors.  Also,
lines that make use of PRIx64 with string concatenation will still be
flagged if the beginning of the last string fragment begins after the 80
character threshold.

Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
2017-03-06 16:00:35 +01:00
David Hunt 3ef24b3d35 devtools: make checkpatch cleaner for renamed files
When a file is renamed, a normal diff will include all the code of
the renamed file, and checkpatch will find warnings and errors,
even though it's just a rename.

This change will result in a 'rename' line in the diff, resulting
in a much cleaner checkpatches result.

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-02-21 12:24:11 +01:00
Ferruh Yigit aa0d7c2d32 kni: remove KNI vhost support
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2017-02-21 11:43:07 +01:00
Ferruh Yigit 8fdb4a9b1e mk: parallelize make config
make config dependency resolving was always running serial,
parallelize it for better performance.

$ time make T=x86_64-native-linuxapp-gcc config
real    0m12.633s

$ time make -j8 T=x86_64-native-linuxapp-gcc config
real    0m1.826s

When config creation done under a single make target, using a for loop,
make has no control on the action, and it needs to run as implemented in
the rule. But if for loop converted into multiple targets, make can
detect independent targets and run them parallel based on -j parameter.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2017-01-30 19:13:35 +01:00
Ferruh Yigit 3fb32e288b devtools: add more git headline checks for acronyms
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-01-29 15:48:11 +01:00
Ferruh Yigit 87acacf870 devtools: update git headline prefix check for drivers
For the patches that touch multiple drivers in same driver group,
script forces headline prefix start with drv group.

Like for net/a net/b net/c, patch title should be "net: x y z"

Update rule to let "driver" prefix in headline,
for above sample patch title becomes: "drivers/net: x y z"

This prevents patch confused with library with same name.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-01-29 15:48:11 +01:00
Zbigniew Bodek 169ca3db55 crypto/armv8: add PMD optimized for ARMv8 processors
This patch introduces crypto poll mode driver
using ARMv8 cryptographic extensions.
CPU compatibility with this driver is detected in
run-time and virtual crypto device will not be
created if CPU doesn't provide:
AES, SHA1, SHA2 and NEON.

This PMD is optimized to provide performance boost
for chained crypto operations processing,
such as encryption + HMAC generation,
decryption + HMAC validation. In particular,
cipher only or hash only operations are
not provided.

The driver currently supports AES-128-CBC
in combination with: SHA256 HMAC and SHA1 HMAC
and relies on the external armv8_crypto library:
https://github.com/caviumnetworks/armv8_crypto

Build ARMv8 crypto PMD if compiling for ARM64
and CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO option
is enable in the configuration file.
ARMV8_CRYPTO_LIB_PATH environment variable will
point to the appropriate library directory.

Signed-off-by: Zbigniew Bodek <zbigniew.bodek@caviumnetworks.com>
Reviewed-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2017-01-19 01:00:55 +01:00
Piotr Azarewicz 9c2a5775c0 crypto/aesni_gcm: migrate from MB library to ISA-L
Current Cryptodev AES-NI GCM PMD is implemented using Multi Buffer
Crypto library.This patch reimplement the device using ISA-L Crypto
library: https://github.com/01org/isa-l_crypto.

The migration entailed the following additional support for:
  * GMAC algorithm.
  * 256-bit cipher key.
  * Session-less mode.
  * Out-of place processing
  * Scatter-gatter support for chained mbufs (only out-of place and
    destination mbuf must be contiguous)

Signed-off-by: Piotr Azarewicz <piotrx.t.azarewicz@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
2017-01-18 21:49:54 +01:00
Thomas Monjalon 92fdc23277 devtools: relax tag checking in fixes
The tag "Cc: stable@dpdk.org" must be set when the commit must be
backported to a stable branch. The reminder is reworded.

It should be located just below the "Fixes:" tag (without blank line)
and followed by a blank line, separated from SoB and review tags below.
However, there is no strong need for checking blank lines.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
2017-01-18 16:52:25 +01:00
Thomas Monjalon df2b82cabf devtools: fix lookup commit fixing a fix of many commits
There was a bug when looking at a commit fixing a commit which
itself was fixing many commits:

% devtools/git-log-fixes.sh 12ee45a36~..12ee45a36
devtools/git-log-fixes.sh: 96: local: 5499c1fc9baa: bad variable name

In this case, the list of commits was not quoted in variable assignment.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
2017-01-18 16:50:18 +01:00
Bruce Richardson 2d150e938b devtools: skip capitalization check for commit prefixes
The prefix in the commit title must be a valid component name and is
checked in separate checks. For capitalization, just check the part after
the colon. This is already done for most capitalization checks, just make
the remainder consistent with this.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2017-01-13 17:03:43 +01:00
Thomas Monjalon 9a98f50e89 scripts: move to devtools
The remaining scripts in the scripts/ directory are only useful
to developers. That's why devtools/ is a better name.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
2017-01-04 21:17:32 +01:00