Commit Graph

11754 Commits

Author SHA1 Message Date
Hemant Agrawal
df2a171242 mempool/dpaa: fix address translation optimization
Fixes: 83a4f267f2 ("mempool/dpaa: optimize phy to virt conversion")
Cc: stable@dpdk.org

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-31 13:44:44 +01:00
Nipun Gupta
29d5d6817e bus/dpaa: allocate qman portals in thread safe manner
Fixes: 9d32ef0f5d ("bus/dpaa: support creating dynamic HW portal")
Cc: stable@dpdk.org

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-31 13:44:43 +01:00
Nipun Gupta
6613c37437 bus/dpaa: check flag in qman multi enqueue
A caller may/may not pass the flags in qman enqueue multi API.
This patch adds a check on that flag and only accesses it if passed
by the caller.

Fixes: 43797e7b47 ("bus/dpaa: support event dequeue and consumption")
Cc: stable@dpdk.org

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-31 13:44:41 +01:00
Yongseok Koh
dffa1f3049 eal/arm64: fix instrinsic for GCC < 4.9
vceqzq_u32() is being used by mlx5 PMD but added since gcc 4.9.

Fixes: 570acdb1da ("net/mlx5: add vectorized Rx/Tx burst for ARM")
Cc: stable@dpdk.org

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-31 12:19:24 +01:00
Zhihong Wang
704098fc47 vhost: fix build with old kernels
This patch fixes compile failure with old kernels which have no
VIRTIO_F_ANY_LAYOUT defined.

Fixes: 5a8bb6e902 ("vhost: claim to support any layout feature")

Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-31 12:11:13 +01:00
Liang Ma
8545289a29 event/opdl: fix dereference before null check
Coverity issue: 257022
Fixes: 4236ce9bf5 ("event/opdl: add OPDL ring infrastructure library")

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
2018-01-31 10:42:18 +01:00
Liang Ma
a2526b2630 event/opdl: fix resource leak
Coverity issue: 257004
Fixes: d548ef513c ("event/opdl: add unit tests")

Signed-off-by: Liang Ma <liang.j.ma@intel.com>
2018-01-31 10:42:18 +01:00
Nipun Gupta
8fc28889bd net/dpaa2: prefetch the annotation in event processing
This patch adds software prefetching of the annotation which is
accessed by the driver to fetch the parsing results. The changes
also include as many instructions in between prefetching memory
and using it.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
2018-01-31 07:19:05 +01:00
Nipun Gupta
c409ed1bb0 event/dpaa2: prefetch the next DQRR entry
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
2018-01-31 07:19:05 +01:00
Nipun Gupta
8a7833e19b bus/fslmc: add function to prefetch next DQRR entry
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-31 07:19:05 +01:00
Pavan Nikhilesh
535c630c2d app/eventdev: fix port dequeue depth configuration
The port dequeue depth value has to be compared against the maximum
allowed dequeue depth reported by the event drivers.

Fixes: 3617aae53f ("app/eventdev: add event Rx adapter setup")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-31 07:18:57 +01:00
Harry van Haaren
510ac6f4f0 event/sw: support dynamic logging
This commit enables dynamic logging with the SW pmd.
The string "pmd.event.sw" is used to change the verbosity
of the logging output, as per the newly defined log naming.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
2018-01-31 10:11:48 +01:00
Harry van Haaren
680a2d1f6e net/vmxnet3: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
bace76f6bb net/virtio: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
fd396066e1 net/thunderx: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Note that the "nicvf" term has been replaced with "thunderx",
as the naming scheme defines that a PMD name should be the
same as the directory that it lives in: drivers/net/thunderx

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
b8da8fad67 net/qede: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
e26e51cc5c net/nfp: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
96f6003671 net/liquidio: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Note that the "lio" term has been replaced with "liquidio",
as the naming scheme defines that a PMD name should be the
same as the directory that it lives in: drivers/net/liquidio

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
8a6799effc net/ixgbe: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
52230ad9b5 net/i40e: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
7e4dc456cf net/fm10k: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
415103fb33 net/enic: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
3f111952be net/ena: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
712f041a24 net/e1000: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
bd34cd80b1 net/avp: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Allain Legacy <allain.legacy@windriver.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
88f6bf7c75 net/avf: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
828b385c1d event/opdl: align dynamic log name with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Liang Ma <liang.j.ma@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
1a0eab3a54 drivers/octeontx: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
e7b8f15bed drivers/bbdev: align dynamic log names with standard
This commit aligns the names for dynamic logging with
the newly defined logging format.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:28:06 +01:00
Harry van Haaren
7db274b9ad doc: describe dynamic logging format
This commit adds a section to the DPDK style guide to set
the dynamic logging formatting naming scheme.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-31 09:22:40 +01:00
Shreyansh Jain
4c00db4bfb bus/fslmc: fix DPCI compare in scan
Incorrect string length was being compared while scanning DPCI object.

Fixes: 828d51d8fc ("bus/fslmc: refactor scan and probe functions")

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
2018-01-31 01:36:50 +01:00
Hemant Agrawal
a1a487f0c9 net/dpaa2: fix BPID offset
Fixes: 774e9ea919 ("net/dpaa2: add support for multi seg buffers")
Fixes: d2ef05d5c1 ("net/dpaa2: optimize Rx/Tx path")

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-31 01:36:45 +01:00
Hemant Agrawal
d90e365210 config: reduce DPAA2 mbuf headroom size to 128
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
2018-01-31 01:36:43 +01:00
Pavan Nikhilesh
fe06cb6c54 eal: fix default mempool ops
If '--mbuf-pool-ops' is not passed to EAL as command line argument then
rte_eal_mbuf_default_mempool_ops will return NULL.

Instead check if internal_config.user_mbuf_pool_ops_name is NULL and
return compile time RTE_MBUF_DEFAULT_MEMPOOL_OPS.

Fixes: 8b0f7f4341 ("mbuf: maintain user and compile time mempool ops name")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
2018-01-31 01:00:16 +01:00
Harry van Haaren
b0ee28ca12 test/debug: fix EAL cleanup when forking
Before this patch, the debug_autotest would call fork(),
call rte_panic() or rte_exit() in the child process, and
examine the return code to verify that rte_panic() and
rte_exit() were correctly reporting failures.

With the inclusion of the rte_eal_cleanup() patch, rte_exit()
was modified to cleanly tear-down EAL allocations. Currently
only one library (service cores) is allocated by EAL at startup
and should be cleaned up. This library has a check on a normal
(non-hugepage) variable to protect against double cleanup. The
service cores finalize() function itself frees back hugepage mem.

Given the fork() approach from the unit test, and the fact that
the double-free check is on an ordinary variable, causes multiple
child processed (fork()-ed from the unit-test runner) to attempt
to free the huge-page memory multiple times. The variable to
protect against double-cleanup was not effective, as the fork()
would restore it to show initialized in the next child.

The solution is to call rte_service_finalize() *before* calling
fork(), which results in the service cores double-cleanup variable
to be zero before the fork(), and hence the child processes never
free the hugepage service-cores memory (correct behavior, as the
unit-test suite is still running, and owns the hugepages).

Fixes: aec9c13c52 ("eal: add function to release internal resources")

Reported-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
2018-01-31 00:56:04 +01:00
Marko Kovacevic
3a5c339d51 mk: support renamed Makefile in external project
The build system made a recursive call to "make" after
creating the build directory. This recursive call used
the hard-coded filename "Makefile", which prevented
builds from working if the file was renamed and make
called using "make -f". Taking the filename from
MAKEFILES_LIST make variable fixes this.

Fixes: af75078fec ("first public release")
Cc: stable@dpdk.org

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: Vipin Varghese <vipin.varghese@intel.com>
2018-01-31 00:43:23 +01:00
Bruce Richardson
9f51da4f4e test: build more test cases with meson
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Luca Boccassi <bluca@debian.org>
2018-01-30 21:59:00 +01:00
Bruce Richardson
45775d7512 drivers: improve pmdinfo generation with meson
Since meson 0.44, changing any file inside a PMD directory (quite
correctly) triggers a full re-run of meson on build, rather than an
incremental build as with earlier versions. This rerun is needed because
we use "grep" in meson to search for files on which to run pmdinfogen, and
changing any of those files means that grep and, therefore meson, needs to
be rerun. [Previous versions of meson did not track this dependency on the
grep command, and so did incremental builds only.]

If, however, we take advantage of pmdinfogen's ability to use stdin and
stdout instead of files, we can instead use a shell script to process an
entire static archive and generate a single .c file from it. This
eliminates the need for grep, and means that changes to a PMD file only
need an incremental build - a significant time saving.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-30 21:59:00 +01:00
Bruce Richardson
69faa6907c doc: add meson build to release notes
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
2018-01-30 21:59:00 +01:00
Bruce Richardson
579182f2b0 build: set compat lib as universal dependency
By making "compat" lib (which consists of a header only) a dependency of
the EAL, we make the header file available to all other libs, drivers and
apps, and thereby make it less work to do ABI versioning.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
2018-01-30 21:59:00 +01:00
Pavan Nikhilesh
e53a5299d2 build: support vendor specific ARM cross builds
Add various vendor specific cross build targets.
This can be verified by using linaro toolchain and running

   meson build --cross-file config/arm/arm64_<cpu>_<platform>_<compiler>

In future more cross build targets can be added.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-30 21:59:00 +01:00
Pavan Nikhilesh
200b88cbe0 build: detect micro-arch on ARM
Added support for detecting march and mcpu by reading midr_el1 register.
The implementer, primary part number values read can be used to figure
out the underlying arm cpu.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-30 21:59:00 +01:00
Bruce Richardson
b1d48c4118 build: support ARM with meson
Add files to enable compiling for ARM native/cross builds.
This can be tested by doing a cross-compile for armv8-a type using
the linaro gcc toolchain.

        meson arm-build --cross-file aarch64_cross.txt
        ninja -C arm-build

where aarch64_cross.txt contained the following

        [binaries]
        c = 'aarch64-linux-gnu-gcc'
        cpp = 'aarch64-linux-gnu-cpp'
        ar = 'aarch64-linux-gnu-ar'

        [host_machine]
        system = 'linux'
        cpu_family = 'aarch64'
        cpu = 'armv8-a'
        endian = 'little'

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
2018-01-30 21:59:00 +01:00
Kevin Laatz
c22ada8c65 test: build more test cases with meson
This commit adds most of the remaining tests to the meson build.
They can be run using test binary as normal, or via "ninja test".

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
2018-01-30 21:58:59 +01:00
Pavan Nikhilesh
2ff67267b0 app/eventdev: build with meson
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-30 21:58:59 +01:00
Pavan Nikhilesh
bd77f2d64c event/octeontx: build with meson
Add Cavium octeontx to meson build and change order of drivers built
from event->mempool->net to mempool->net->event to resolve dependency.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-30 21:58:59 +01:00
Pavan Nikhilesh
7f615033d6 drivers/net: build Cavium NIC PMDs with meson
Add Cavium octeontx and thunder nicvf to meson build infrastructure.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-30 21:58:59 +01:00
Pavan Nikhilesh
de0cee7b34 mempool/octeontx: build with meson
Add octeontx hardware mempool driver to meson build.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-30 21:58:59 +01:00
Bruce Richardson
9c3adc289c doc: add instructions on build using meson
Add a document describing how to configure, build and install DPDK using
meson and ninja. Document includes references to official installation docs
using make, and points out the experimental nature of the build.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
2018-01-30 21:58:59 +01:00
Harry van Haaren
b5dc795a8a test: build app with meson as dpdk-test
This patch enables the test/test app to be built. It also adds
the test binary to be a meson-test, which allows the meson test
infrastructure to be used to run tests.

Tests are listed using the same test binary, however each test
sets a different DPDK_TEST environment variable. The string contents
of this DPDK_TEST env var is entered in the command line interface.
As such, the familiar test names such as "ring_perf_autotest" etc
are valid tests to run using this meson test infrastructure.

Note that the tests are run serially, given that we cannot run
multiple primary processes at a time. As each test must initialize
EAL this takes some time depending on the number of hugepages.
In future, we could improve this to run multiple tests from one
EAL init, but it is out of scope for this patchset.

Finally, an option to build the tests is added to the meson build
options. When disabled, the unit test code in test/test is not
compiled. The default is set to 'true'. To disable, run:

$ meson configure -Dtests=false

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-01-30 21:58:59 +01:00