Jianfeng Tan [Thu, 14 Sep 2017 02:40:29 +0000 (02:40 +0000)]
eal: remove Xen dom0 support
We remove xen-specific code in EAL, including the option --xen-dom0,
memory initialization code, compiling dependency, etc.
Related documents are removed or updated, and bump the eal library
version.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Jianfeng Tan [Thu, 14 Sep 2017 02:40:28 +0000 (02:40 +0000)]
mem: remove API to get physical address in dom0
Previously, to get MFN address in dom0, this API is a wrapper to
obtain the "physical address".
As we will removed xen dom0 support, this API is not necessary.
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jianfeng Tan [Thu, 14 Sep 2017 02:40:27 +0000 (02:40 +0000)]
xen: remove dependency in libraries
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jianfeng Tan [Thu, 14 Sep 2017 02:40:26 +0000 (02:40 +0000)]
xen: remove dependency in applications
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jianfeng Tan [Thu, 14 Sep 2017 02:40:25 +0000 (02:40 +0000)]
net/xenvirt: remove
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jianfeng Tan [Thu, 14 Sep 2017 02:40:24 +0000 (02:40 +0000)]
examples/vhost_xen: remove
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jacek Piasecki [Fri, 22 Sep 2017 09:44:50 +0000 (11:44 +0200)]
test/cfgfile: add realloc scenario
Load huge realloc_sections.ini file to check malloc/realloc
ability of cfgfile library.
Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jacek Piasecki [Fri, 22 Sep 2017 09:44:49 +0000 (11:44 +0200)]
cfgfile: rework load function
New functions added to cfgfile library make it possible
to significantly simplify the code of rte_cfgfile_load_with_params()
This patch shows the new body of this function.
Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jacek Piasecki [Fri, 22 Sep 2017 09:44:48 +0000 (11:44 +0200)]
cfgfile: support runtime modification
Extend existing cfgfile library with providing new API functions:
rte_cfgfile_create() - create new cfgfile object
rte_cfgfile_add_section() - add new section to existing cfgfile
object
rte_cfgfile_add_entry() - add new entry to existing cfgfile
object in specified section
rte_cfgfile_set_entry() - update existing entry in cfgfile object
rte_cfgfile_save() - save existing cfgfile object to INI file
This modification allows to create a cfgfile on
runtime and opens up the possibility to have applications
dynamically build up a proper DPDK configuration, rather than having
to have a pre-existing one.
Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jacek Piasecki [Fri, 22 Sep 2017 09:44:47 +0000 (11:44 +0200)]
cfgfile: rework to flat arrays
Change to flat arrays in cfgfile struct force slightly
different data access for most of cfgfile functions.
This patch provides necessary changes in existing API.
Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Jacek Piasecki [Fri, 22 Sep 2017 09:44:46 +0000 (11:44 +0200)]
cfgfile: remove EAL dependency
This patch removes the dependency to EAL in cfgfile library.
Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Yipeng Wang [Wed, 4 Oct 2017 03:12:25 +0000 (20:12 -0700)]
doc: add membership documentation
This patch adds the documentation for membership library.
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Yipeng Wang [Wed, 4 Oct 2017 03:12:24 +0000 (20:12 -0700)]
test/member: add functional and perf tests
This patch adds functional and performance tests for membership
library.
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Yipeng Wang [Wed, 4 Oct 2017 03:12:22 +0000 (20:12 -0700)]
member: add AVX for HT mode
For key search, the signatures of all entries are compared against
the signature of the key that is being looked up. Since all
signatures are contiguously put in a bucket, they can be compared
with vector instructions (AVX2), achieving higher lookup performance.
This patch adds AVX2 implementation in a separate header file.
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Yipeng Wang [Wed, 4 Oct 2017 03:12:21 +0000 (20:12 -0700)]
member: implement vBF mode
Bloom Filter (BF) [1] is a well-known space-efficient
probabilistic data structure that answers set membership queries.
Vector of Bloom Filters (vBF) is an extension to traditional BF
that supports multi-set membership testing. Traditional BF will
return found or not-found for each key. vBF will also return
which set the key belongs to if it is found.
Since each set requires a BF, vBF should be used when set count
is small. vBF's false positive rate could be set appropriately so
that its memory requirement and lookup speed is better in certain
cases comparing to HT based set-summary.
This patch adds the vBF implementation.
[1]B H Bloom, “Space/Time Trade-offs in Hash Coding with Allowable
Errors,” Communications of the ACM, 1970.
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Yipeng Wang [Wed, 4 Oct 2017 03:12:20 +0000 (20:12 -0700)]
member: implement HT mode
One of the set-summary structures is hash-table based
set-summary (HTSS). One example is cuckoo filter [1].
Comparing to a traditional hash table, HTSS has a much more
compact structure. For each element, only one signature and
its corresponding set ID is stored. No key comparison is required
during lookup. For the table structure, there are multiple entries
in each bucket, and the table is composed of many buckets.
Two modes are supported for HTSS, "cache" and "none-cache" modes.
The non-cache mode is similar to the cuckoo filter [1].
When a bucket is full, one entry will be evicted to its
alternative bucket to make space for the new key. The table could
be full and then no more keys could be inserted. This mode has
false-positive rate but no false-negative. Multiple entries
with same signature could stay in the same bucket.
The "cache" mode does not evict key to its alternative bucket
when a bucket is full, an existing key will be evicted out of
the table like a cache. Thus, the table will never reject keys when
it is full. Another property is in each bucket, there cannot be
multiple entries with same signature. The mode could have both
false-positive and false-negative probability.
This patch adds the implementation of HTSS.
[1] B Fan, D G Andersen and M Kaminsky, “Cuckoo Filter: Practically
Better Than Bloom,” in Conference on emerging Networking
Experiments and Technologies, 2014.
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Yipeng Wang [Wed, 4 Oct 2017 03:12:19 +0000 (20:12 -0700)]
member: implement main API
Membership library is an extension and generalization of a traditional
filter (for example Bloom Filter and cuckoo filter) structure.
In general, the Membership library is a data structure that provides a
"set-summary" and responds to set-membership queries of whether a
certain element belongs to a set(s). A membership test for an element
will return the set this element belongs to or not-found if the
element is never inserted into the set-summary.
The results of the membership test are not 100% accurate. Certain
false positive or false negative probability could exist. However,
comparing to a "full-blown" complete list of elements, a "set-summary"
is memory efficient and fast on lookup.
This patch adds the main API definition.
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
CongWen Zhang [Mon, 21 Aug 2017 00:44:51 +0000 (08:44 +0800)]
jobstats: fix a doxygen comment
Signed-off-by: CongWen Zhang <zhang.congwen@zte.com.cn>
Reviewed-by: Kirill Rybalchenko <kirill.rybalchenko@intel.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:10 +0000 (18:10 +0530)]
mempool/octeontx: support memory area ops
Add support for register_memory_area ops in mempool driver.
Allow more than one HW pool when using OcteonTx mempool driver:
By storing each pool information to the list and find appropriate
list element by matching the rte_mempool pointers.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:09 +0000 (18:10 +0530)]
mempool/octeontx: support capabilities query
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:08 +0000 (18:10 +0530)]
mempool/octeontx: support count query
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:07 +0000 (18:10 +0530)]
mempool/octeontx: support enqueue and dequeue
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:06 +0000 (18:10 +0530)]
mempool/octeontx: support freeing
Upon pool free request from application, Octeon FPA free
does following:
- Uses mbox to reset fpapf pool setup.
- frees fpavf resources.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:05 +0000 (18:10 +0530)]
mempool/octeontx: support allocation
Upon pool allocation request by application, Octeontx FPA alloc
does following:
- Gets free pool from pci fpavf array.
- Uses mbox to communicate fpapf driver about,
* gpool-id
* pool block_sz
* alignemnt
- Programs fpavf pool boundary.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:04 +0000 (18:10 +0530)]
mempool/octeontx: probe fpavf PCIe devices
A mempool device is set of PCIe vfs.
On Octeontx HW, each mempool devices are enumerated as
separate SRIOV VF PCIe device.
In order to expose as a mempool device:
On PCIe probe, the driver stores the information associated with the
PCIe device and later upon application pool request
(e.g. rte_mempool_create_empty), Infrastructure creates a pool device
with earlier probed PCIe VF devices.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:03 +0000 (18:10 +0530)]
mempool/octeontx: add build and log infrastructure
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Santosh Shukla [Sun, 8 Oct 2017 12:40:02 +0000 (18:10 +0530)]
mempool/octeontx: add HW constants
add HW constants of octeontx fpa mempool device.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Hemant Agrawal [Sun, 8 Oct 2017 09:17:32 +0000 (14:47 +0530)]
igb_uio: fix build on arm64 kernel
IGB_UIO compilation recently got enabled for ARM64 by default
The igb_uio compilation against ARM64 based stock 4.x (e.g. 4.13)
kernel is giving compilation warnings:
igb_uio.c: In function ‘igbuio_pci_irqcontrol’:
igb_uio.c:115:25: error: implicit declaration of function
‘irq_get_irq_dat ’ [-Werror=implicit-function-declaration]
struct irq_data *irq = irq_get_irq_data(udev->info.irq);
^
igb_uio.c:115:25: error: initialization makes pointer from integer without
a cast [-Werror=int-conversion]
Fixes:
d196343a258e ("igb_uio: use kernel functions for masking MSI-X")
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Yangchao Zhou [Tue, 22 Aug 2017 12:02:35 +0000 (20:02 +0800)]
hash: optimize Toeplitz RSS computation
Use rte_bsf32 and fast bit unset operation to optimize the
softrss computation.
The following measurements shows improvement over the default
softrss computation function.
tuple lens old(cycles) new(cycles)
3 1225 337
9 3743 992
Signed-off-by: Yangchao Zhou <zhouyates@gmail.com>
Reviewed-by: Vladimir Medvedkin <medvedkinv@gmail.com>
Pablo de Lara [Fri, 22 Sep 2017 04:25:43 +0000 (05:25 +0100)]
hash: fix eviction counter
When adding a new entry in a hash table, there is
a maximum number of evictions that can be
performed. When the counter of these evictions reaches
this maximum, the entry cannot be added, as it is considered
that the algorithm has encountered an infinite loop.
The problem with the current implementation, is that this
counter was declared as a static variable.
If there are multiple threads adding entries in the same table
or in different tables, they should access different counters,
one per core and per table.
Therefore, the variable has been modified to be non-static.
Fixes:
243e93a5046f ("hash: fix unlimited cuckoo path")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Tonghao Zhang [Mon, 18 Sep 2017 07:46:57 +0000 (00:46 -0700)]
igb_uio: use UIO macro instead of hardcoded value
This is not bugfix, but it's convenient to help developer
to review and maintain the igbuio codes.
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Markus Theil [Tue, 5 Sep 2017 12:04:06 +0000 (14:04 +0200)]
igb_uio: add MSI IRQ mode
This patch adds MSI IRQ mode in a way, that should
also work on older kernel versions. The base for my patch
was an attempt to do this in
cf705bc36c which was later
reverted in
d8ee82745a. Compilation was tested on Linux 3.2,
4.10 and 4.12.
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Markus Theil [Tue, 5 Sep 2017 12:04:05 +0000 (14:04 +0200)]
igb_uio: use kernel functions for masking MSI-X
This patch removes the custom MSI-X mask/unmask code and
uses already existing kernel functions.
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Markus Theil [Tue, 5 Sep 2017 12:04:04 +0000 (14:04 +0200)]
igb_uio: release in exact reverse order
For better readability throughout the module, the destruction
order is changed to the exact inverse construction order.
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Markus Theil [Tue, 5 Sep 2017 12:04:03 +0000 (14:04 +0200)]
igb_uio: fix MSI-X IRQ assignment with new IRQ function
The patch which introduced the usage of pci_alloc_irq_vectors
came after the patch which switched to non-threaded ISR (
f0d1896fa1),
but did not use non-threaded ISR, if pci_alloc_irq_vectors
is used.
Fixes:
99bb58f3adc7 ("igb_uio: switch to new irq function for MSI-X")
Cc: stable@dpdk.org
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Markus Theil [Tue, 5 Sep 2017 12:04:02 +0000 (14:04 +0200)]
igb_uio: fix IRQ disable on recent kernels
igb_uio already allocates irqs using pci_alloc_irq_vectors on
recent kernels >= 4.8. The interrupt disable code was not
using the corresponding pci_free_irq_vectors, but the also
deprecated pci_disable_msix, before this fix.
Fixes:
99bb58f3adc7 ("igb_uio: switch to new irq function for MSI-X")
Cc: stable@dpdk.org
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Markus Theil [Tue, 5 Sep 2017 12:04:01 +0000 (14:04 +0200)]
igb_uio: refactor IRQ enable/disable into own functions
Interrupt setup code in igb_uio has to deal with multiple
types of interrupts and kernel versions. This patch moves
the setup and teardown code into own functions, to make
it more readable.
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Tested-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Keith Wiles [Tue, 15 Aug 2017 13:53:05 +0000 (08:53 -0500)]
app/procinfo: fix compilation with -O3
When using EXTRA_CFLAGS="-g -O3" in the build the -O3 causes
compiler warnings. Using Ubuntu 17.04 gcc compiler.
Signed-off-by: Keith Wiles <keith.wiles@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Nirmoy Das [Fri, 11 Aug 2017 16:33:14 +0000 (18:33 +0200)]
kni: fix SLE version detection
detect SLE version reverse chronologically as ">=" is being used.
Fixes:
2972254ce163 ("kni: fix build on Suse 12 SP3")
Cc: stable@dpdk.org
Signed-off-by: Nirmoy Das <ndas@suse.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Jianbo Liu [Thu, 14 Sep 2017 03:53:47 +0000 (11:53 +0800)]
config: enable igb_uio on arm64
The kernel patch was merged to support pci resource mapping.
https://patchwork.kernel.org/patch/
9677441/
So enable igu_uio in the default arm64 configuration.
Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Santosh Shukla [Sun, 1 Oct 2017 09:29:02 +0000 (14:59 +0530)]
mempool: notify memory area to pool
HW pool manager e.g. Octeontx SoC demands s/w to program start and end
address of pool. Currently, there is no such api in external mempool.
Introducing rte_mempool_ops_register_memory_area api which will let HW(pool
manager) to know when common layer selects hugepage:
For each hugepage - Notify its start/end address to HW pool manager.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Sun, 1 Oct 2017 09:29:01 +0000 (14:59 +0530)]
mempool: introduce block size alignment flag
Some mempool hw like octeontx/fpa block, demands block size
(/total_elem_sz) aligned object start address.
Introducing an MEMPOOL_F_CAPA_BLK_ALIGNED_OBJECTS flag.
If this flag is set:
- Align object start address(vaddr) to a multiple of total_elt_sz.
- Allocate one additional object. Additional object is needed to make
sure that requested 'n' object gets correctly populated.
Example:
- Let's say that we get 'x' size of memory chunk from memzone.
- And application has requested 'n' object from mempool.
- Ideally, we start using objects at start address 0 to...(x-block_sz)
for n obj.
- Not necessarily first object address i.e. 0 is aligned to block_sz.
- So we derive 'offset' value for block_sz alignment purpose i.e..'off'.
- That 'off' makes sure that start address of object is blk_sz aligned.
- Calculating 'off' may end up sacrificing first block_sz area of
memzone area x. So total number of the object which can fit in the
pool area is n-1, Which is incorrect behavior.
Therefore we request one additional object (/block_sz area) from memzone
when MEMPOOL_F_CAPA_BLK_ALIGNED_OBJECTS flag is set.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Sun, 1 Oct 2017 09:29:00 +0000 (14:59 +0530)]
mempool: detect physical contiguous objects
The memory area containing all the objects must be physically
contiguous.
Introducing MEMPOOL_F_CAPA_PHYS_CONTIG flag for such use-case.
The flag useful to detect whether pool area has sufficient space
to fit all objects. If not then return -ENOSPC.
This way, we make sure that all object within a pool is contiguous.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Sun, 1 Oct 2017 09:28:59 +0000 (14:58 +0530)]
mempool: get capabilities
Allow the mempool driver to advertise his pool capabilities.
For that pupose, an api(rte_mempool_ops_get_capabilities)
and ->get_capabilities() handler has been introduced.
- Upon ->get_capabilities() call, mempool driver will advertise
his capabilities to mempool flags param.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Sun, 1 Oct 2017 09:28:58 +0000 (14:58 +0530)]
doc: remove mempool deprecation notice
Removed mempool deprecation notice and
updated change info in release_17.11.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Sun, 1 Oct 2017 09:28:57 +0000 (14:58 +0530)]
mempool: add flags arg in xmem size and usage
xmem_size and xmem_usage need to know the status of mempool flags,
so add 'flags' arg in _xmem_size/usage() api.
Following patch will make use of that.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Sun, 1 Oct 2017 09:28:56 +0000 (14:58 +0530)]
mempool: change flags from int to unsigned int
mp->flags is int and mempool API writes unsigned int
value in 'flags', so fix the 'flags' data type.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Sun, 1 Oct 2017 09:28:55 +0000 (14:58 +0530)]
mempool: remove unused flags argument
* Remove redundant 'flags' API description from
- __mempool_generic_put
- __mempool_generic_get
- rte_mempool_generic_put
- rte_mempool_generic_get
* Remove unused 'flags' argument from
- rte_mempool_generic_put
- rte_mempool_generic_get
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Fri, 6 Oct 2017 07:45:30 +0000 (13:15 +0530)]
ethdev: get supported mempool per port
Now that dpdk supports more than one mempool drivers and
each mempool driver works best for specific PMD, example:
- sw ring based mempool for Intel PMD drivers.
- dpaa2 HW mempool manager for dpaa2 PMD driver.
- fpa HW mempool manager for Octeontx PMD driver.
Application would like to know the best mempool handle
for any port.
Introducing rte_eth_dev_pool_ops_supported() API,
which allows PMD driver to advertise
his supported pool capability to the application.
Supported pools are categorized in below priority:-
- Best mempool handle for this port (Highest priority '0')
- Port supports this mempool handle (Priority '1')
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Fri, 6 Oct 2017 07:45:29 +0000 (13:15 +0530)]
eal: allow user to override default mempool driver
DPDK has support for both sw and hw mempool and
currently user is limited to use ring_mp_mc pool.
In case user want to use other pool handle,
need to update config RTE_MEMPOOL_OPS_DEFAULT, then
build and run with desired pool handle.
Introducing eal option to override default pool handle.
Now user can override the RTE_MEMPOOL_OPS_DEFAULT by passing
pool handle to eal `--mbuf-pool-ops-name=""`.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:46 +0000 (16:33 +0530)]
mem: honor IOVA mode in malloc virt2phy
Check iova mode and accordingly return phy addr.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:45 +0000 (16:33 +0530)]
mem: honor IOVA mode in virt2phy
Check iova mode and accordingly return phy addr.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:44 +0000 (16:33 +0530)]
vfio: honor IOVA mode before mapping
Check iova mode and accordingly map iova to pa or va.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:43 +0000 (16:33 +0530)]
eal: auto detect IOVA mode
iova autodetection depends on rte_bus_scan result. Result of bus scan will
have updated device_list and each device in that list has its '.kdev' state
updated. That kdrv state used to detect iova mapping mode for that device.
_device_parse() has dependency on rt_bus_scan so,
Below calls moved up in the eal initialization order:
- eal_option_device_parse
- rte_bus_scan
And based on the result of rte_bus_scan_iommu_class - select iova
mapping mode.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:42 +0000 (16:33 +0530)]
eal: introduce helper API for IOVA mode
Introducing rte_eal_iova_mode() helper API. This API
used by non-eal library for detecting iova mode.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:41 +0000 (16:33 +0530)]
bus: get IOMMU class
API(rte_bus_get_iommu_class) helps to automatically detect and select
appropriate iova mapping scheme for iommu capable device on that bus.
Algorithm for iova scheme selection for bus:
0. Iterate through bus_list.
1. Collect each bus iova mode value and update into 'mode' var.
2. Mode selection scheme is:
if mode == 0 then iova mode is _pa,
if mode == 1 then iova mode is _pa,
if mode == 2 then iova mode is _va,
if mode == 3 then iova mode ia _pa.
So mode !=2 will be default iova mode (_pa).
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:40 +0000 (16:33 +0530)]
pci: get IOMMU class on Linux
Get iommu class of PCI device on the bus and returns preferred iova
mapping mode for that bus.
Patch also introduces RTE_PCI_DRV_IOVA_AS_VA drv flag.
Flag used when driver needs to operate in iova=va mode.
Algorithm for iova scheme selection for PCI bus:
0. If no device bound then return with RTE_IOVA_DC mapping mode,
else goto 1).
1. Look for device attached to vfio kdrv and has .drv_flag set
to RTE_PCI_DRV_IOVA_AS_VA.
2. Look for any device attached to UIO class of driver.
3. Check for vfio-noiommu mode enabled.
If 2) & 3) is false and 1) is true then select
mapping scheme as RTE_IOVA_VA. Otherwise use default
mapping scheme (RTE_IOVA_PA).
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:39 +0000 (16:33 +0530)]
pci: get IOMMU class
Introducing rte_pci_get_iommu_class API which helps to get iommu class
of PCI device on the bus and returns preferred iova mapping mode for
PCI bus.
Patch also adds rte_pci_get_iommu_class definition for:
- bsdapp: api returns default iova mode.
- linuxapp: Has stub implementation, Followup patch has complete
implementation.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Santosh Shukla [Fri, 6 Oct 2017 11:03:38 +0000 (16:33 +0530)]
pci: export match function
Export rte_pci_match() function as it needed in the followup patch.
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Thomas Monjalon [Fri, 6 Oct 2017 16:08:29 +0000 (18:08 +0200)]
drivers/dpaa: remove duplicate includes
Fixes:
866c306ff03f ("mempool/dpaa: support NXP DPAA mempool")
Fixes:
37f9b54bd3cf ("net/dpaa: support Tx and Rx queue setup")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Adrien Mazarguil [Fri, 6 Oct 2017 12:32:33 +0000 (14:32 +0200)]
ethdev: fix port id type in flow API
As for the testpmd flow command which uses uint16_t since the beginning by
chance, switch to portid_t for consistency.
Fixes:
14ab03825b1d ("ethdev: increase port id range")
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Zhiyong Yang [Fri, 29 Sep 2017 07:17:27 +0000 (15:17 +0800)]
mbuf: increase port initialization value
In order to support more than 256 virtual ports, the field "port"
in rte_mbuf has been increased to 16 bits. The initialization/reset
value of the field "port" should be changed from 0xff to 0xffff
accordingly.
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Zhiyong Yang [Fri, 29 Sep 2017 07:17:24 +0000 (15:17 +0800)]
ethdev: increase port id range
Extend port_id definition from uint8_t to uint16_t in lib and drivers
data structures, specifically rte_eth_dev_data. Modify the APIs,
drivers and app using port_id at the same time.
Fix some checkpatch issues from the original code and remove some
unnecessary cast operations.
release_17_11 and deprecation docs have been updated in this patch.
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Zhiyong Yang [Fri, 29 Sep 2017 07:17:23 +0000 (15:17 +0800)]
net/bonding: remove old ABI
There are two bonding APIs using ABI versioning, and both have
port_id as parameter. Since we are already breaking ABI, no need
to keep older versions of APIs.
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Shreyansh Jain [Sat, 16 Sep 2017 10:52:41 +0000 (16:22 +0530)]
bus/fslmc: add devices in sorted order
Before this patch, the devices discovered from VFIO layer were
being added in the device list in the order received from directory
scan. This causes an issue in case devices are reordered.
This patch makes all the devices inserted in the device list in
sorted order according to their name.
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:40 +0000 (16:22 +0530)]
bus/fslmc: improve debug log messages
enable the printing of objects during debuging.
use RTE_LOG to avoid function name printing for object name.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:39 +0000 (16:22 +0530)]
net/dpaa2: improve debug messaging
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:38 +0000 (16:22 +0530)]
net/dpaa2: checksum support as per user config
Instead of enabling the RX checksum by default, make it
enable only with user ethernet configuration
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:37 +0000 (16:22 +0530)]
net/dpaa2: log that VLAN extend offload not supported
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:36 +0000 (16:22 +0530)]
net/dpaa2: fix the Tx handling of non HW pool bufs
The current code is sending 8 packet in each internal loop.
In some of the conditions, mbuf is being allocated or freed.
In case of error, the code is returning without taking care of
such buffer. It is better to send already prepared buffer and err
for the current failure only.
Fixes:
9e5f3e6d3658 ("net/dpaa2: handle non-hardware backed buffer pool")
Cc: stable@dpdk.org
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:35 +0000 (16:22 +0530)]
net/dpaa2: support extra stats
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:34 +0000 (16:22 +0530)]
net/dpaa2: support RSS hash update and get
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:33 +0000 (16:22 +0530)]
net/dpaa2: remove RSS restriction with num of queues
DPAA2 HW does not have such restrictions.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:32 +0000 (16:22 +0530)]
net/dpaa2: increase the dist param to 64 bit
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:31 +0000 (16:22 +0530)]
net/dpaa2: improve error and logs for flow distribution
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:30 +0000 (16:22 +0530)]
net/dpaa2: check physical link state on up cmd
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:29 +0000 (16:22 +0530)]
bus/fslmc: enable link status interrupt
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:28 +0000 (16:22 +0530)]
net/dpaa2: support link status event
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:27 +0000 (16:22 +0530)]
bus/fslmc: cleanup the dpaa2 interrupt support
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:26 +0000 (16:22 +0530)]
bus/fslmc: support check of dpbp presence
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:25 +0000 (16:22 +0530)]
net/dpaa2: support congestion overhead
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Ashish Jain [Sat, 16 Sep 2017 10:52:24 +0000 (16:22 +0530)]
bus/fslmc: support LX2160 platform
Signed-off-by: Ashish Jain <ashish.jain@nxp.com>
Ashish Jain [Sat, 16 Sep 2017 10:52:23 +0000 (16:22 +0530)]
config/dpaa2: change max lcores to 16
To support new LX2 series
Signed-off-by: Ashish Jain <ashish.jain@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:22 +0000 (16:22 +0530)]
bus/fslmc: clean the QBMAN support code
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:21 +0000 (16:22 +0530)]
bus/fslmc: cleanup compat file
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:20 +0000 (16:22 +0530)]
bus/fslmc: remove unused funcs and align names in QBMAN
name alignment for check command and result functions
putting them as separate functions instead of changing the original
functions.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Haiying Wang [Sat, 16 Sep 2017 10:52:19 +0000 (16:22 +0530)]
bus/fslmc: enhance the QBMAN CENA mode
Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Haiying Wang [Sat, 16 Sep 2017 10:52:18 +0000 (16:22 +0530)]
bus/fslmc: support up to 32 frames in one volatile dequeue
QMan5.0 supports up to 32 frames in one volatile dequeue
command. For the older Qman versions which only support
up to 16 frames, the highest bit in NUMF will be ignored.
Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Haiying Wang [Sat, 16 Sep 2017 10:52:17 +0000 (16:22 +0530)]
bus/fslmc: add QBMAN API to do enqueue with multiple frames
Clean it up and update the prototype.
Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Hemant Agrawal [Sat, 16 Sep 2017 10:52:16 +0000 (16:22 +0530)]
bus/fslmc: remove the export for QBMAN version
This func is not required to be used outside of the qbman driver.
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Haiying Wang [Sat, 16 Sep 2017 10:52:15 +0000 (16:22 +0530)]
bus/fslmc: replace word copy with memcpy in QBMAN
The word_copy is not as efficient as expected, so remove it from
this driver.
Signed-off-by: Haiying Wang <haiying.wang@nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Olivier Matz [Mon, 11 Sep 2017 15:13:33 +0000 (17:13 +0200)]
app/test-crypto-perf: fix compilation with -Og
The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:
CC cperf_test_verify.o
cperf_test_verify.c: In function ‘cperf_verify_op’:
cperf_test_verify.c:382:5: error: ‘auth’ may be used uninitialized
in this function
[-Werror=maybe-uninitialized]
if (auth == 1) {
^
cperf_test_verify.c:371:5: error: ‘cipher’ may be used uninitialized
in this function
[-Werror=maybe-uninitialized]
if (cipher == 1) {
^
cperf_test_verify.c:384:11: error: ‘auth_offset’ may be used
uninitialized in this function
[-Werror=maybe-uninitialized]
res += memcmp(data + auth_offset,
^~~~~~~~~~~~~~~~~~~~~~~~~~
vector->digest.data,
~~~~~~~~~~~~~~~~~~~~
options->digest_sz);
~~~~~~~~~~~~~~~~~~~
cperf_test_verify.c:377:11: error: ‘cipher_offset’ may be used
uninitialized in this function
[-Werror=maybe-uninitialized]
res += memcmp(data + cipher_offset,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
vector->plaintext.data,
~~~~~~~~~~~~~~~~~~~~~~~
options->test_buffer_size);
~~~~~~~~~~~~~~~~~~~~~~~~~~
There is no default case in the switch statement, so if options->op_type
is an unknown value, the function will use uninitialized values. Fix it
by adding a default.
Fixes:
f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Olivier Matz [Mon, 11 Sep 2017 15:13:32 +0000 (17:13 +0200)]
app/test-crypto-perf: fix memory leak
data is allocated but never freed.
Fixes:
f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Olivier Matz [Mon, 11 Sep 2017 15:13:30 +0000 (17:13 +0200)]
metrics: fix compilation with -Og
The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:
CC rte_metrics.o
rte_metrics.c: In function
‘rte_metrics_reg_names’: rte_metrics.c:153:22: error: ‘entry’
may be used uninitialized in this function
[-Werror=maybe-uninitialized]
entry->idx_next_set = 0;
~~~~~~~~~~~~~~~~~~~~^~~
This is a false positive, gcc is not able to see that we always go in
the loop at least once, initializing entry.
Fix the warning by initializing entry to NULL.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Mon, 11 Sep 2017 15:13:29 +0000 (17:13 +0200)]
cmdline: fix compilation with -Og
The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:
CC cmdline_parse.o
cmdline_parse.c: In function ‘match_inst’:
cmdline_parse.c:227:5: error: ‘token_p’ may be used uninitialized in
this function [-Werror=maybe-uninitialized]
if (token_p) {
^
This is a false positive, gcc is not able to see that we always go in
the loop at least once, initializing token_p.
Fix the warning by initializing token_p to NULL.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Mon, 11 Sep 2017 15:13:28 +0000 (17:13 +0200)]
uio: fix compilation with -Og
The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:
CC eal_pci_uio.o
eal_pci_uio.c: In function ‘pci_get_uio_de ’:
eal_pci_uio.c:221:9: error: ‘uio_num’ may be used uninitialized in
this function [-Werror=maybe-uninitialized]
return uio_num;
^~~~~~~
This is a false positive: gcc is not able to see that when e != NULL,
uio_num is always set. Fix the warning by initializing uio_num to -1,
and by the way, change the type to int.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Olivier Matz [Mon, 11 Sep 2017 15:13:25 +0000 (17:13 +0200)]
net/qede: fix compilation with -Og
The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:
CC qede_rxtx.o
qede_rxtx.c: In function ‘qede_start_queues’:
qede_rxtx.c:797:9: error: ‘rc’ may be used uninitialized in this
function [-Werror=maybe-uninitialized]
return rc;
^~
If there is no Rx or Tx queue, rc will not be initialized. Fix it
by initializing rc to -1.
Fixes:
4c4bdadfa9e7 ("net/qede: refactoring multi-queue implementation")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Harish Patil <harish.patil@cavium.com>
Olivier Matz [Mon, 11 Sep 2017 15:13:24 +0000 (17:13 +0200)]
net/bnxt: fix compilation with -Og
The compilation with gcc-6.3.0 and EXTRA_CFLAGS=-Og gives the following
error:
CC rte_pmd_bnxt.o
rte_pmd_bnxt.c: In function ‘rte_pmd_bnxt_set_all_queues_drop_en’:
rte_pmd_bnxt.c:116:6: error: ‘rc’ may be used uninitialized in this
function [-Werror=maybe-uninitialized]
int rc;
^~
This can happen if both bp->nr_vnics and bp->pf.active_vfs are 0.
Fix it by initializing rc to -EINVAL.
Fixes:
49947a13ba9e ("net/bnxt: support Tx loopback, set VF MAC and queues drop")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Yongseok Koh [Thu, 5 Oct 2017 21:37:29 +0000 (14:37 -0700)]
net/mlx5: fix overflow of Rx SW ring
If vectorized Rx burst is short of mbufs in replenishment, Rx SW ring can
overflow as the Rx burst handles 4 packets in a loop. This is because the
function fills SW ring and its mbufs first and checks validity of
each completion later. So, there should be some buffer slots at the tail of
the ring to protect mbufs which are already owned by application.
Fixes:
6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")
Cc: stable@dpdk.org
Reported-by: Martin Weiser <martin.weiser@allegro-packets.com>
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Matan Azrad [Tue, 3 Oct 2017 14:55:56 +0000 (14:55 +0000)]
net/tap: allow RSS flow action
One of the main identified use cases for the tap PMD is to be used in
combination with the fail-safe PMD as a fallback for a physical device.
Fail-safe is very strict about making sure its current configuration is
properly applied to all slave devices, they get rejected otherwise in
order to maintain a consistent state.
The problem is that tap's RSS support is currently limited to the
default (non-Toeplitz) balancing performed by the kernel on all Rx
queues. While proper RSS support emulation in the tap PMD is a work in
progress, the lack of rte_flow counterpart prevents validation of the
above use case in the meantime.
Given that unlike most PMDs, tap is more about convenience than
performance, support for the RSS action can be temporarily faked with
a minimum amount of code and mostly correct behavior by treating it
like a QUEUE action. Traffic is directed to the first queue of the set.
Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Pascal Mazon <pascal.mazon@6wind.com>