[dpdk-dev] [PATCH] net/octeontx2: add support for 24B custom L2 header parsing

2020-12-20 Thread kirankumark
From: Kiran Kumar K Adding support to parse 24B custom L2 header. Added devargs support to configure the PKIND, and removed the restriction to support custom headers on non SDP interface. Signed-off-by: Kiran Kumar K --- doc/guides/nics/octeontx2.rst | 2 +- drivers/common/octeo

[dpdk-dev] [PATCH v1] lib/rcu: use rte atomic thread fence wrapper instead

2020-12-20 Thread Joyce Kong
Use rte_atomic_thread_fence wrapper which has been provided for __atomic_thread_fence builtins to support optimized code for __ATOMIC_SEQ_CST memory order on x86 platforms. Signed-off-by: Joyce Kong Reviewed-by: Honnappa Nagarahalli --- lib/librte_rcu/rte_rcu_qsbr.h | 7 +-- 1 file changed,

Re: [dpdk-dev] [RFC] mem_debug add more log

2020-12-20 Thread Peng, ZhihongX
1. I think this implement doesn't add significant overhead. Overhead only will be occurred in rte_malloc and rte_free. 2. Current existing address sanitizer infrastructure only support libc malloc. Regards, Peng,Zhihong -Original Message- From: Stephen Hemminger Sent: Saturday, Decemb

Re: [dpdk-dev] [EXT] [PATCH v2 12/22] net/octeontx2: fix the jumbo frame flag condition for mtu

2020-12-20 Thread Sunil Kumar Kori
>-Original Message- >From: Steve Yang >Sent: Thursday, December 17, 2020 2:53 PM >To: dev@dpdk.org >Cc: wenzhuo...@intel.com; beilei.x...@intel.com; >bernard.iremon...@intel.com; asoma...@amd.com; >rahul.lakkire...@chelsio.com; hemant.agra...@nxp.com; >sachin.sax...@oss.nxp.com; jia@in

Re: [dpdk-dev] [EXT] [PATCH v1 09/12] net/octeontx2: fix the jumbo frame flag condition for mtu

2020-12-20 Thread Sunil Kumar Kori
>-Original Message- >From: Steve Yang >Sent: Wednesday, December 9, 2020 8:46 AM >To: dev@dpdk.org >Cc: hemant.agra...@nxp.com; sachin.sax...@oss.nxp.com; >jia@intel.com; haiyue.w...@intel.com; xavier.hu...@huawei.com; >humi...@huawei.com; yisen.zhu...@huawei.com; ouli...@huawei.com; >

[dpdk-dev] [PATCH v1 5/5] net/ice: enable FDIR outer/inner fields for VXLAN

2020-12-20 Thread Zhirun Yan
Enable FDIR outer fields L2/L3 fields and inner L2/L3 for VXLAN. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 37 ++- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_fil

[dpdk-dev] [PATCH v1 4/5] net/ice: add outer input set mask check

2020-12-20 Thread Zhirun Yan
Distinguish input set mask for inner/outer. Add outer input set mask check. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 3 ++- drivers/net/ice/ice_generic_flow.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/ice_fdir_filter.c b/driv

[dpdk-dev] [PATCH v1 3/5] net/ice: add outer input set mask to distinguish outer fields

2020-12-20 Thread Zhirun Yan
Add 64-bit input_set_mask_f for outer input set. input_set_mask_f is used for inner fields or non-tunnel fields. Adjust indentation of ice_pattern_match_item list in switch, RSS and FDIR for easy review. For fields in tunnel layer, like GTPU TEID, put them in outer part. Signed-off-by: Zhirun Yan

[dpdk-dev] [PATCH v1 2/5] net/ice: refactor flow pattern parser

2020-12-20 Thread Zhirun Yan
Distinguish inner/outer input set. And avoid too many nested conditionals in each type's parser. input_set_f is used for outer fields, input_set_l is used for inner or non-tunnel fields. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 467 +++--- 1 file

[dpdk-dev] [PATCH v1 1/5] net/ice: clean input set macro definition

2020-12-20 Thread Zhirun Yan
Currently, the macro of input set use 2 bits, one bit for protocol and inner/outer, another bit for src/dst field. But this could not distinguish a rule with inner and outer fields for tunnel packet. Redefine input set macro to make it clear. Only use these two bits for protocol and field. Ignore t

[dpdk-dev] [PATCH v1 0/5] Refactor FDIR pattern parser

2020-12-20 Thread Zhirun Yan
This patch set refactor FDIR pattern parser. Redefine input set. Ignore the redundant inner/outer info. Align the parser action with hardware, using input_set_f for outer, input_set_l for inner or non-tunnel fields. Adjust indentation for easy review. Enable VXLAN inner/outer fields. Zhirun Yan

Re: [dpdk-dev] [PATCH 21.02 v2 2/2] net/virtio: fix memory init with vDPA backend

2020-12-20 Thread Xia, Chenbo
> -Original Message- > From: Maxime Coquelin > Sent: Wednesday, November 25, 2020 11:21 PM > To: dev@dpdk.org; Xia, Chenbo ; amore...@redhat.com; > jasow...@redhat.com; david.march...@redhat.com > Cc: Maxime Coquelin ; sta...@dpdk.org > Subject: [PATCH 21.02 v2 2/2] net/virtio: fix memory

Re: [dpdk-dev] [PATCH 21.02 v2 1/2] net/virtio: fix missing backend features negotiation

2020-12-20 Thread Xia, Chenbo
Hi Maxime, > -Original Message- > From: Maxime Coquelin > Sent: Wednesday, November 25, 2020 11:21 PM > To: dev@dpdk.org; Xia, Chenbo ; amore...@redhat.com; > jasow...@redhat.com; david.march...@redhat.com > Cc: Maxime Coquelin ; sta...@dpdk.org > Subject: [PATCH 21.02 v2 1/2] net/virtio:

[dpdk-dev] [PATCH] app/testpmd: add PF and VF targets to flow action type sample

2020-12-20 Thread psatheesh
From: Satheesh Paul Add support to specify PF or VF as targets in "set sample_actions" command. Signed-off-by: Satheesh Paul --- The changes add support for below usecases. 1. Sample mirror to PF testpmd>set sample_actions 0 / pf / end #pkts to VF id 2 will be mirrored to the PF testpmd>flow

[dpdk-dev] [PATCH] examples/eventdev: move eth stop to the end

2020-12-20 Thread Feifei Wang
Move eth stop code from "signal_handler" function to the end of "main" function. There are two reasons for this: First, this improves code maintenance and makes code look simple and clear. Based on this change, after receiving the interrupt signal, "fdata->done" is set as 1. Then the main thread w

[dpdk-dev] [PATCH v1 8/8] gro: support IPv6 VXLAN UDP/IPv6

2020-12-20 Thread yang_y_yi
From: Yi Yang IPv6 VXLAN UDP/IPv6 GRO can help improve UDP/IPv6 performance in IPv6 VXLAN use case. With this enabled in DPDK, OVS DPDK can leverage it to improve VM-to-VM UDP/IPv6 performance, it will merge small adjacent IPv6 VXLAN UDP/IPv6 fragments to a big IPv6 VXLAN UDP/IPv6 packet immedia

[dpdk-dev] [PATCH v1 7/8] gro: support IPv6 VXLAN UDP/IPv4

2020-12-20 Thread yang_y_yi
From: Yi Yang IPv6 VXLAN UDP/IPv4 GRO can help improve UDP/IPv4 performance in IPv6 VXLAN use case. With this enabled in DPDK, OVS DPDK can leverage it to improve VM-to-VM UDP/IPv4 performance, it will merge small adjacent IPv6 VXLAN UDP/IPv4 fragments to a big IPv6 VXLAN UDP/IPv4 packet immedia

[dpdk-dev] [PATCH v1 4/8] gro: support IPv6 VXLAN TCP/IPv6

2020-12-20 Thread yang_y_yi
From: Yi Yang IPv6 VXLAN TCP/IPv6 GRO can help improve TCP/IPv6 performance in IPv6 VXLAN use case. With this enabled in DPDK, OVS DPDK can leverage it to improve VM-to-VM TCP/IPv6 performance, it will merge small adjacent IPv6 VXLAN TCP/IPv6 packets to a big IPv6 VXLAN TCP/IPv6 packet immediate

[dpdk-dev] [PATCH v1 6/8] gro: support IPv4 VXLAN UDP/IPv6

2020-12-20 Thread yang_y_yi
From: Yi Yang IPv4 VXLAN UDP/IPv6 GRO can help improve UDP/IPv6 performance in IPv4 VXLAN use case. With this enabled in DPDK, OVS DPDK can leverage it to improve VM-to-VM UDP/IPv6 performance, it will merge small adjacent IPv4 VXLAN UDP/IPv6 fragments to a big IPv4 VXLAN UDP/IPv6 packet immedia

[dpdk-dev] [PATCH v1 5/8] gro: support UDP/IPv6

2020-12-20 Thread yang_y_yi
From: Yi Yang UDP/IPv6 GRO can help improve UDP/IPv6 performance. With this enabled in DPDK, OVS DPDK can leverage it to improve VM-to-VM UDP/IPv6 performance, it will merge small adjacent UDP/IPv6 fragments to a big UDP/IPv6 packet immediate after they are received from a physical NIC. It is ve

[dpdk-dev] [PATCH v1 2/8] gro: support IPv4 VXLAN TCP/IPv6

2020-12-20 Thread yang_y_yi
From: Yi Yang IPv4 VXLAN TCP/IPv6 GRO can help improve TCP/IPv6 performance in IPv4 VXLAN use case. With this enabled in DPDK, OVS DPDK can leverage it to improve VM-to-VM TCP/IPv6 performance, it will merge small adjacent IPv4 VXLAN TCP/IPv6 packets to a big IPv4 VXLAN TCP/IPv6 packet immediate

[dpdk-dev] [PATCH v1 1/8] gro: support TCP/IPv6

2020-12-20 Thread yang_y_yi
From: Yi Yang TCP/IPv6 GRO can help improve TCP/IPv6 performance. With this enabled in DPDK, OVS DPDK can leverage it to improve VM-to-VM TCP/IPv6 performance, it will merge small adjacent TCP/IPv6 segments to a big TCP/IPv6 segment immediate after they are received from a physical NIC. It is ve

[dpdk-dev] [PATCH v1 3/8] gro: support IPv6 VXLAN TCP/IPv4

2020-12-20 Thread yang_y_yi
From: Yi Yang IPv6 VXLAN TCP/IPv4 GRO can help improve TCP/IPv4 performance in IPv6 VXLAN use case. With this enabled in DPDK, OVS DPDK can leverage it to improve VM-to-VM TCP/IPv4 performance, it will merge small adjacent IPv6 VXLAN TCP/IPv4 packets to a big IPv6 VXLAN TCP/IPv4 packet immediate

[dpdk-dev] [PATCH v1 0/8] gro: support TCP/IPv6 and UDP/IPv6 for VLAN and VXLAN

2020-12-20 Thread yang_y_yi
From: Yi Yang In production system, both IPv4 and IPv6 are required, this patch series added TCP/IPv6 and UDP/IPv6 gro support for both VLAN and VXLAN use cases, with this patch seiries applied, DPDK can support gro for all the below cases: VLAN TCP/IPv4 VLAN UDP/IPv4 VLAN TCP/IPv6 VLAN UDP/IPv6

[dpdk-dev] [PATCH 3/3] net/cxgbe: implement ethdev ops to configure link FEC

2020-12-20 Thread Rahul Lakkireddy
From: Karra Satwik Add ethdev ops to query and configure link FEC. Signed-off-by: Karra Satwik Signed-off-by: Rahul Lakkireddy --- drivers/net/cxgbe/base/common.h | 2 + drivers/net/cxgbe/base/t4_hw.c | 79 ++ drivers/net/cxgbe/base/t4fw_interface.h | 6 ++ d

[dpdk-dev] [PATCH 2/3] net/cxgbe: rework and simplify link handling code

2020-12-20 Thread Rahul Lakkireddy
From: Karra Satwik Rework and simplify link handling code. Remove redundant variables in link configuration structure and directly extract information from the 32-bit link capabilities. Signed-off-by: Karra Satwik Signed-off-by: Rahul Lakkireddy --- drivers/net/cxgbe/base/adapter.h|

[dpdk-dev] [PATCH 1/3] net/cxgbe: remove legacy 16-bit link capabilities

2020-12-20 Thread Rahul Lakkireddy
From: Karra Satwik Remove legacy 16-bit link capabilities and always request for the 32-bit link capabilities from firmware. Signed-off-by: Karra Satwik Signed-off-by: Rahul Lakkireddy --- doc/guides/nics/cxgbe.rst | 14 +- drivers/net/cxgbe/base/common.h | 9 - drive

[dpdk-dev] [PATCH 0/3] net/cxgbe: rework link config and add FEC support

2020-12-20 Thread Rahul Lakkireddy
This series of patches rework link handling and add support to configure Forward Error Correction (FEC) capability. Patch 1 removes legacy 16-bit link capabilities infrastructure and always enables 32-bit link capabilities in firmware. Patch 2 simplifies link handling in preparation for FEC suppo

[dpdk-dev] [PATCH] app/testpmd: increase array for fetching supported FEC caps

2020-12-20 Thread Rahul Lakkireddy
From: Karra Satwik Request the driver for number of entries in the FEC caps array and then dynamically allocate the array. Signed-off-by: Karra Satwik Signed-off-by: Rahul Lakkireddy --- app/test-pmd/cmdline.c | 29 - 1 file changed, 20 insertions(+), 9 deletions(-

[dpdk-dev] [PATCH] app/testpmd: fix start index for showing FEC array

2020-12-20 Thread Rahul Lakkireddy
From: Karra Satwik Start from index 0 when going through the FEC array. This will allow "off" to get printed for RTE_ETH_FEC_NOFEC mode. Fixes: b19da32e3151 ("app/testpmd: add FEC command") Cc: sta...@dpdk.org Signed-off-by: Karra Satwik Signed-off-by: Rahul Lakkireddy --- app/test-pmd/confi

[dpdk-dev] [PATCH] net/cxgbe: accept VLAN flow items without ethertype

2020-12-20 Thread Rahul Lakkireddy
From: Karra Satwik When apps pass the RTE_FLOW_ITEM_TYPE_VLAN without setting the ethertype field in RTE_FLOW_ITEM_TYPE_ETH, then assume 0x8100 VLAN by default and don't reject the rule. Fixes: 55f003d8884c ("net/cxgbe: support flow API for matching QinQ VLAN") Cc: sta...@dpdk.org Signed-off-by

[dpdk-dev] [PATCH 40/40] net/virtio: move Vhost-vDPA data to its backend

2020-12-20 Thread Maxime Coquelin
As done earlier for Vhost-user and Vhost-kernel, this patch moves the Vhost-vDPA specific data to its backend file. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost_vdpa.c | 77 ++- .../net/virtio/virtio_user/virtio_user_dev.h | 3 - 2 files changed, 58

[dpdk-dev] [PATCH 38/40] net/virtio: move Vhost-user specifics to its backend

2020-12-20 Thread Maxime Coquelin
This patch moves all the Vhost-user backend specific logic like Vhost FD, listen FD and interrupt handling to the vhost-user backend implementation. In order to achieve that, new ops are created to update the link status, disconnect and reconnect the server, and fetch the link state interrupt FD.

[dpdk-dev] [PATCH 39/40] net/virtio: move Vhost-kernel data to its backend

2020-12-20 Thread Maxime Coquelin
As done earlier for Vhost-user, this patch moves the Vhost-Kernel specific data to its backend file. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost_kernel.c | 78 +++ .../net/virtio/virtio_user/virtio_user_dev.c | 43 ++ .../net/virtio/virtio_use

[dpdk-dev] [PATCH 37/40] net/virtio: introduce backend data

2020-12-20 Thread Maxime Coquelin
The goal of this patch is to introduce backend-specific data in order to better isolate what is backend-specific from what is generic to Virtio-user. For now, only Vhost-user protocol features are moved to Vhost-user backend data. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_use

[dpdk-dev] [PATCH 36/40] net/virtio: move protocol features to Vhost-user

2020-12-20 Thread Maxime Coquelin
Since only protocol features are specific to Vhost-user backend, this patch moves all related code to Vhost-user file. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 20 + drivers/net/virtio/virtio_user/vhost_kernel.c | 9 +++ drivers/net/virtio/virtio_us

[dpdk-dev] [PATCH 35/40] net/virtio: make server mode blocking

2020-12-20 Thread Maxime Coquelin
This patch makes the Vhost-user backend server mode blocking at init, waiting for the client connection. The goal is to make the driver more reliable, as without waiting for client connection, the Virtio driver has to assume the Vhost-user backend will support all the features it has advertized, w

[dpdk-dev] [PATCH 34/40] net/virtio: move Vhost-user reqs to Vhost-user backend

2020-12-20 Thread Maxime Coquelin
Now that we have a proper isolation of the backends, we can move Vhost-user requests declaration to the Vhost-user backend file. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h | 25 - drivers/net/virtio/virtio_user/vhost_user.c | 25 +++

[dpdk-dev] [PATCH 33/40] net/virtio: improve Virtio-user errors handling

2020-12-20 Thread Maxime Coquelin
This patch adds error logs and propagate errors reported by the backend. It also adds the device path in error logs to make it easier to distinguish which device is facing the issue. Signed-off-by: Maxime Coquelin --- .../net/virtio/virtio_user/virtio_user_dev.c | 155 -- 1 file

[dpdk-dev] [PATCH 32/40] net/virtio: remove useless request ops

2020-12-20 Thread Maxime Coquelin
Now that all the ops have been implemented, we can remove the send_request ops for all backends. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 15 +-- drivers/net/virtio/virtio_user/vhost_kernel.c | 43 - drivers/net/virtio/virtio_user/vhost_user.c

[dpdk-dev] [PATCH 31/40] net/virtio: add Virtio-user status ops

2020-12-20 Thread Maxime Coquelin
This patch introduces new callbacks to get and set the device status. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 2 + drivers/net/virtio/virtio_user/vhost_kernel.c | 14 ++ drivers/net/virtio/virtio_user/vhost_user.c | 121 +- drivers/

[dpdk-dev] [PATCH 30/40] net/virtio: add Virtio-user vring address ops

2020-12-20 Thread Maxime Coquelin
This patch introduces a new callback for setting vrings addresses. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 1 + drivers/net/virtio/virtio_user/vhost_kernel.c | 32 +-- drivers/net/virtio/virtio_user/vhost_user.c | 29 +

[dpdk-dev] [PATCH 29/40] net/virtio: add Virtio-user vring file ops

2020-12-20 Thread Maxime Coquelin
This patch introduces new callbacks for setting vring files (kick and call). Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 2 + drivers/net/virtio/virtio_user/vhost_kernel.c | 41 +++-- drivers/net/virtio/virtio_user/vhost_user.c | 46 +

[dpdk-dev] [PATCH 28/40] net/virtio: add Virtio-user vring setting ops

2020-12-20 Thread Maxime Coquelin
This patch introduces new callbacks for setting and getting vring state. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 4 + drivers/net/virtio/virtio_user/vhost_kernel.c | 49 +++- drivers/net/virtio/virtio_user/vhost_user.c | 114 +-

[dpdk-dev] [PATCH 27/40] net/virtio: add Virtio-user memory tables ops

2020-12-20 Thread Maxime Coquelin
This patch implements a dedicated callback for preparing and sending memory table to the backends. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 1 + drivers/net/virtio/virtio_user/vhost_kernel.c | 60 +++ drivers/net/virtio/virtio_user/vhost_use

[dpdk-dev] [PATCH 26/40] net/virtio: add Virtio-user protocol features ops

2020-12-20 Thread Maxime Coquelin
This patch introduce new callbacks for getting and setting Vhost-user protocol features. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 2 + drivers/net/virtio/virtio_user/vhost_user.c | 64 +-- .../net/virtio/virtio_user/virtio_user_dev.c

[dpdk-dev] [PATCH 25/40] net/virtio: add Virtio-user features ops

2020-12-20 Thread Maxime Coquelin
This patch introduce new callbacks for getting and setting Virtio features, and implements them for the different backend types. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 2 + drivers/net/virtio/virtio_user/vhost_kernel.c | 150 +- .../n

[dpdk-dev] [PATCH 24/40] net/virtio: add Virtio-user ops to set owner

2020-12-20 Thread Maxime Coquelin
This patch implements a dedicated callabck for sending owner request. All the requests will be converted that way so that backends other than Vhost-user don't have to work around being it. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost.h| 1 + drivers/net/virtio

[dpdk-dev] [PATCH 23/40] net/virtio: make Vhost-user req sender consistent

2020-12-20 Thread Maxime Coquelin
This patch makes vhost_user_write() consistent with vhost_user_read(), by passing a pointer on the Vhost-user message instead of a buffer pointer and its length, which is now calculated in the function. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_user/vhost_user.c | 10 -

[dpdk-dev] [PATCH 22/40] net/virtio: remove last PCI refs in non-PCI code

2020-12-20 Thread Maxime Coquelin
This patch finalizes the bus isolation part of this refactoring. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_ethdev.c | 21 + drivers/net/virtio/virtio_rxtx.c| 18 +- drivers/net/virtio/virtio_rxtx_packed_avx.c | 2 +- dr

[dpdk-dev] [PATCH 21/40] net/virtio: move vring alignment to generic header

2020-12-20 Thread Maxime Coquelin
This patch moves vring alignment define to the generic Virtio header. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio.h | 3 +++ drivers/net/virtio/virtio_ethdev.c | 10 +- drivers/net/virtio/virtio_pci.c | 2 +- drivers/net/virtio/virtio_pci.h

[dpdk-dev] [PATCH 20/40] net/virtio: make interrupt handling more generic

2020-12-20 Thread Maxime Coquelin
This patch aims at isolating MSIX notion into PCI layer. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio.c | 6 ++ drivers/net/virtio/virtio.h | 11 +- drivers/net/virtio/virtio_ethdev.c | 7 +- drivers/net/virtio/virtio_pci.c | 131

[dpdk-dev] [PATCH 18/40] net/virtio: move virtqueue defines in generic header

2020-12-20 Thread Maxime Coquelin
This patch moves the virtqueues defines from PCI header to the genreric one. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio.h| 18 ++ drivers/net/virtio/virtio_ethdev.h | 3 ++- drivers/net/virtio/virtio_pci.h| 17 ---

[dpdk-dev] [PATCH 19/40] net/virtio: move config definitions to generic header

2020-12-20 Thread Maxime Coquelin
This patch moves config and status definitions from the PCI header to the generic one. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio.c | 43 +++ drivers/net/virtio/virtio.h | 52 ++- drivers/net/virtio/virtio_ethdev.c

[dpdk-dev] [PATCH 17/40] net/virtio: move features definition to generic header

2020-12-20 Thread Maxime Coquelin
This patch moves all the Virtio definition to the generic header. It also renames some helpers to no more reference PCI. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/meson.build| 3 +- drivers/net/virtio/virtio.c | 22 drivers/net/virtio/virtio.

[dpdk-dev] [PATCH 16/40] net/virtio: introduce generic virtio header

2020-12-20 Thread Maxime Coquelin
This patch moves virtio_hw and virtio callbacks into a generic virtio header, now that they have been curated from PCI references. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio.h | 75 ++ drivers/net/virtio/virtio_ethdev.c | 20 +++--- drivers/

[dpdk-dev] [PATCH 15/40] net/virtio: move legacy IO to Virtio PCI

2020-12-20 Thread Maxime Coquelin
This patch moves Virtio PCI legacy IO handling to virtio_pci.c. Two functions are created so that virtio_pci_ethdev does not have to care about it. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_pci.c| 21 + drivers/net/virtio/virtio_pci.h| 6 ++

[dpdk-dev] [PATCH 14/40] net/virtio: pack virtio HW struct

2020-12-20 Thread Maxime Coquelin
This patch improves the virtio_hw struct packing, going from 88 down to 80 bytes with a 6 bytes hole in the end of the first cacheline. Fields only used in the slow path are placed in the end, so that hot path only uses the first cacheline. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/v

[dpdk-dev] [PATCH 13/40] net/virtio: move PCI-specific fields to PCI device

2020-12-20 Thread Maxime Coquelin
This patch moves the fields from virtio_hw structure that are PCI-specific to virtio_pci_dev_struct. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_pci.c | 139 ++-- drivers/net/virtio/virtio_pci.h | 10 +-- 2 files changed, 85 insertions(+), 64 deletio

[dpdk-dev] [PATCH 12/40] net/virtio: remove bus type enum

2020-12-20 Thread Maxime Coquelin
Bus type awareness at the generic ethdev level is no more needed as previous patches have made it bus-agnostic. This patch removes it from struct virtio_hw. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_ethdev.c | 15 --- drivers/net/virtio/virtio_pci.c |

[dpdk-dev] [PATCH 11/40] net/virtio: validate features at bus level

2020-12-20 Thread Maxime Coquelin
This patch provides a new callback for the bus type to validate negotiated features are compatible with it. Only user for now is PCI modern bus type, which implies that the device supports Virtio 1.0+. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_ethdev.c | 11 +--

[dpdk-dev] [PATCH 10/40] net/virtio: add callback for device closing

2020-12-20 Thread Maxime Coquelin
This patch introduces a new callback for device closing, making virtio_dev_close() bus-agnostic. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/meson.build | 2 -- drivers/net/virtio/virtio_ethdev.c | 13 + drivers/net/virtio/virtio_pci.c | 25 ++

[dpdk-dev] [PATCH 09/40] net/virtio: store PCI type in Virtio device metadata

2020-12-20 Thread Maxime Coquelin
Going further in making the Virtio ethdev layer bus agnostic, this patch adds a boolean in the Virtio PCI device metadata. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_pci.c| 20 drivers/net/virtio/virtio_pci.h| 3 ++- drivers/net/virtio/virt

[dpdk-dev] [PATCH 08/40] net/virtio: force IOVA as VA mode for Virtio-user

2020-12-20 Thread Maxime Coquelin
At least Vhost-user backend of Virtio-user PMD requires IOVA as VA mode. Until now, it was implemented as a hack by forcing to use mbuf's buf_addr field instead of buf_iova. This patcv removes all this logic and just fails probing if IOVA as VA mode is not selected. It simplifies the code overall,

[dpdk-dev] [PATCH 07/40] net/virtio: move MSIX detection to PCI ethdev

2020-12-20 Thread Maxime Coquelin
There is no point it detecting whether we can use MSIX every time the interrupt is enabled/disabled/masked. Let's do it once for all at PCI device init time. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_ethdev.c | 15 --- drivers/net/virtio/virtio_pci.c| 5 -

[dpdk-dev] [PATCH 06/40] net/virtio: move PCI specific dev init to PCI ethdev init

2020-12-20 Thread Maxime Coquelin
This patch moves the PCI specific initialization from eth_virtio_dev_init() to eth_virtio_pci_init(). Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_ethdev.c | 63 +-- drivers/net/virtio/virtio_pci_ethdev.c | 71 +- 2 files changed, 7

[dpdk-dev] [PATCH 05/40] net/virtio: move PCI device init in dedicated file

2020-12-20 Thread Maxime Coquelin
Thi patch moves the PCI Ethernet device registration bits in a dedicated patch. In following patches, more code will be moved there, with the goal of making virtio_ethdev.c truely bus-agnostic. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/meson.build | 1 + drivers/net/virtio/

[dpdk-dev] [PATCH 04/40] net/virtio: introduce PCI device metadata

2020-12-20 Thread Maxime Coquelin
This patch initiate refactoring of Virtio PCI, by introducing a new device structure for PCI-specific metadata. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_ethdev.c | 2 +- drivers/net/virtio/virtio_pci.h| 5 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git

[dpdk-dev] [PATCH 03/40] net/virtio: refactor virtio-user device

2020-12-20 Thread Maxime Coquelin
This patch moves the virtio_hw structure into the virtio_user_dev structure, with the goal of making virtio_hw bus-agnostic. Signed-off-by: Maxime Coquelin --- drivers/net/virtio/virtio_ethdev.c| 2 +- drivers/net/virtio/virtio_pci.h | 1 - .../net/virtio/virtio_user/

[dpdk-dev] [PATCH 02/40] net/virtio: Introduce Virtio bus type

2020-12-20 Thread Maxime Coquelin
This patch is preliminary work for introducing a bus layer in Virtio PMD, in order to improve Virtio-user integration. A new bus type is added to provide a unified way to distinguish which bus type is used (PCI modern, PCI legacy or Virtio-user). Signed-off-by: Maxime Coquelin --- drivers/net/v

[dpdk-dev] [PATCH 01/40] bus/vdev: add helper to get vdev from eth dev

2020-12-20 Thread Maxime Coquelin
This patch adds an helper macro to get the rte_vdev_device pointer from a rte_eth_dev pointer. This is similar to RTE_ETH_DEV_TO_PCI(). Signed-off-by: Maxime Coquelin --- drivers/bus/vdev/rte_bus_vdev.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/bus/vdev/rte_bus_vdev.h b/driv

[dpdk-dev] [PATCH 00/40] net/virtio: Virtio PMD rework

2020-12-20 Thread Maxime Coquelin
This series significantly rework Virtio PMD to improve the Virtio-user PMD and its backends integration. First part of the series (first 21 patches) removes the dependency of Virtio-user ethdev on Virtio PCI, by creating generic files, adding per-bus meta data, ... Main (if not single) functionna

Re: [dpdk-dev] [PATCH] net/bnxt: remove support for some PCI IDs

2020-12-20 Thread Ajit Khaparde
On Fri, Dec 18, 2020 at 11:07 AM Ajit Khaparde wrote: > > As announced the deprecation notice during the 20.11 release, > remove support for NetXtreme devices belonging to BCM573xx and > BCM5740x families. Specifically the support for the following Broadcom > PCI device IDs: 0x16c8, 0x16c9, 0x16ca

[dpdk-dev] [PATCH v2 6/6] app/regex: replace Linux clock() API with rdtsc

2020-12-20 Thread Ophir Munk
Performance measurement (elapsed time and Gbps) are based on Linux clock() API. The resolution is improved by replacing the clock() API with rte_rdtsc_precise() API. Signed-off-by: Ophir Munk --- app/test-regex/main.c | 32 ++-- 1 file changed, 14 insertions(+), 18 de

[dpdk-dev] [PATCH v2 5/6] app/regex: support performance measurements per QP

2020-12-20 Thread Ophir Munk
Up to this commit measuring the parsing elapsed time and Giga bits per second performance was done on the aggregation of all QPs (per core). This commit separates the time measurements per individual QP. Signed-off-by: Ophir Munk --- app/test-regex/main.c | 33 ++---

[dpdk-dev] [PATCH v2 2/6] app/regex: support multi QPs

2020-12-20 Thread Ophir Munk
Up to this commit the regex application used one QP which was assigned a number of jobs, each with a different segment of a file to parse. This commit adds support for multiple QPs assignments. All QPs will be assigned the same number of jobs, with the same segments of file to parse. It will enabl

[dpdk-dev] [PATCH v2 4/6] app/regex: support multi cores

2020-12-20 Thread Ophir Munk
Up to this commit the regex application was running with multiple QPs on a single core. This commit adds the option to specify a number of cores on which multiple QPs will run. A new parameter 'nb_lcores' was added to configure the number of cores: --nb_lcores . If not configured the number of cor

[dpdk-dev] [PATCH v2 3/6] app/regex: read data file once at startup

2020-12-20 Thread Ophir Munk
Up to this commit the input data file was read from scratch for each QP, which is redundant. Starting from this commit the data file is read only once at startup. Each QP will clone the data. Signed-off-by: Ophir Munk --- app/test-regex/main.c | 63 +++

[dpdk-dev] [PATCH v2 1/6] app/regex: move mem pool creation to worker routine

2020-12-20 Thread Ophir Munk
Function rte_pktmbuf_pool_create() is moved from init_port() routine to run_regex() routine. Looking forward on multi core support - init_port() will be called only once as part of application startup while mem pool creation should be called multiple times (per core). Signed-off-by: Ophir Munk --

[dpdk-dev] [PATCH v2 0/6] regex multi Q with multi cores support

2020-12-20 Thread Ophir Munk
This patchset enhances the regex application to support multi Q with multi cores. v1: Initial release. v2: Update documentation (testregex.rst). Fix checkpath mispelling errors. Ophir Munk (6): app/regex: move mem pool creation to worker routine app/regex: support multi QPs app/regex: