During LTO build compiler reports some 'false positive' warnings about
variables being possibly used uninitialized. This patch silences these
warnings.
Exemplary compiler warning to suppress (with LTO enabled):
error: ‘transceiver_type’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
switch (transceiver_type) {
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
During LTO build compiler reports some 'false positive' warnings about
variables being possibly used uninitialized. This patch silences these
warnings.
Exemplary compiler warning to suppress (with LTO enabled):
error: ‘features’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
if (RTE_VHOST_NEED_LOG(features)) {
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
During LTO build compiler reports some 'false positive' warnings about
variables being possibly used uninitialized. This patch silences these
warnings.
Exemplary compiler warning to suppress (with LTO enabled):
error: ‘filter_idx’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
PMD_DRV_LOG(INFO, "Added port %d with AQ command with index %d",
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
During LTO build compiler reports some 'false positive' warnings about
variables being possibly used uninitialized. This patch silences these
warnings.
Exemplary compiler warning to suppress (with LTO enabled):
error: ‘link’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
if (link) {
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
This patch fixes 'maybe-uninitialized' warnings reported by compiler
when using LTO.
Compiler warning pointing to this error (with LTO enabled):
error: ‘kg_cfg.extracts[0].masks[0].mask’ may be used uninitialized in
this function [-Werror=maybe-uninitialized]
extr->masks[j].mask = cfg->extracts[i].masks[j].mask;
Fixes: 16bbc98a3e63 ("bus/fslmc: update MC to 10.3.x") Cc: stable@dpdk.org Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
During LTO build compiler reports some 'false positive' warnings about
variables being possibly used uninitialized. This patch silences these
warnings.
Exemplary compiler warning to suppress (with LTO enabled):
error: ‘stats.greatest_free_size’ may be used uninitialized in this
function [-Werror=maybe-uninitialized]
return len - overhead;
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com> Acked-by: Yipeng Wang <yipeng1.wang@intel.com>
During LTO build compiler reports some 'false positive' warnings about
variables being possibly used uninitialized. This patch silences these
warnings.
Exemplary compiler warning to suppress (with LTO enabled):
error: ‘chunk’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
bkt->current_chunk = (uintptr_t)chunk;
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com>
During LTO build compiler reports some 'false positive' warnings about
variables being possibly used uninitialized. This patch silences these
warnings.
Exemplary compiler warning to suppress (with LTO enabled):
error: ‘service_id’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
ret = evt_service_setup(service_id);
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com>
Fix the logic for the case of event queue allowing all schedule types.
Compiler warning pointing to this error (with LTO enabled):
error: ‘sched_type’ may be used uninitialized in this function
[-Werror=maybe-uninitialized]
if ((ret < 0 && ret != -EOVERFLOW) ||
Fixes: 6750b21bd6af ("eventdev: add default software timer adapter") Cc: stable@dpdk.org Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com>
This patch adds an option to enable link time optimization. In addition
to LTO option itself (-flto) fat-lto-objects are being used. This is
because during the build pmdinfogen scans the generated ELF objects to
find this_pmd_name* symbol in symbol table. Without fat-lto-objects gcc
produces ELF only with extra symbols for internal use during linking.
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Every implementation of a particular version of given symbol needs to be
marked in its declaration as such (using `__vsym` macro). This patch
fixes this and also clarifies the documentation about that.
Signed-off-by: Andrzej Ostruszka <aostruszka@marvell.com> Acked-by: Neil Horman <nhorman@tuxdriver.com>
test/atomic: add atomic 16/32/64-bit exchanges test
The test works by creating a token comprised of random data
and a CRC8 value, using the rte_atomicXX_exchange to exchange
the new token for a previously generated token, and then
verifying that the exchanged data is intact (i.e. the CRC8
is still correct for the data).
Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Acked-by: David Marchand <david.marchand@redhat.com>
Anatoly Burakov [Tue, 5 Nov 2019 15:15:12 +0000 (15:15 +0000)]
vfio: fix DMA mapping of external heaps
Currently, externally created heaps are supposed to be automatically
mapped for VFIO DMA by EAL, however they only do so if, at the time of
heap creation, VFIO is initialized and has at least one device
available. If no devices are available at the time of heap creation (or
if devices were available, but were since hot-unplugged, thus dropping
all VFIO container mappings), then VFIO mapping code would have skipped
over externally allocated heaps.
The fix is two-fold. First, we allow externally allocated memory
segments to be marked as "heap" segments. This allows us to distinguish
between external memory segments that were created via heap API, from
those that were created via rte_extmem_register() API.
Then, we fix the VFIO code to only skip non-heap external segments.
Also, since external heaps are not guaranteed to have valid IOVA
addresses, we will skip those which have invalid IOVA addresses as well.
Fixes: 0f526d674f8e ("malloc: separate creating memseg list and malloc heap") Cc: stable@dpdk.org Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Tested-by: Rajesh Ravi <rajesh.ravi@broadcom.com> Acked-by: David Marchand <david.marchand@redhat.com>
Anatoly Burakov [Mon, 4 Nov 2019 17:41:33 +0000 (17:41 +0000)]
vfio: fix DMA mapping with default container
When requesting DMA mapping to default container, we are meant to
supply the RTE_VFIO_DEFAULT_CONTAINER_FD value, however this is
not handled correctly by get_vfio_cfg_by_container_fd(), because
it only looks at actual fd values and does not check for this
special case.
Fix it to return default container if the fd requested is the
special RTE_VFIO_DEFAULT_CONTAINER_FD value.
Fixes: 4106d89a18f8 ("vfio: allow DMA map to the default container") Cc: stable@dpdk.org Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Reviewed-by: David Marchand <david.marchand@redhat.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
Sunil Kumar Kori [Wed, 30 Oct 2019 16:26:44 +0000 (21:56 +0530)]
examples/l2fwd-event: add infra to split eventdev framework
Add infra to split eventdev framework based on event Tx adapter
capability.
If event Tx adapter has internal port capability then we use
`rte_event_eth_tx_adapter_enqueue` to transmitting packets else
we use a SINGLE_LINK event queue to enqueue packets to a service
core which is responsible for transmitting packets.
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Nipun Gupta <nipun.gupta@nxp.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
Pavan Nikhilesh [Wed, 30 Oct 2019 16:26:43 +0000 (21:56 +0530)]
examples/l2fwd-event: add infra for eventdev
Add infra to select event device as a mode to process packets through
command line arguments. Also, allow the user to select the schedule type
to be RTE_SCHED_TYPE_ORDERED, RTE_SCHED_TYPE_ATOMIC or
RTE_SCHED_TYPE_PARALLEL.
Usage:
`--mode="eventdev"` or `--mode="poll"`
`--eventq-sched="ordered"`, `--eventq-sched="atomic"` or
`--event-sched=parallel`
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Nipun Gupta <nipun.gupta@nxp.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
Hemant Agrawal [Tue, 5 Nov 2019 07:59:06 +0000 (13:29 +0530)]
config: remove redundant DPAA2 build
dpaa and dpaa2 config have evolved to be same. The same binary
can now work across the platforms. So, there is no need to maintain
two different build configs.
The dpaa config shall work for both generation of dpaa platforms.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
Rasesh Mody [Wed, 6 Nov 2019 05:45:20 +0000 (21:45 -0800)]
net/bnx2x: fix meson build
Use kernel headers for __le* types to avoid potential conflicts
resulting in redefinition errors for some Linux build environments.
Add check for FreeBSD execution environments.
Without this fix, aarch64 builds can fail with error below:
In file included from ../drivers/net/bnx2x/bnx2x.h:22,
from ../drivers/net/bnx2x/bnx2x_ethdev.c:8:
../drivers/net/bnx2x/bnx2x_osal.h:27:17: error:
conflicting types for ‘uint64_t’
#define __le64 uint64_t
^~~~~~~~
In file included from /usr/include/stdint.h:37,
from /usr/lib/gcc/aarch64-linux-gnu/8/include/stdint.h:9,
from ../lib/librte_eal/common/include/arch/arm/rte_byteorder.h:16,
from ../drivers/net/bnx2x/bnx2x.h:17,
from ../drivers/net/bnx2x/bnx2x_ethdev.c:8:
/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h:27:20: note:
previous declaration of ‘uint64_t’ was here
typedef __uint64_t uint64_t;
^~~~~~~~
There is also one minor change mixed in this commit:
Some use of __FreeBSD__ are replaced by RTE_EXEC_ENV_FREEBSD.
Olivier Matz [Mon, 4 Nov 2019 10:06:23 +0000 (11:06 +0100)]
test/mempool: fix false positive result
The ret variable, initialized to -1, is changed to 0 during the test,
making the test successful in some cases where it should return a
failure.
Fix this by always using the GOTO_ERR() macro that sets the ret
variable before doing the goto.
Fixes: 923ceaeac140 ("test/mempool: add unit test cases") Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
Olivier Matz [Tue, 5 Nov 2019 15:37:06 +0000 (16:37 +0100)]
mempool: use specific macro for object alignment
For consistency, RTE_MEMPOOL_ALIGN should be used in place of
RTE_CACHE_LINE_SIZE. They have the same value, because the only arch
that was defining a specific value for it has been removed from DPDK.
The previous commit reduced the amount of required memory when
populating the mempool with non IOVA-contiguous memory.
Since there is no big advantage to have a fully iova-contiguous mempool
if it is not explicitly asked, remove this code, it simplifies the
populate function.
Olivier Matz [Tue, 5 Nov 2019 15:37:01 +0000 (16:37 +0100)]
mempool: reduce wasted space on populate
The size returned by rte_mempool_op_calc_mem_size_default() is aligned
to the specified page size. Therefore, with big pages, the returned size
can be much more that what we really need to populate the mempool.
For instance, populating a mempool that requires 1.1GB of memory with
1GB hugepages can result in allocating 2GB of memory.
This problem is hidden most of the time due to the allocation method of
rte_mempool_populate_default(): when try_iova_contig_mempool=true, it
first tries to allocate an iova contiguous area, without the alignment
constraint. If it fails, it fallbacks to an aligned allocation that does
not require to be iova-contiguous. This can also fallback into several
smaller aligned allocations.
This commit changes rte_mempool_op_calc_mem_size_default() to relax the
alignment constraint to a cache line and to return a smaller size.
Hemant Agrawal [Tue, 5 Nov 2019 14:23:20 +0000 (19:53 +0530)]
bus/dpaa: move QBMAN global init to bus
DPAA SEC shall be able to work independent of DPAA ETH
driver.
This patch moves qbman init to bus, so that any driver
can use them even when no eth resources are present
or none of the eth devices are probed.
Radu Bulie [Tue, 5 Nov 2019 14:23:19 +0000 (19:53 +0530)]
mempool/dpaa2: report error on endless loop in mbuf release
When BMAN is not able to accept more buffers, it could be that
there are no FBPR's (internal mem provided to bman) left.
Report error in such condition.
Nipun Gupta [Tue, 5 Nov 2019 14:23:16 +0000 (19:53 +0530)]
net/dpaa2: add retry and timeout in packet enqueue API
In the packet transmit, if the QBMAN is not able to process the
packets, the Tx function loops infinitely to send the packet out.
This patch changes the logic retry for some time (count) and then
return.
Fixes: cd9935cec873 ("net/dpaa2: enable Rx and Tx operations") Fixes: 16c4a3c46ab7 ("bus/fslmc: add enqueue response read in qbman") Cc: stable@dpdk.org Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com> Signed-off-by: Radu Bulie <radu-andrei.bulie@nxp.com>
Nipun Gupta [Tue, 5 Nov 2019 14:23:15 +0000 (19:53 +0530)]
common/dpaax: fallback to check separate memory node for VM
In Virtual Machine the memory node in the device tree is at
'/proc/device-tree/memory/reg' which is separate from the memory
node path on the host. This patch enables check on both the paths.
Add fib implementation for ipv6 using modified DIR24_8 algorithm.
Implementation is similar to current LPM6 implementation but has
few enhancements:
faster control plane operations
more bits for userdata in table entries
configurable userdata size
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Add fib implementation for DIR24_8 algorithm for IPv4.
Implementation is similar to current LPM implementation but has
few enhancements:
faster control plane operations
more bits for userdata in table entries
configurable userdata size
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Add FIB (Forwarding Information Base) library. This library
implements a dataplane structures and algorithms designed for
fast longest prefix match.
Internally it consists of two parts - RIB (control plane ops) and
implementation for the dataplane tasks.
Initial version provides two implementations for both IPv4 and IPv6:
dummy (uses RIB as a dataplane) and DIR24_8 (same as current LPM)
Due to proposed design it allows to extend FIB with new algorithms
in future (for example DXR, poptrie, etc).
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Add RIB (Routing Information Base) library. This library
implements an IPv4 routing table optimized for control plane
operations. It implements a control plane struct containing routes
in a tree and provides fast add/del operations for routes.
Also it allows to perform fast subtree traversals
(i.e. retrieve existing subroutes for a given prefix).
This structure will be used as a control plane helper structure
for FIB implementation. Also it might be used standalone in other
different places such as bitmaps for example.
Internal implementation is level compressed binary trie.
Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Ciara Power [Thu, 31 Oct 2019 14:05:52 +0000 (14:05 +0000)]
crypto/dpaa2_sec: fix build with clang 3.4.2
Building with clang 3.4.2 caused the following error:
CC dpaa2_sec_dpseci.o
In file included from /dpdk/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c:40:
In file included from /dpdk/drivers/common/dpaax/caamflib/desc/ipsec.h:11:
In file included from /dpdk/drivers/common/dpaax/caamflib/rta.h:11:
In file included from .../common/dpaax/caamflib/rta/sec_run_time_asm.h:14:
/dpdk/drivers/common/dpaax/compat.h:108:18:
error: redefinition of typedef 'dma_addr_t' is a C11 feature
[-Werror,-Wtypedef-redefinition]
typedef uint64_t dma_addr_t;
^
/dpdk/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c:37:18:
note: previous definition is here
typedef uint64_t dma_addr_t;
^
The dma_addr_t was defined in the common compat.h file, and does not
need to be redefined.
The meson build include directories list was updated to enable the
definition in the common compat.h file be used.
Fixes: 8c83f28cc8a4 ("common/dpaax: move OF library from DPAA bus") Signed-off-by: Ciara Power <ciara.power@intel.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Nipun Gupta [Thu, 31 Oct 2019 12:48:35 +0000 (18:18 +0530)]
config: disable IEEE1588 on DPAA2
This patch disables the 1588 timer support by default on DPAA2
platform due to the performance impact.
By default it is disabled in config/common_base, so remove the entry
from DPAA2.
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
Dekel Peled [Thu, 24 Oct 2019 13:17:51 +0000 (16:17 +0300)]
doc: fix description of links to EAL options pages
Documentation includes separate pages of EAL command-line options for
Linux and for FreeBSD.
Links to these pages use the same text 'EAL parameters', so it is not
clear which link to use for which environment.
This patch adds the text '(Linux)' and '(FreeBSD)' where relevant, to
clearly identify the links.
Fixes: 3ee567cfec37 ("doc: document all EAL parameters in one place") Cc: stable@dpdk.org Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Ciara Power [Tue, 29 Oct 2019 13:41:47 +0000 (13:41 +0000)]
raw/ioat: support xstats reset
The rawdev xstats_reset function is now enabled. It is called when the
ioat autotest completes, to reset all xstat values after they have been
modified during testing.
Signed-off-by: Ciara Power <ciara.power@intel.com> Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
Dharmik Thakkar [Tue, 22 Oct 2019 00:19:45 +0000 (19:19 -0500)]
rename private header files
Some of the internal header files have 'rte_' prefix
and some don't.
Remove 'rte_' prefix from all internal header files.
Suggested-by: Thomas Monjalon <thomas@monjalon.net> Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
On Ubuntu 18.04, pyelftools is version 0.24. The change log of
pyelftools v0.24 says:
- Symbol/section names are strings internally now, not bytestrings
(this may affect API usage in Python 3) (#76).
We cannot guess which version of pyelftools is actually being used. The
elftools.__version__ symbol is not consistent with each distro's package
version. For example, on Ubuntu 16.04 (xenial), the .deb package version
is '0.23-2' but elftools.__version__ contains '0.25'. This is certainly
due to partial backports.
To have a more consistent behaviour of this script across all versions
of python, add the unicode_literals future import so that literal
strings are now always "unicode".
Add 2 utility functions to force a string into bytes or bytes into an
unicode string.
Force pyelftools return values to unicode strings (will do nothing with
recent version of pyelftools).
If elffile.get_section_by_name returns None with a unicode section name,
try with the same one encoded as bytes.
Also, replace all open() calls by io.open() which behaves like the
builtin open in python 3. The only non-binary opened file is
/usr/share/hwdata/pci.ids which is UTF-8 encoded text. Explicitly
specify that encoding.
David Hunt [Thu, 24 Oct 2019 14:26:10 +0000 (15:26 +0100)]
examples/vm_power: fix build without i40e
channel_monitor.c was dependent on i40e driver being available.
This is only necessary for the TRAFFIC policy, so use #ifdef's
to not call these when i40e not available.
Fixes: f14791a8126e ("examples/vm_power_mgr: add policy to channels") Cc: stable@dpdk.org Signed-off-by: David Hunt <david.hunt@intel.com> Tested-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Marcin Hajkowski [Fri, 27 Sep 2019 08:42:13 +0000 (09:42 +0100)]
power: fix socket indicator value
Currently 0 is being used for not connected slot indication.
This is not consistent with linux doc which identifies 0 as valid
(connected) slot, thus modification was done to change it.
Fixes: cd0d5547 ("power: vm communication channels in guest") Cc: stable@dpdk.org Signed-off-by: Marcin Hajkowski <marcinx.hajkowski@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Interrupt will not be received when disabling RX interrupt without
synchronization mechanism sometimes which leads to wake up issue.
Add spinlock to fix it.
Fixes: b736d64787 ("examples/l3fwd-power: disable Rx interrupt when waking up") Cc: stable@dpdk.org Signed-off-by: Xiao Zhang <xiao.zhang@intel.com> Reviewed-by: Marvin Liu <yong.liu@intel.com> Acked-by: David Hunt <david.hunt@intel.com>
Feifei Wang [Wed, 14 Aug 2019 08:54:30 +0000 (16:54 +0800)]
examples/l3fwd: prefetch the content of the next packet
The cache-misses problem is very serious when the function
lpm_cb_parse_ptype is called to read the content of packets. That is
because the contents of packages previously stored in the cache are
overwritten by the following instructions or variables.
Thus the prefetch order can be used to prefetch the next packet into
the cache to avoid CPU spending too much time on it.
On Octeon TX platform with built-in NIC, 12% performance gain was
measured by running RFC2544 NDR test with l3fwd. Furthermore, the
cache-misses event of the function lpm_cb_parse_ptype was reduced by
20%, and the CPU task-clock of it dropped from 16.49% to 11.3%, based
on the forwarding test for one minute with the 64B packet.
On the dpaa2 platform, no performance improvement nor drop were seen
with this patch by running RFC2544 NDR test with l3fwd.
On the x86 platform, 15.7% performance gain was measured by running
RFC2544 NDR test with l3fwd.
Signed-off-by: Feifei Wang <feifei.wang@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com> Reviewed-by: Phil Yang <phil.yang@arm.com>
Bruce Richardson [Thu, 10 Oct 2019 10:46:23 +0000 (11:46 +0100)]
net: remove ethernet packing and set two-byte alignment
The ether header does not need to be packed since that makes no sense for
structures with only bytes in them, but it should be aligned to a two-byte
boundary to simplify access to it from code. Other packed structures that
use this also need to be updated to take account of the change, either by
removing packing - where it is clearly unneeded - or by explicitly giving
those structures 2-byte alignment also.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Marcin Baran [Mon, 7 Oct 2019 11:08:08 +0000 (12:08 +0100)]
examples/ioat: print statistics
Added printing stats of ports each second. The stats printing is done
using master core. The information provided informs about packets
received, dropped and send as well as statistics of rawdev devices.
Signed-off-by: Marcin Baran <marcinx.baran@intel.com> Signed-off-by: Pawel Modrak <pawelx.modrak@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Pawel Modrak [Mon, 7 Oct 2019 11:08:07 +0000 (12:08 +0100)]
examples/ioat: add two threads configuration
Added possibility to use two lcores: first for packet receiving and
copying, second for packets sending.
Signed-off-by: Pawel Modrak <pawelx.modrak@intel.com> Signed-off-by: Marcin Baran <marcinx.baran@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Marcin Baran [Mon, 7 Oct 2019 11:08:06 +0000 (12:08 +0100)]
examples/ioat: add rawdev copy mode
Added support for copying packets using rawdev device. Each port's Rx queue
is assigned DMA channel for copy.
Signed-off-by: Marcin Baran <marcinx.baran@intel.com> Signed-off-by: Pawel Modrak <pawelx.modrak@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Marcin Baran [Mon, 7 Oct 2019 11:08:05 +0000 (12:08 +0100)]
examples/ioat: add software copy mode
Added support for copying packets using software copy mode and MAC address
changing. The copies are processed using one lcore.
Signed-off-by: Marcin Baran <marcinx.baran@intel.com> Signed-off-by: Pawel Modrak <pawelx.modrak@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Pawel Modrak [Mon, 7 Oct 2019 11:08:04 +0000 (12:08 +0100)]
examples/ioat: add new sample app for ioat driver
A new sample app demonstrating use of driver for CBDMA. The app receives
packets, performs software or hardware copy, changes packets' MAC addresses
(if enabled) and forwards them. The change covers ports initialization,
closing connection and argument parsing.
Signed-off-by: Pawel Modrak <pawelx.modrak@intel.com> Signed-off-by: Marcin Baran <marcinx.baran@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Bruce Richardson [Tue, 22 Oct 2019 15:43:09 +0000 (16:43 +0100)]
examples/vm_power: fix type of cmdline token in cli
Building the example with clang gives the error:
error: expression which evaluates to zero treated as a null pointer
constant of type 'const char *' [-Werror,-Wnon-literal-null-conversion]
lcore_id, UINT8);
^~~~~
This error is due to the wrong data type being given for the
cmd_set_cpu_freq_core_num value - it was specified as string rather than
numeric type.
Fixes: f5e5c3347ae3 ("examples/vm_power: cli in guest") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: David Hunt <david.hunt@intel.com>
The warnings about functions not returning values can be removed from the
code by just adding an attribute to the function to specifies it doesn't
return. The GCC bug referenced in the makefile which prevents this from
working has been fixed for >10 years according to bugzilla.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>