dpdk.git
7 years agoevent/dpaa2: support event Rx adapter
Nipun Gupta [Mon, 23 Oct 2017 12:37:05 +0000 (18:07 +0530)]
event/dpaa2: support event Rx adapter

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Reviewed-by: Nikhil Rao <nikhil.rao@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agodrivers: add net as dependency for event drivers
Nipun Gupta [Mon, 23 Oct 2017 12:37:04 +0000 (18:07 +0530)]
drivers: add net as dependency for event drivers

With the introduction of eventdev-ethdev RX adapter support in event
device, some of the event device will have dependency on their respective
ethernet drivers. This patch adds the net as a dependency for eventdevs.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agonet/dpaa2: add API for event Rx adapter
Nipun Gupta [Mon, 23 Oct 2017 12:37:03 +0000 (18:07 +0530)]
net/dpaa2: add API for event Rx adapter

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoevent/dpaa2: add queue parameter in processing callback
Nipun Gupta [Mon, 23 Oct 2017 12:37:02 +0000 (18:07 +0530)]
event/dpaa2: add queue parameter in processing callback

For event dequeues for ethernet queues, a dpaa2_queue structure is
required to get the configuration for that ethernet queue. Based on
this configuration the rte_event is to be filled at the ingress side.

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoeventdev: add service id get to map file
Nikhil Rao [Tue, 17 Oct 2017 17:47:45 +0000 (23:17 +0530)]
eventdev: add service id get to map file

Add rte_event_eth_rx_adapter_service_id_get to map file. Also order
function names alphabetically.

Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation")

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
7 years agoevent/sw: fix get of single xstat value
Harry van Haaren [Tue, 10 Oct 2017 15:47:57 +0000 (16:47 +0100)]
event/sw: fix get of single xstat value

This commit allows the xstats_get() API to return just a single
value based on its ID. Previously, the "ret_n_lt_stats" value
set to 1 ensured a check to take place that the array was larger
than the available xstats.

The xstats_get() API allows retriving of individual stats - hence
this check should be removed - by setting "ret_n_lt_stats" to zero.

Fixes: c1ad03df7ad5 ("event/sw: support xstats")

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
7 years agoevent/sw: allow forward and release when out of credits
Gage Eads [Fri, 8 Sep 2017 18:07:52 +0000 (13:07 -0500)]
event/sw: allow forward and release when out of credits

When forwarding or releasing events, the operation would fail if the port
has 0 inflight credits and cannot acquire more, or the inflight count
exceeds the port's new event threshold.

This patch fixes that by counting the number of new events in the burst,
and applying the credit and new event threshold checks accordingly.

Signed-off-by: Gage Eads <gage.eads@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
7 years agoeventdev: use new event enqueue in Rx adapter
Pavan Nikhilesh [Thu, 12 Oct 2017 18:45:53 +0000 (00:15 +0530)]
eventdev: use new event enqueue in Rx adapter

When event Rx adapter uses software based packet transfer, event op is
always RTE_EVENT_OP_NEW.
By using rte_event_enqueue_new_burst API the underlying event devices
driver can use it as a hint to optimize enqueue operation if possible.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Reviewed-by: Nikhil Rao <nikhil.rao@intel.com>
7 years agobus: skip useless iterations in find function
Gaetan Rivet [Tue, 29 Aug 2017 16:19:48 +0000 (18:19 +0200)]
bus: skip useless iterations in find function

The starting point is known. The iterator can be directly set to it.

The function rte_bus_find can easily be used with a comparison function
always returning True. This would make it a regular bus iterator.

Users doing so would however accomplish such iteration in

   O(N * N/2) = O(N^2)

Which can be avoided.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoexamples/vhost_scsi: fix product id string termination
Jacek Piasecki [Wed, 25 Oct 2017 10:07:18 +0000 (12:07 +0200)]
examples/vhost_scsi: fix product id string termination

Use snprintf instead strncpy to get safe null string termination.
There was possible to get not terminated string after strncpy operation.

Coverity issue: 158631
Fixes: db75c7af19bb ("examples/vhost_scsi: introduce a new sample app")
Cc: stable@dpdk.org
Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
7 years agoexamples/kni: check PCI info not NULL before reading
Tomasz Duszynski [Mon, 16 Oct 2017 11:45:47 +0000 (13:45 +0200)]
examples/kni: check PCI info not NULL before reading

Since virtual devices, i.e mrvl net pmd, do not touch pci_dev
dereferencing it will cause segmentation fault as by default
it's set to NULL in rte_eth_dev_info_get().

Signed-off-by: Tomasz Duszynski <tdu@semihalf.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agoexamples/qos_sched: fix uninitialized config
Jasvinder Singh [Tue, 24 Oct 2017 09:09:57 +0000 (10:09 +0100)]
examples/qos_sched: fix uninitialized config

Fix problem with uninitialized rx/tx deferred_start flags of the struct
rte_eth_rxconf/txconf by initializing with 0 value (deferred start of
the rx/tx queues is turned off). This setting allows device rx/tx
queues to start with rte_eth_dev_start().

Coverity issue: 194999, 195009
Fixes: de3cfa2c9823 ("sched: initial import")
Cc: stable@dpdk.org
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agoexamples/vm_power_manager: add turbo commands to help text
David Hunt [Thu, 19 Oct 2017 09:34:25 +0000 (10:34 +0100)]
examples/vm_power_manager: add turbo commands to help text

Fixes: d191f0853378 ("examples/vm_power_manager: add per-core turbo CLI")

Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Acked-by: David Hunt <david.hunt@intel.com>
7 years agoexamples/vm_power_manager: fix response time
David Hunt [Mon, 23 Oct 2017 15:21:12 +0000 (16:21 +0100)]
examples/vm_power_manager: fix response time

A delay in the loop waiting for the virtio-serial commands in the
vm_power_manager app was causing a lag in the response time. This was
set to 1 second, and has now been changed to 1ms.

Fixes: f14791a8126e ("examples/vm_power_mgr: add policy to channels")

Signed-off-by: David Hunt <david.hunt@intel.com>
7 years agoigb_uio: remove device reset in open
Ferruh Yigit [Fri, 20 Oct 2017 16:55:11 +0000 (17:55 +0100)]
igb_uio: remove device reset in open

Remove device reset during application start, the reset for application
exit still there.

Reset in open removed because of following comments:
1- Device reset not completed when VF driver loaded, which cause VF PMD
   initialization error.
   Adding delay can solve the issue but will increase driver load time.

2- Reset will be issues all devices unconditionally, not very efficient
   way.

Fixes: b58eedfc7dd5 ("igb_uio: issue FLR during open and release of device file")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Harish Patil <harish.patil@cavium.com>
Tested-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Tested-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agoexamples/service_cores: add new sample application
Harry van Haaren [Thu, 19 Oct 2017 10:31:11 +0000 (11:31 +0100)]
examples/service_cores: add new sample application

This commit adds a new sample app, which showcases the value
of running services. In particular it allows the application
to dynamically schedule services to service-cores.

The sample app itself registers a number of dummy services,
and applies different profiles to them at runtime. Note that
this sample application does not forward any traffic - it
demonstrates advanced usage of the service cores API.

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Acked-by: Gage Eads <gage.eads@intel.com>
7 years agotest: add flow classify unit tests
Bernard Iremonger [Tue, 24 Oct 2017 17:28:03 +0000 (18:28 +0100)]
test: add flow classify unit tests

Add flow_classify_autotest program.

Set up IPv4 ACL field definitions.
Create table_acl for use by librte_flow_classify API's.
Create an mbuf pool for use by rte_flow_classify_query.

For each of the librte_flow_classify API's:
test with invalid parameters
test with invalid patterns
test with invalid actions
test with valid parameters

Initialise ipv4 udp traffic for use by the udp test for
rte_flow_classifier_run.

Initialise ipv4 tcp traffic for use by the tcp test for
rte_flow_classifier_run.

Initialise ipv4 sctp traffic for use by the sctp test for
rte_flow_classifier_run.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agotest: add packet burst generator functions
Bernard Iremonger [Tue, 24 Oct 2017 17:28:02 +0000 (18:28 +0100)]
test: add packet burst generator functions

add initialize_tcp_header function
add initialize_stcp_header function
add initialize_ipv4_header_proto function
add generate_packet_burst_proto function

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agoexamples/flow_classify: add sample application
Bernard Iremonger [Tue, 24 Oct 2017 17:28:01 +0000 (18:28 +0100)]
examples/flow_classify: add sample application

The flow_classify sample application exercises the following
librte_flow_classify API's:

rte_flow_classifier_create
rte_flow_classifier_query
rte_flow_classify_table_create
rte_flow_classify_table_entry_add
rte_flow_classify_table_entry_delete

It sets up the IPv4 ACL field definitions.
It creates table_acl and adds and deletes rules using the
librte_table API.

It uses a file of IPv4 five tuple rules for input.

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agoflow_classify: introduce flow classify library
Ferruh Yigit [Tue, 24 Oct 2017 17:28:00 +0000 (18:28 +0100)]
flow_classify: introduce flow classify library

The following APIs's are implemented in the
librte_flow_classify library:

rte_flow_classifier_create
rte_flow_classifier_free
rte_flow_classifier_query
rte_flow_classify_table_create
rte_flow_classify_table_entry_add
rte_flow_classify_table_entry_delete

The following librte_table API's are used:
f_create to create a table.
f_add to add a rule to the table.
f_del to delete a rule from the table.
f_free to free a table
f_lookup to match packets with the rules.

The library supports counting of IPv4 five tupple packets only,
ie IPv4 UDP, TCP and SCTP packets.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
7 years agolpm6: set errno on creation error
Igor Ryzhov [Tue, 24 Oct 2017 13:29:45 +0000 (16:29 +0300)]
lpm6: set errno on creation error

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agolpm: set errno on creation error
Igor Ryzhov [Tue, 24 Oct 2017 13:28:30 +0000 (16:28 +0300)]
lpm: set errno on creation error

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agonet/virtio: fix Tx packet length stats
Zhiyong Yang [Tue, 24 Oct 2017 03:06:14 +0000 (11:06 +0800)]
net/virtio: fix Tx packet length stats

In the function virtqueue_enqueue_xmit(), when can_push is true,
vtnet_hdr_size is added to pkt_len by calling rte_pktmbuf_prepend.
which is wrong for pkt stats, virtio header length should be subtracted
before calling stats function.

Fixes: 58169a9c8153 ("net/virtio: support Tx checksum offload")
Cc: stable@dpdk.org
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agovhost: fix dequeue offload support
Tiwei Bie [Tue, 24 Oct 2017 03:12:30 +0000 (11:12 +0800)]
vhost: fix dequeue offload support

When offload is enabled, vhost needs to access the first mbuf
to get the packet info, e.g. TCP header. So we couldn't delay
the data copy in this case.

Fixes: e5c494a7a22b ("vhost: batch small guest memory copies")

Reported-by: Lei Yao <lei.a.yao@intel.com>
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agonet/virtio: check error on setting non block flag
Sebastian Basierski [Tue, 24 Oct 2017 08:17:38 +0000 (10:17 +0200)]
net/virtio: check error on setting non block flag

Report an error message if the flag O_NONBLOCK setting fails,
then return from function.

Coverity issue: 143439
Fixes: ef53b6030039 ("net/virtio-user: support LSC")
Cc: stable@dpdk.org
Signed-off-by: Sebastian Basierski <sebastianx.basierski@intel.com>
Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agodoc: add virtio LSC note
Zhiyong Yang [Mon, 16 Oct 2017 05:41:21 +0000 (13:41 +0800)]
doc: add virtio LSC note

Virtio PMD already has supported link status change(lsc), but VM which
must be created by qemu 2.7.0 and above can support it when vhost
user disconnects, since the capability to detect vhost user disconnection
is introduced in qemu 2.7.0. The patch updates doc to let user know that.

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agonet/virtio: flush Rx queues on start
Tiwei Bie [Fri, 20 Oct 2017 02:09:28 +0000 (10:09 +0800)]
net/virtio: flush Rx queues on start

After starting a device, the driver shouldn't deliver the
packets that already existed before the device is started
to applications. Otherwise it will lead to incorrect packet
collection for port state. This patch fixes this issue by
flushing the Rx queues when starting the device.

Fixes: a85786dc816f ("virtio: fix states handling during initialization")
Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agovhost: fix vring addresses not translated
Maxime Coquelin [Mon, 16 Oct 2017 14:56:27 +0000 (16:56 +0200)]
vhost: fix vring addresses not translated

Commit 3ea7052f4b1b ("vhost: postpone rings addresses translation")
moves rings addresses translation at either vring kick or enable
time, depending on whether protocol features are enabled or not.
This is done not interpret ring information as long as the vring
is not fully initialized.

The problem is that with old QEMU versions, like v2.5, the ring
is enabled before addresses are sent, so addresses are never
translated.

This patch fixes the issue by doing the translation in
VHOST_USER_SET_VRING_ADDR handling if ring is already enabled.

Fixes: 3ea7052f4b1b ("vhost: postpone rings addresses translation")

Reported-by: Lei Yao <lei.a.yao@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
7 years agotable: update library version
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:53 +0000 (16:03 +0100)]
table: update library version

Updated map file to current API and bumped up ABI version.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: update copyright
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:52 +0000 (16:03 +0100)]
table: update copyright

Removed incorrect white spaces and updated year in copyrigh headers.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: apply cosmetic enhancements to API
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:51 +0000 (16:03 +0100)]
table: apply cosmetic enhancements to API

Consolidated hash tables into functional groups.
Minor changes in comments.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agoapps: add mask-based hash functions
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:50 +0000 (16:03 +0100)]
apps: add mask-based hash functions

Introduce mask-based hash functions in hash_func.h.

Propagate their usage in test/test, test/test-pipeline and
examples/ip_pipeline.

Remove the non-mask-based hash function prototype from API (which
was previously used as build workaround).

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework cuckoo hash table
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:49 +0000 (16:03 +0100)]
table: rework cuckoo hash table

Rework for the cuckoo hash table to use the unified parameter
structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework 32-byte key hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:48 +0000 (16:03 +0100)]
table: rework 32-byte key hash tables

Rework for the 32-byte key hash tables (both the extendible
bucket and LRU)to use the mask-based hash function and the
unified parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework 16-byte key hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:47 +0000 (16:03 +0100)]
table: rework 16-byte key hash tables

Rework for the 16-byte key hash tables (both the extendible
bucket and LRU)to use the mask-based hash function and the
unified parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework 8-byte key hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:46 +0000 (16:03 +0100)]
table: rework 8-byte key hash tables

Rework for the 8-byte key hash tables (both the extendible
bucket and LRU)to use the mask-based hash function and the
unified parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework variable size key lru hash table
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:45 +0000 (16:03 +0100)]
table: rework variable size key lru hash table

Rework for the variable size key LRU hash table to use the
mask-based hash function and the unified parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rework variable size key ext hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:44 +0000 (16:03 +0100)]
table: rework variable size key ext hash tables

Rework for the variable size key extendible bucket (EXT) hash
table to use the mask-based hash function and the unified
parameter structure.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: add unified params struct and mask-based hash func
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:43 +0000 (16:03 +0100)]
table: add unified params struct and mask-based hash func

Add unified parameter structure for all hash tables in librte_table.

Add mask-based hash function prototype, which is input parameter for
all hash tables.

Renamed the non-mask-based hash function prototype and all the calls
to it (to be removed later).

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: rename cuckoo hash table ops
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:42 +0000 (16:03 +0100)]
table: rename cuckoo hash table ops

The dosig particle is eliminated from the cuckoo hash ops name.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: remove deprecated variable size key lru hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:41 +0000 (16:03 +0100)]
table: remove deprecated variable size key lru hash tables

The non-dosig version of the variable size key Least Recently Used
(LRU) hash tables are removed. The remaining hash tables are renamed
to eliminate the dosig particle from their name.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: remove deprecated variable size key ext hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:40 +0000 (16:03 +0100)]
table: remove deprecated variable size key ext hash tables

The non-dosig version of the variable size key extendible bucket
hash tables are removed. The remaining hash tables are renamed to
eliminate the dosig particle from their name.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: remove deprecated 16-byte key hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:39 +0000 (16:03 +0100)]
table: remove deprecated 16-byte key hash tables

The non-dosig version of the 16-byte key hash tables (both extendable
bucket and LRU) are removed. The remaining hash tables are renamed to
eliminate the dosig particle from their name.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agotable: remove deprecated 8-byte key hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:38 +0000 (16:03 +0100)]
table: remove deprecated 8-byte key hash tables

The non-dosig version of the 8-byte key hash tables (both extendable
bucket and LRU) are removed. The remaining hash tables are renamed to
eliminate the dosig particle from their name.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agoapps: remove calls to deprecated hash tables
Cristian Dumitrescu [Wed, 18 Oct 2017 15:03:37 +0000 (16:03 +0100)]
apps: remove calls to deprecated hash tables

Removing calls to hash tables that are going to be removed later.

The calls are removed from test/test, test/test-pipeline,
examples/ip_pipeline.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agomk: do not generate LDLIBS from directory dependencies
Olivier Matz [Thu, 12 Oct 2017 16:04:21 +0000 (18:04 +0200)]
mk: do not generate LDLIBS from directory dependencies

The list of libraries in LDLIBS was generated from the DEPDIRS-xyz
variable. This is valid when the subdirectory name match the library
name, but it's not always the case, especially for PMDs.

The patches removes this feature and explicitly adds the proper
libraries in LDLIBS.

Some DEPDIRS-xyz variables become useless, remove them.

Reported-by: Gage Eads <gage.eads@intel.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Gage Eads <gage.eads@intel.com>
7 years agomempool/octeontx: fix dependency
Olivier Matz [Thu, 12 Oct 2017 16:04:20 +0000 (18:04 +0200)]
mempool/octeontx: fix dependency

The syntax "DEPDIRS-y = ..." is deprecated since
commit feb9f680cd2c ("mk: optimize directory dependencies").

Replace it with the new style.

Fixes: 8700239f7767 ("mempool/octeontx: add build and log infrastructure")

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agocrypto/dpaa2_sec: remove uneffective dependency
Olivier Matz [Thu, 12 Oct 2017 16:04:19 +0000 (18:04 +0200)]
crypto/dpaa2_sec: remove uneffective dependency

The syntax "DEPDIRS-y = ..." is deprecated since
commit feb9f680cd2c ("mk: optimize directory dependencies").

Remove this uneffective lines.

The effective dependencies are already declared in
drivers/crypto/Makefile, so there is nothing to add.

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agoeal: use a single version map file
Bruce Richardson [Thu, 19 Oct 2017 16:36:29 +0000 (17:36 +0100)]
eal: use a single version map file

Since the functions exported by DPDK EAL on all OS's should be
identical, we should not need separate function version files for each
OS. Therefore move existing version files to the top-level EAL
directory.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoeal: mark internal interrupts file as such to doxygen
Bruce Richardson [Thu, 19 Oct 2017 16:36:28 +0000 (17:36 +0100)]
eal: mark internal interrupts file as such to doxygen

Put a file-level comment on rte_eal_interrupts.h to mark it as an
internal only header.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoeal: merge bsdapp and linuxapp interrupt headers
Bruce Richardson [Thu, 19 Oct 2017 16:36:27 +0000 (17:36 +0100)]
eal: merge bsdapp and linuxapp interrupt headers

The linuxapp and bsdapp interrupt header files are now identical, so
merge them into a common file in common/include.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoeal/bsd: fix missing interrupt stub functions
Bruce Richardson [Thu, 19 Oct 2017 16:36:26 +0000 (17:36 +0100)]
eal/bsd: fix missing interrupt stub functions

A number of interrupt functions only existed on Linux. Adding in stubs
for these functions corrects this omission, and allows the map files for
both Linux and FreeBSD to be identical.

Fixes: 9efe9c6cdcac ("eal/linux: add epoll wrappers")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoeal/bsd: align interrupt header file with Linux version
Bruce Richardson [Thu, 19 Oct 2017 16:36:25 +0000 (17:36 +0100)]
eal/bsd: align interrupt header file with Linux version

The bsdapp-specific rte_interrupts.h file does not need to be different
from the linuxapp one, as there is nothing Linux specific in the APIs or
data structures. This will then allow us to merge the files in a common
location to avoid duplication.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agoeal: avoid error for non-existent default PMD path
Bruce Richardson [Thu, 19 Oct 2017 08:49:12 +0000 (09:49 +0100)]
eal: avoid error for non-existent default PMD path

If the default location for the PMD .so files does not exist, it should
not be treated as a fatal error condition like an incorrect path on the
command line. Therefore check that the path exists and is a directory
before adding it to the list of paths to check for PMDs.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agolog: remove deprecated functions
Olivier Matz [Mon, 23 Oct 2017 09:56:07 +0000 (11:56 +0200)]
log: remove deprecated functions

Remove rte_set_log_level(), rte_get_log_level(),
rte_set_log_type(), and rte_get_log_type().

Also update librte_eal.so version in docuementation.
The LIBABIVER variable in eal has already been modified in
commit f26ab687a74f ("eal: remove Xen dom0 support").

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
7 years agovfio: fix secondary process initialization
Anatoly Burakov [Fri, 20 Oct 2017 13:23:52 +0000 (14:23 +0100)]
vfio: fix secondary process initialization

When getting group fd from primary process, secondary wasn't storing
the fd anywhere, leading to a (harmless) error message in EAL logs,
and (not so harmless) potential problems when hot-unplugging devices
managed by VFIO in a secondary process.

Fix it by actually storing the group fd whenever we get a valid one
from the secondary process.

Fixes: 94c0776b1bad ("vfio: support hotplug")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
7 years agovfio: enable independently of PCI bus
Hemant Agrawal [Wed, 11 Oct 2017 06:42:18 +0000 (12:12 +0530)]
vfio: enable independently of PCI bus

VFIO may be used by buses other than PCI. This patch enables
the VFIO on the basis of vfio root presence.

Since vfio_enable should be called only once, pci_vfio_enable
is also removed.

A debug print is added in case vfio_pci module is not present.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
7 years agodoc: fix highlight of bumped libs in release notes
Thomas Monjalon [Sat, 14 Oct 2017 00:05:37 +0000 (02:05 +0200)]
doc: fix highlight of bumped libs in release notes

The libraries which have their ABI version increased in this release
must be prepended with a + sign to make them appear clearly.

Fixes: f8244c6399d9 ("ethdev: increase port id range")
Fixes: ec51443cc99a ("gso: add Generic Segmentation Offload API framework")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agodoc: group classification libraries in doxygen index
Thomas Monjalon [Fri, 20 Oct 2017 10:26:30 +0000 (12:26 +0200)]
doc: group classification libraries in doxygen index

The libraries reorder, distributor, EFD, ACL and member seem
to belong to the same category.
The previous categories "layers" and "containers" do not fit well.
It is proposed to group them under "classification" category.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agomempool/octeontx: move mbox from event to mempool
Santosh Shukla [Mon, 16 Oct 2017 13:42:46 +0000 (13:42 +0000)]
mempool/octeontx: move mbox from event to mempool

Octeontx mempool pmd need mailbox for pool setup.
That mailbox was defined at drivers/event/octeontx.
So mempool has dependency on event/octeontx driver and
commit:8700239f7767 has added make rule which makes sure event/*
get build before mempool, but this rule introduces
cyclic dependency and may create problem to future
feature addition in drivers/Makefile.

Same problem noticed and reported in below thread:
http://dpdk.org/ml/archives/dev/2017-October/079187.html

The patch solves problem by moving mbox definition from
drivers/event/octeontx to drivers/mempool/octeontx.
Moving mbox files involves below changes:

* Renamed ssovf_mbox.[ch] --> octeontx_mbox.[ch]
* Renamed ssovf_probe.c  --> octeontx_ssovf.c
* Introduced pool logger file.
* Moved API from rte_pmd_octeontx_ssovf_version.map to
  rte_mempool_octeontx_version.map.
* Respective Makefile changes done in
  drivers/event/octeontx/Makefile and drivers/mempool/octeontx/Makefile.

Fixes: 8700239f7767 ("mempool/octeontx: add build and log infrastructure")

Reported-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Tested-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Reviewed-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
7 years agomempool/octeontx: remove dead code
Santosh Shukla [Fri, 20 Oct 2017 15:39:58 +0000 (15:39 +0000)]
mempool/octeontx: remove dead code

Coverity Issue: 195000
Fixes: 02fd6c744350 ("mempool/octeontx: support allocation")

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agoapp/testpmd: add commands for TM nodes and hierarchy commit
Jasvinder Singh [Mon, 16 Oct 2017 18:55:10 +0000 (19:55 +0100)]
app/testpmd: add commands for TM nodes and hierarchy commit

Add following CLIs in testpmd application for device traffic management;
- commands to add TM hierarchy nodes (leaf and nonleaf).
- command for runtime update of node weight.
- command to commit the TM hierarchy

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agoapp/testpmd: add commands for shaper and wred profiles
Jasvinder Singh [Mon, 16 Oct 2017 18:55:09 +0000 (19:55 +0100)]
app/testpmd: add commands for shaper and wred profiles

Add following CLIs in testpmd application for device traffic management;
- commands to add/del shaper profile for TM hieraqrchy nodes.
- commands to add/update shared shapers
- commands to add/del WRED profiles for TM hiearchy leaf nodes.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agoapp/testpmd: add commands for TM capability and stats
Jasvinder Singh [Mon, 16 Oct 2017 18:55:08 +0000 (19:55 +0100)]
app/testpmd: add commands for TM capability and stats

Add following CLIs to testpmd application for device traffic management;
- commands to display TM capability information.
  (per port, per hierarchy level and per hierarchy node)
- command to display hiearchy node type
- stats collection

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Tested-by: Yulong Pei <yulong.pei@intel.com>
Reviewed-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
7 years agoapp/testpmd: add commands traffic metering and policing
Cristian Dumitrescu [Fri, 13 Oct 2017 12:22:18 +0000 (13:22 +0100)]
app/testpmd: add commands traffic metering and policing

Add CLI commands to exercise the ethdev Traffic Metering and Policing
(MTR) API.

Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Reviewed-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agodoc: add ethdev traffic metering and policing guide
Cristian Dumitrescu [Fri, 13 Oct 2017 12:22:17 +0000 (13:22 +0100)]
doc: add ethdev traffic metering and policing guide

Add new section in the Programmer Guide for the ethdev traffic metering
and policing (MTR) API.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agoethdev: add API for traffic metering and policing
Cristian Dumitrescu [Fri, 13 Oct 2017 12:22:16 +0000 (13:22 +0100)]
ethdev: add API for traffic metering and policing

This patch introduces new ethdev generic API for Traffic Metering and
Policing (MTR), which is yet another standard RX offload for Ethernet
devices.

Similar to rte_flow and rte_tm APIs, the configuration of MTR objects is
done in their own namespace (rte_mtr) within the librte_ether library.

Main features:
1. Traffic metering: determine the color for the current packet (green,
   yellow, red) based on history maintained by the MTR object. Supported
   algorithms: srTCM (RFC 2697), trTCM (RFC 2698 and RFC 4115).
2. Policing (per meter output color actions): re-color the packet (keep
   or change the meter output color) or drop the packet.
3. Statistics
4. Capability API

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agoethdev: add operation to get MTR ops
Cristian Dumitrescu [Fri, 13 Oct 2017 12:22:15 +0000 (13:22 +0100)]
ethdev: add operation to get MTR ops

Following similar approach as rte_flow and rte_tm for modularity reasons,
the ops for the new rte_mtr API are retrieved through a new eth_dev_ops
function.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
7 years agoethdev: add flow action for metering and policing
Cristian Dumitrescu [Fri, 13 Oct 2017 12:22:14 +0000 (13:22 +0100)]
ethdev: add flow action for metering and policing

Metering and policing action typically sits on top of flow classification,
which is why MTR objects are enabled through a newly introduced flow
action.

The configuration of MTR objects is done in their own namespace (rte_mtr)
within the librte_ether library. The MTR object is hooked into ethdev RX
processing path using the "meter" flow action.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agoigb_uio: fix build with kernel <= 3.17
Jingjing Wu [Mon, 16 Oct 2017 01:58:13 +0000 (09:58 +0800)]
igb_uio: fix build with kernel <= 3.17

Compile fails when kernel version is <= 3.17 with error:
"dereferencing pointer to incomplete type". This is because struct
uio_device definition is not exposed in kernel earlier than 3.17.

This patch fixes it by using pointer of rte_uio_pci_dev as
dev_id instead of uio_device for irq device handler.

Fixes: 5f6ff30dc507 ("igb_uio: fix interrupt enablement after FLR in VM")
Cc: stable@dpdk.org
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
7 years agoversion: 17.11-rc1
Thomas Monjalon [Fri, 13 Oct 2017 23:29:59 +0000 (01:29 +0200)]
version: 17.11-rc1

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
7 years agoexamples/performance-thread: fix out-of-bounds tls array
Slawomir Mrozowicz [Wed, 20 Sep 2017 08:20:24 +0000 (10:20 +0200)]
examples/performance-thread: fix out-of-bounds tls array

Overrunning array per_lcore_this_sched->current_lthread->tls->data of
1024 8-byte elements at element index 1024 using index k.
Fixed by correct check k condition.

Coverity issue: 143462, 143463
Fixes: 116819b9ed0d ("examples/performance-thread: add lthread subsystem")

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Acked-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
7 years agoexamples/performance-thread: fix out-of-bounds sched array
Slawomir Mrozowicz [Wed, 20 Sep 2017 07:47:34 +0000 (09:47 +0200)]
examples/performance-thread: fix out-of-bounds sched array

Overrunning array schedcore of 128 8-byte elements at element index 128
using index core id.
Fixed by correct check index lcoreid condition and
change type of lcoreid to unsigned.

Coverity issue: 143459, 143461
Fixes: 116819b9ed0d ("examples/performance-thread: add lthread subsystem")

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Acked-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
7 years agoexamples/performance-thread: check thread creation
Jacek Piasecki [Thu, 12 Oct 2017 11:44:44 +0000 (13:44 +0200)]
examples/performance-thread: check thread creation

There was a call for thread create function without result check.
Added result check and message printout after failure.

Coverity issue: 143441
Fixes: 433ba6228f9a ("examples/performance-thread: add pthread_shim app")

Signed-off-by: Jacek Piasecki <jacekx.piasecki@intel.com>
Acked-by: Michal Jastrzebski <michalx.k.jastrzebski@intel.com>
7 years agoexamples/ip_reassembly: use pktmbuf to create mempool
Ashish Jain [Thu, 12 Oct 2017 13:25:17 +0000 (18:55 +0530)]
examples/ip_reassembly: use pktmbuf to create mempool

Use of rte_mempool_create() with the helper provided in
librte_mbuf: rte_pktmbuf_pool_create().
This is the preferred way to create a mbuf pool else
it may not work on implementation using the HW buffer pool

Signed-off-by: Ashish Jain <ashish.jain@nxp.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
7 years agoexamples/l3fwd: optimize packet processing on powerpc
Gowrishankar Muthukrishnan [Thu, 21 Sep 2017 10:05:24 +0000 (15:35 +0530)]
examples/l3fwd: optimize packet processing on powerpc

This patch adds altivec support for lpm packet processing in powerpc.

Signed-off-by: Gowrishankar Muthukrishnan <gowrishankar.m@linux.vnet.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
7 years agoexamples/l3fwd-power: remove dead code
Tonghao Zhang [Fri, 13 Oct 2017 17:20:35 +0000 (10:20 -0700)]
examples/l3fwd-power: remove dead code

Signed-off-by: Tonghao Zhang <nic@opencloud.tech>
7 years agoexamples/l3fwd-acl: check fseek return
Kuba Kozak [Tue, 3 Oct 2017 11:48:02 +0000 (13:48 +0200)]
examples/l3fwd-acl: check fseek return

Add return value check and error handling for fseek call.

Coverity issue: 143435
Fixes: 361b2e9559fc ("acl: new sample l3fwd-acl")

Signed-off-by: Kuba Kozak <kubax.kozak@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
7 years agoexamples/l2fwd_fork: fix message pool init
Xueming Li [Fri, 15 Sep 2017 15:37:21 +0000 (23:37 +0800)]
examples/l2fwd_fork: fix message pool init

Some invalid callback functions are provided to rte_pktmbuf_pool_init()
without their associated data causing a segmentation fault when the
function tries to use it. In this example, those callbacks are not
necessary, they can be safely replaced by NULL pointers.

Fixes: 95e8005a56e8 ("examples/l2fwd_fork: new app")
Cc: stable@dpdk.org
Signed-off-by: Xueming Li <xuemingl@mellanox.com>
7 years agoexamples/l2fwd-cat: fix build with PQOS 1.4
Vladimir Kuramshin [Tue, 19 Sep 2017 09:40:44 +0000 (12:40 +0300)]
examples/l2fwd-cat: fix build with PQOS 1.4

Current version is compatible with PQOS version 1.3
but not compatible with higher versions. This change
makes l2fwd-cat example compatible with versions since 1.4

Signed-off-by: Vladimir Kuramshin <v.kuramshin@samsung.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
7 years agokni: fix build on SLE12 SP3
Nirmoy Das [Mon, 9 Oct 2017 22:04:09 +0000 (23:04 +0100)]
kni: fix build on SLE12 SP3

build error:
build/lib/librte_eal/linuxapp/kni/kni_net.c:215:5: error:
‘struct net_device’ has no member named ‘trans_start’
  dev->trans_start = jiffies;

Signed-off-by: Nirmoy Das <ndas@suse.de>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agodoc: add arm64 to Linux guide
Brian Brooks [Wed, 6 Sep 2017 15:55:03 +0000 (10:55 -0500)]
doc: add arm64 to Linux guide

Signed-off-by: Brian Brooks <brian.brooks@arm.com>
Reviewed-by: Song Zhu <song.zhu@arm.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: remove fm10k features description for SSE
Thomas Monjalon [Thu, 12 Oct 2017 01:26:44 +0000 (03:26 +0200)]
doc: remove fm10k features description for SSE

The features described for scalar fm10k and its vector implementations
are the same.
No need to distinguish them in features description.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agodoc: add note on hardware support deprecation
Bruce Richardson [Mon, 18 Sep 2017 13:59:55 +0000 (14:59 +0100)]
doc: add note on hardware support deprecation

Following agreement at the DPDK Technical Board meeting [1], the policy
that hardware support deprecation should be treated as though it were an
ABI break needs to be documented in the contributors guide.

[1] http://dpdk.org/ml/archives/dev/2017-September/074613.html

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agomaintainers: sort crypto drivers list
Pablo de Lara [Fri, 13 Oct 2017 13:52:08 +0000 (14:52 +0100)]
maintainers: sort crypto drivers list

In order to improve consistency, the list of crypto
drivers are sorted alphabetically and the word
PMD is removed from their names.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
7 years agomaintainers: update email for ARM
Jianbo Liu [Tue, 10 Oct 2017 03:11:37 +0000 (11:11 +0800)]
maintainers: update email for ARM

Update my email to jianbo.liu@arm.com.

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
7 years agoigb_uio: fix interrupt enablement after FLR in VM
Jingjing Wu [Mon, 9 Oct 2017 22:09:20 +0000 (06:09 +0800)]
igb_uio: fix interrupt enablement after FLR in VM

If pass-through a VF by vfio-pci to a Qemu VM, after FLR
in VM, the interrupt setting is not recoverd correctly
to host as below:
 in VM guest:
        Capabilities: [70] MSI-X: Enable+ Count=5 Masked-
 in Host:
        Capabilities: [70] MSI-X: Enable+ Count=5 Masked-

That was because in pci_reset_function, it first reads the
PCI configure and set FLR reset, and then writes PCI configure
as restoration. But not all the writing are successful to Host.
Because vfio-pci driver doesn't allow directly write PCI MSI-X
Cap.

To fix this issue, we need to move the interrupt enablement from
igb_uio probe to open device file. While it is also the similar as
the behaviour in vfio_pci kernel module code.

Fixes: b58eedfc7dd5 ("igb_uio: issue FLR during open and release of device file")
Cc: stable@dpdk.org
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Tested-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agonet/i40e: fix VF initialization error
Jingjing Wu [Mon, 9 Oct 2017 22:08:30 +0000 (06:08 +0800)]
net/i40e: fix VF initialization error

In igb_uio, FLR is issued during open device file. i40evf is trying
to initialize admin queue when driver probe, while the FLR is not
done by host driver. That will cause initialization fail.

This patch is adding the checking if VF reset is done before
adimin queue initialization.

Fixes: b58eedfc7dd5 ("igb_uio: issue FLR during open and release of device file")
Cc: stable@dpdk.org
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
7 years agonet/mlx5: fix creation of compressed Rx completion queue
Yongseok Koh [Fri, 13 Oct 2017 20:00:19 +0000 (13:00 -0700)]
net/mlx5: fix creation of compressed Rx completion queue

The size of Rx completion queue should be doubled if compression is enabled
in case of non-vectorized Rx.

Fixes: 523f5a742102 ("net/mlx5: fix configuration of Rx CQE compression")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
7 years agovhost: fetch ring address after NUMA reallocation
Maxime Coquelin [Fri, 13 Oct 2017 09:30:21 +0000 (11:30 +0200)]
vhost: fetch ring address after NUMA reallocation

In case of NUMA reallocation, the virtqueue struct is reallocated
on another socket, meaning that its address changes.

In translate_ring_addresses(), addr pointer was not fetched again
after the reallocation, so it pointed to freed memory.

This patch just fetch again addr pointer after the reallocation.

Reported-by: Lei Yao <lei.a.yao@intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Tested-by: Lei Yao <lei.a.yao@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
7 years agovhost: fix IOTLB on NUMA realloc
Maxime Coquelin [Thu, 12 Oct 2017 15:38:50 +0000 (17:38 +0200)]
vhost: fix IOTLB on NUMA realloc

In case of NUMA reallocation, virtqueue's iotlb list is broken,
has its head changes but first iotlb entry in the list still points
to the previous head pointer.

Also, in case of reallocation, we want the IOTLB cache mempool to be
on the new socket.

This patch perform a full re-init of the IOTLB cache when mempool
already exists, and calls the IOTLB cache init function in case
the virtqueue is being reallocated on a new socket.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
7 years agovhost: fix deadlock on IOTLB miss
Maxime Coquelin [Thu, 12 Oct 2017 15:38:49 +0000 (17:38 +0200)]
vhost: fix deadlock on IOTLB miss

An optimization was done to only take the iotlb cache lock
once per packet burst instead of once per IOVA translation.

With this, IOTLB miss requests are sent to Qemu with the lock
held, which can cause a deadlock if the socket buffer is full,
and if Qemu is waiting for an IOTLB update to be done.

Holding the lock is not necessary when sending an IOTLB miss
request, as it is not manipulating the IOTLB cache list, which
the lock protects. Let's just release it while sending the
IOTLB miss.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
7 years agoefd: fix build when compiler does not support AVX2
Ferruh Yigit [Fri, 13 Oct 2017 18:24:21 +0000 (19:24 +0100)]
efd: fix build when compiler does not support AVX2

Compiler error:
irte_efd.o: In function `rte_efd_lookup':
rte_efd.c:(.text+0x6d6e): undefined reference to `efd_lookup_internal_avx2'
rte_efd.o: In function `rte_efd_lookup_bulk':
rte_efd.c:(.text+0x87d4): undefined reference to `efd_lookup_internal_avx2'

This can be observed with a compiler that doesn't support AVX2 and
shared build.

Fixes: 86d898968826 ("efd: add AVX2 vector lookup function")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
7 years agodoc: update port id type
Zhiyong Yang [Fri, 13 Oct 2017 13:17:01 +0000 (21:17 +0800)]
doc: update port id type

Since port id has changed from uint8_t to uint16_t in dpdk code,
So update the change in related doc.

Fixes: f8244c6399d9 ("ethdev: increase port id range")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
7 years agoexamples: fix port id type
Zhiyong Yang [Fri, 13 Oct 2017 13:17:00 +0000 (21:17 +0800)]
examples: fix port id type

Fixes: f8244c6399d9 ("ethdev: increase port id range")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
7 years agotest: fix port id type
Zhiyong Yang [Fri, 13 Oct 2017 13:16:59 +0000 (21:16 +0800)]
test: fix port id type

Fixes: f8244c6399d9 ("ethdev: increase port id range")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
7 years agoapp: fix port id type
Zhiyong Yang [Fri, 13 Oct 2017 13:16:58 +0000 (21:16 +0800)]
app: fix port id type

Fixes: f8244c6399d9 ("ethdev: increase port id range")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
7 years agonet/mrvl: fix port id type
Zhiyong Yang [Fri, 13 Oct 2017 13:16:57 +0000 (21:16 +0800)]
net/mrvl: fix port id type

port id should be defined as uint16_t.

Fixes: f8244c6399d9 ("ethdev: increase port id range")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
7 years agonet/fm10k: fix port id type
Zhiyong Yang [Fri, 13 Oct 2017 13:16:56 +0000 (21:16 +0800)]
net/fm10k: fix port id type

The variable "port" should be defined as uint16_t, fix it here.

Fixes: f8244c6399d9 ("ethdev: increase port id range")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
7 years agonet/i40e: fix port id type
Zhiyong Yang [Fri, 13 Oct 2017 13:16:55 +0000 (21:16 +0800)]
net/i40e: fix port id type

Some functions applied were still developed on top of uint8_t port_id,
however port_id has been increased range to uint16_t. The patch fixes
the issue.

Fixes: f8244c6399d9 ("ethdev: increase port id range")

Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>