Re: [dpdk-dev] [PATCH v2 1/1] build: add Graviton2(arm64) meson configuration

2020-10-27 Thread Ruifeng Wang
> -Original Message- > From: dev On Behalf Of Vimal Chungath > Sent: Wednesday, October 28, 2020 4:18 AM > To: dev@dpdk.org > Cc: Honnappa Nagarahalli ; Dharmik > Thakkar ; alisa...@amazon.com; > bruce.richard...@intel.com; hemant.agra...@nxp.com; > jer...@marvell.com; jerinjac...@gmail.

[dpdk-dev] [PATCH v6 0/3] enable AVX512 for iavf

2020-10-27 Thread Wenzhuo Lu
AVX512 instructions is supported by more and more platforms. These instructions can be used in the data path to enhance the per-core performance of packet processing. Comparing with the existing implementation, this path set introduces some AVX512 instructions into the iavf data path, and we get

[dpdk-dev] [PATCH v6 2/3] net/iavf: enable AVX512 for flexible RX

2020-10-27 Thread Wenzhuo Lu
To enhance the per-core performance, this patch adds some AVX512 instructions to the data path to handle the flexible RX descriptors. Signed-off-by: Wenzhuo Lu Signed-off-by: Bruce Richardson Signed-off-by: Leyi Rong --- drivers/net/iavf/iavf_rxtx.c| 10 + drivers/net/iavf/iavf_rx

[dpdk-dev] [PATCH v6 1/3] net/iavf: enable AVX512 for legacy RX

2020-10-27 Thread Wenzhuo Lu
To enhance the per-core performance, this patch adds some AVX512 instructions to the data path to handle the legacy RX descriptors. Signed-off-by: Wenzhuo Lu Signed-off-by: Bruce Richardson Signed-off-by: Leyi Rong --- drivers/net/iavf/iavf_rxtx.c| 29 +- drivers/net/iavf/iavf_rxt

[dpdk-dev] [PATCH v6 3/3] net/iavf: enable AVX512 for TX

2020-10-27 Thread Wenzhuo Lu
To enhance the per-core performance, this patch adds some AVX512 instructions to the data path to handle the TX descriptors. Signed-off-by: Wenzhuo Lu Signed-off-by: Bruce Richardson Signed-off-by: Leyi Rong --- doc/guides/rel_notes/release_20_11.rst | 3 + drivers/net/iavf/iavf_ethdev.c

[dpdk-dev] [PATCH] net/mlx5: fix tunnel flow destroy

2020-10-27 Thread Gregory Etelson
Flow destructor tired to access flow related resources after the flow object memory was already released and crashed dpdk process. The patch moves flow memory release to the end of destructor. Signed-off-by: Gregory Etelson Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow.c | 2 +- 1 file

Re: [dpdk-dev] [PATCH v3 12/15] app/eventdev: switch flow ID to dynamic mbuf field

2020-10-27 Thread Jerin Jacob
On Wed, Oct 28, 2020 at 2:35 AM Thomas Monjalon wrote: > > The order test stored the flow ID in the deprecated mbuf field udata64. > It is moved to a dynamic field in order to allow removal of udata64. > > Signed-off-by: Thomas Monjalon > --- > app/test-eventdev/test_order_atq.c| 4 ++-- >

Re: [dpdk-dev] [PATCH v2 1/1] build: add Graviton2(arm64) meson configuration

2020-10-27 Thread Honnappa Nagarahalli
Hello, IMO, Juraj's patch for meson build rework for Arm platforms will need some time. Keeping the RC2 deadline in mind, it makes sense to accept this patch and target Juraj's patch for 21.02. Any opinions? > -Original Message- > From: Vimal Chungath > Sent: Tuesday, October 2

Re: [dpdk-dev] [PATCH v5 0/3] support both PIO and MMIO BAR for virtio PMD

2020-10-27 Thread 谢华伟(此时此刻)
On 2020/10/27 16:50, chris wrote: @Ferruh: this patch is tested with both PIO and MMIO bar using testpmd and start tx_first. vfio/igb_uio tested with MMIO bar (uio_pci_generic doesn't work with msix, so it isn't tested) uio_pci_generic tested with PIO bar (igb_uio has unknown symbols, not

[dpdk-dev] [PATCH v3 21/21] net/ice/base: update version

2020-10-27 Thread Qi Zhang
Update base code version in readme. Signed-off-by: Qi Zhang --- drivers/net/ice/base/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ice/base/README b/drivers/net/ice/base/README index 1e9c854ae8..5229e5fe7d 100644 --- a/drivers/net/ice/base/README +++ b/dr

[dpdk-dev] [PATCH v3 19/21] net/ice/base: refactor RSS configure API

2020-10-27 Thread Qi Zhang
Use struct ice_rss_hash_cfg as parameter for ice_add_rss_cfg, ice_add_rss_cfg_sync and ice_rem_rss_cfg, ice_rem_rss_cfg_sync. Introduce enmu ice_rss_cfg_hdr_type to allow user specify the more flexible RSS configure. ICE_RSS_OUTER_HEADERS - take outer layer as RSS inputset ICE_RSS_INNER_HEADERS -

[dpdk-dev] [PATCH v3 18/21] net/ice/base: introduce and use FLEX_ARRAY_SIZE where possible

2020-10-27 Thread Qi Zhang
Use the FLEX_ARRAY_SIZE() helper with the recently added flexible array members in structures. Signed-off-by: Bruce Allan Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_common.c| 2 +- drivers/net/ice/base/ice_flex_pipe.c | 2 +- drivers/net/ice/base/ice_type.h | 4 3 files

[dpdk-dev] [PATCH v3 20/21] net/ice/base: add support for get/set RSS LUT to specify global LUT

2020-10-27 Thread Qi Zhang
There is no way to specify a global RSS LUT ID with the current API and 0 is the only global LUT ID that can be supported since it's hard coded. Upcoming support to specify a global LUT ID will require this flexibility. To fix this, update the API for ice_aq_get_rss_lut() and ice_aq_set_rss_lut() t

[dpdk-dev] [PATCH v3 17/21] net/ice/base: remove duplicated AQ command flag setting

2020-10-27 Thread Qi Zhang
When sending the indirect Read/Write SFF EEPROM AQ command. The flag is already added later in the code flow for all indirect AQ commands, i.e. commands that provide an additional data buffer. Signed-off-by: Bruce Allan Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_common.c | 2 +- 1 fil

[dpdk-dev] [PATCH v3 16/21] net/ice/base: support extended GPIO access

2020-10-27 Thread Qi Zhang
Added two new admin commands called: SW Set GPIO and SW Get GPIO (0x6EF and 0x6F0 respectively) which extends GPIO handling capabilities by SW driver Signed-off-by: Amir Shay Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_adminq_cmd.h | 18 ++ 1 file changed, 18 insertions

[dpdk-dev] [PATCH v3 15/21] net/ice/base: fix parameter name in comment

2020-10-27 Thread Qi Zhang
Fix parameter name for cookie_high and cookie_low. Fixes: a90fae1d0755 ("net/ice/base: add admin queue structures and commands") Cc: sta...@dpdk.org Signed-off-by: Jesse Brandeburg Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_adminq_cmd.h | 4 ++-- 1 file changed, 2 insertions(+), 2 de

[dpdk-dev] [PATCH v3 14/21] net/ice/base: recognize 860 as iSCSI port in CEE mode

2020-10-27 Thread Qi Zhang
iSCSI can use both TCP ports 860 and 3260. However, in our current implementation, the ice_aqc_opc_get_cee_dcb_cfg (0x0A07) AQ command doesn't provide a way to communicate the protocol port number to the AQ's caller. Thus, we assume that 3260 is the iSCSI port number at the AQ's caller layer. In t

[dpdk-dev] [PATCH v3 11/21] net/ice/base: add support for class 5+ modules

2020-10-27 Thread Qi Zhang
Currently QSFP/SFP modules up to power class 4 are supported. 100G modules require higher power in many cases. Also, low power mode requires support of power classes 7 and even 8. This change extends "Get Link Status" AQ command (0x0607) to support class 5+ modules. The patch also add couple othe

[dpdk-dev] [PATCH v3 13/21] net/ice/base: implement shared rate limiter

2020-10-27 Thread Qi Zhang
Implemented shared bandwidth rate limit functionality to account for dedicated bandwidth and minimum bandwidth. It requires non default profile be programmed for CIR, EIR/PIR, and SRL. Signed-off-by: Tarun Singh Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_sched.c | 484

[dpdk-dev] [PATCH v3 12/21] net/ice/base: return error directly

2020-10-27 Thread Qi Zhang
As there is nothing to unroll, return the error directly. Remove the label as this is the only reference to that label. Signed-off-by: Tony Nguyen Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_sched.c | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/ne

[dpdk-dev] [PATCH v3 08/21] net/ice/base: add more capability to admin queue

2020-10-27 Thread Qi Zhang
Add below 3 new capability to "Get Capabilities" AQ commands 0x000A and 0x000B. ICE_AQC_CAPS_IWARP ICE_AQC_CAPS_PCIE_RESET_AVOIDANCE ICE_AQC_CAPS_NVM_MGMT Signed-off-by: Amir Shay Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_adminq_cmd.h | 3 +++ 1 file changed, 3 insertions(+) diff -

[dpdk-dev] [PATCH v3 10/21] net/ice/base: use malloc instead of calloc

2020-10-27 Thread Qi Zhang
Use *malloc() instead of *calloc() when allocating only a single object as opposed to an array of objects. Signed-off-by: Bruce Allan Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_switch.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ice/base/ice_swit

[dpdk-dev] [PATCH v3 09/21] net/ice/base: update to use package info from ice segment

2020-10-27 Thread Qi Zhang
There are two package versions in the package binary. Today, these two version numbers are the same. However, in the future that may change. Update code to use the package info from the ice segment metadata section, which is the package information that is actually downloaded to the firmware durin

[dpdk-dev] [PATCH v3 07/21] net/ice/base: add functions to allocate and free a RSS global LUT

2020-10-27 Thread Qi Zhang
Currently there is no API to allocate and free a RSS global LUT. Incoming changes to support VFs having >16 queues will require using RSS global LUT resources. The functions included will allow a PF to configure a RSS global LUT for VFs that request >16 queues. Signed-off-by: Brett Creeley Signed

[dpdk-dev] [PATCH v3 06/21] net/ice/base: read security revision

2020-10-27 Thread Qi Zhang
The main NVM module and the Option ROM module contain a security revision in their CSS header. This security revision is used to determine whether or not the signed module should be loaded at bootup. If the module security revision is lower than the associated minimum security revision, it will not

[dpdk-dev] [PATCH v3 05/21] net/ice/base: move sched function prototypes

2020-10-27 Thread Qi Zhang
These functions reside in ice_sched.c but the function protypes are declared in ice_common.h. Move the function prototypes to ice_sched.h. Signed-off-by: Tony Nguyen Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_common.h | 7 --- drivers/net/ice/base/ice_sched.h | 8 2 file

[dpdk-dev] [PATCH v3 03/21] net/ice/base: modify ptype bitmap for outer MAC

2020-10-27 Thread Qi Zhang
Add below ptypes into ice_ptypes_mac_ofos: MAC_IPV4[6]_ESP MAC_IPV4[6]_AH MAC_IPV4[6]_NAT_T_ESP MAC_IPV4[6]_NAT_T_IKE MAC_IPV4[6]_NAT_T_KEEP MAC_IPV4[6]_PFCP_NODE MAC_IPV4[6]_PFCP_SESSION MAC_IPV4[6]_L2TPV3 So above ptype can also be selected by a filter when outer mac header is required. Signed

[dpdk-dev] [PATCH v3 02/21] net/ice/base: add NVM Write Response flags

2020-10-27 Thread Qi Zhang
Added NVM Write Admin Command (0x703) ARQ response flags - as returned in "Response flags" field. Three flags are supported: POR, PERST and EMPR. All indicate the type of reset required to get the NVM bank update effective. Signed-off-by: Amir Shay Signed-off-by: Qi Zhang --- drivers/net/ice/ba

[dpdk-dev] [PATCH v3 04/21] net/ice/base: rename ptype bitmap

2020-10-27 Thread Qi Zhang
Align all ptype bitmap to follow ice_ptypes_xxx prefix. Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_flow.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c index 45990aeca0..4512b12368

[dpdk-dev] [PATCH v3 00/21] ice: update base code

2020-10-27 Thread Qi Zhang
main change: 1. Refactor the RSS configure API. 2. Add global LUT support . 3. copule fix and code clean v3: - fix gtpu rss bug in patch 19/22 v2: - fix missing code in patch 19/21. *** BLURB HERE *** Qi Zhang (21): net/ice/base: add tunnel support for FDIR net/ice/base: add NVM Write Respo

[dpdk-dev] [PATCH v3 01/21] net/ice/base: add tunnel support for FDIR

2020-10-27 Thread Qi Zhang
Add struct to store outer part for tunnel rule. Add vxlan ptype in ipv4 mac bitmap. So when create a vxlan rule, the ptype group will be valid. Signed-off-by: Zhirun Yan Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_fdir.c | 8 drivers/net/ice/base/ice_fdir.h | 9 + driv

[dpdk-dev] [PATCH v7 1/1] app/testpmd: fix max rx packet length for VLAN packets

2020-10-27 Thread SteveX Yang
When the max rx packet length is smaller than the sum of mtu size and ether overhead size, it should be enlarged, otherwise the VLAN packets will be dropped. Fixes: 35b2d13fd6fd ("net: add rte prefix to ether defines") Signed-off-by: SteveX Yang --- app/test-pmd/testpmd.c | 20 +

[dpdk-dev] [PATCH v7 0/1] fix default max mtu size when device configured

2020-10-27 Thread SteveX Yang
Update the max_rx_pkt_len to have MTU as RTE_ETHER_MTU. v7: * drop patch 2 due to Jumbo frame flag issue; v6: * change the max_rx_pkt_len in the init_config of testpmd; * change the mtu value in the rte_ethdev; v5: * update comments and commit messages; v4: * add the adjust condition for max_

[dpdk-dev] [PATCH] net/mlx5: support Flow Tag and Packet Header miniCQEs

2020-10-27 Thread Alexander Kozyrev
CQE compression allows us to save the PCI bandwidth and improve the performance by compressing several CQEs togheter to a miniCQE. But the miniCQE size is only 8 bytes and this limits the ability to sucessfuly keep the compression session in case of various traffic patterns. The current miniCQE fo

[dpdk-dev] [PATCH v2] net/txgbe: fix driver exit

2020-10-27 Thread Jiawen Wu
Replace the 'rte_panic()' with an error return. Also change the type of the calling function. Signed-off-by: Jiawen Wu --- drivers/net/txgbe/txgbe_ethdev.c | 11 +-- drivers/net/txgbe/txgbe_ethdev.h | 2 +- drivers/net/txgbe/txgbe_pf.c | 23 ++- 3 files changed,

Re: [dpdk-dev] [PATCH v10 0/9] Add PMD power mgmt

2020-10-27 Thread Ajit Khaparde
On Tue, Oct 27, 2020 at 7:59 AM Liang Ma wrote: > > This patchset proposes a simple API for Ethernet drivers > to cause the CPU to enter a power-optimized state while > waiting for packets to arrive, along with a set of > generic intrinsics that facilitate that. This is achieved > through cooperat

Re: [dpdk-dev] [PATCH v3] gso: fix free issue of mbuf gso segments attach to

2020-10-27 Thread Hu, Jiayu
Acked-by: Jiayu Hu > -Original Message- > From: yang_y...@163.com > Sent: Monday, October 26, 2020 2:47 PM > To: dev@dpdk.org > Cc: Hu, Jiayu ; Ananyev, Konstantin > ; techbo...@dpdk.org; > tho...@monjalon.net; yangy...@inspur.com; yang_y...@163.com > Subject: [PATCH v3] gso: fix free is

[dpdk-dev] [PATCH v2 0/1] build: add Graviton2(arm64) meson configuration

2020-10-27 Thread Vimal Chungath
V2 changes: - drop make patch Vimal Chungath (1): build: add Graviton2(arm64) meson configuration config/arm/arm64_graviton2_linux_gcc | 17 + config/arm/meson.build | 12 +++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 config/ar

[dpdk-dev] [PATCH v2 1/1] build: add Graviton2(arm64) meson configuration

2020-10-27 Thread Vimal Chungath
Add meson build configuration for Graviton2 platform with 64-bit Arm Neoverse N1 cores. This patch makes the following changes to generic Neoverse N1 config: 1. increase lcore limit to 64 2. increase memory support to 1TB 3. remove +crc from -march as that is default when setting armv8.2 For more

[dpdk-dev] [PATCH v4 34/34] net/mlx5: remove shared context lock

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow insertion, this patch removes shared data lock since all resources should support concurrent protection. Signed-off-by: Xueming Li Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- doc/guides/nics/mlx5.rst | 1 + doc/guides/re

[dpdk-dev] [PATCH v4 32/34] net/mlx5: make tunnel hub list thread safe

2020-10-27 Thread Suanming Mou
This commit uses spinlock to protect the tunnel hub list in multiple thread. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow.c | 20 +--- drivers/net/mlx5/mlx5_flow.h | 1 + 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers

[dpdk-dev] [PATCH v4 29/34] net/mlx5: make sample and mirror action thread safe

2020-10-27 Thread Suanming Mou
This commit uses cache list to make sample and mirror action thread safe. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 14 ++ drivers/net/mlx5/mlx5.h | 5 +- drivers/net/mlx5/mlx5_flow.h | 28 ++- drivers/net/mlx5/mlx5_flow_dv.c | 39

[dpdk-dev] [PATCH v4 33/34] net/mlx5: make shared action list thread safe

2020-10-27 Thread Suanming Mou
This commit uses spinlock to protect the shared action list in multiple thread. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 1 + drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/mlx5_flow_dv.c | 5 + 3 files changed, 7 insertions(+) dif

[dpdk-dev] [PATCH v4 30/34] net/mlx5: make tunnel offloading table thread safe

2020-10-27 Thread Suanming Mou
To support multi-thread flow insertion, this patch updates tunnel offloading hash table to use thread safe hash list. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow.c| 92 ++--- drivers/net/mlx5/mlx5_flow_dv.c | 11 +

[dpdk-dev] [PATCH v4 31/34] net/mlx5: remove unused hash list operations

2020-10-27 Thread Suanming Mou
In previous commits the hash list objects have been converted to new thread safe hash list. The legacy hash list code can be removed now. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 38 - drivers/net/mlx5/mlx5_utils.h | 66 --

[dpdk-dev] [PATCH v4 27/34] net/mlx5: simplify sample attributes

2020-10-27 Thread Suanming Mou
Currently, the sample action resource already has ft_type to indicate the action domain attribute, the extra flow attributes parameter can be optimized. This commit uses action resource ty_type as domain attribute instead of the flow attribute. Signed-off-by: Suanming Mou Acked-by: Matan Azrad

[dpdk-dev] [PATCH v4 25/34] net/mlx5: make port ID action cache thread safe

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow insertion, this patch convert port id action cache list to thread safe cache list. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 7 ++ drivers/net/mlx5/mlx5.h | 2 +- drivers/net/mlx5/mlx5_flow

[dpdk-dev] [PATCH v4 28/34] net/mlx5: fix sample register error flow

2020-10-27 Thread Suanming Mou
Currently, sample flow need to prepare and register the sub-actions before sample action is created. Once the same sample action exists, the sub-actions registered by the second flow should be released, or these sub-actions will be leaked. Since the exist sample action only release these same sub-

[dpdk-dev] [PATCH v4 26/34] net/mlx5: make push VLAN action cache thread safe

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow insertion, this patch converts push VLAN action cache list to thread safe cache list. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 7 ++ drivers/net/mlx5/mlx5.h | 2 +- drivers/net/mlx5/mlx5_f

[dpdk-dev] [PATCH v4 23/34] net/mlx5: make Rx queue thread safe

2020-10-27 Thread Suanming Mou
This commit applies the cache linked list to Rx queue to make it thread safe. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 5 + drivers/net/mlx5/mlx5.c| 1 + drivers/net/mlx5/mlx5.h| 28 +++- drivers/net/mlx5/mlx5_flow.h

[dpdk-dev] [PATCH v4 21/34] net/mlx5: introduce thread safe linked list cache

2020-10-27 Thread Suanming Mou
From: Xueming Li New API of linked list for cache: - Optimized for small amount cache list. - Optimized for read-most list. - Thread safe. - Since number of entries are limited, entries allocated by API. - For dynamic entry size, pass 0 as entry size, then the creation callback allocate the entry

[dpdk-dev] [PATCH v4 24/34] net/mlx5: make matcher list thread safe

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow insertion, this path converts matcher list to use thread safe cache list API. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5.h | 3 + drivers/net/mlx5/mlx5_flow.h| 15 ++- drivers/net/mlx5/mlx5_flow_dv.c |

[dpdk-dev] [PATCH v4 22/34] net/mlx5: optimize shared RSS list operation

2020-10-27 Thread Suanming Mou
When create shared RSS hrxq, the hrxq will be created directly, no hrxq will be reused. In this case, add the shared RSS hrxq to the queue list is redundant. And it also hurts the generic queue lookup. This commit avoids add the shared RSS hrxq to the queue list. Signed-off-by: Suanming Mou Ack

[dpdk-dev] [PATCH v4 19/34] net/mlx5: make metadata copy flow list thread safe

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow insertion, this patch updates metadata copy flow list to use thread safe hash list. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 5 +- drivers/net/mlx5/mlx5_flow.c | 162 ++---

[dpdk-dev] [PATCH v4 20/34] net/mlx5: make header reformat action thread safe

2020-10-27 Thread Suanming Mou
To support multi-thread flow insertion, this patch updates flow header reformat action list to use thread safe hash list with write-most mode. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 7 +- drivers/net/mlx5/mlx5_flow.h | 7 ++ drivers/net/

[dpdk-dev] [PATCH v4 18/34] net/mlx5: remove unused mreg copy code

2020-10-27 Thread Suanming Mou
After non-cache mode feature was implemented, the flows can only be created when port started. No need to check if the mreg flows are created in port stopped status, and apply the mreg flows after port start will also never happen. This commit removed the relevant not used mreg copy code. Signed-

[dpdk-dev] [PATCH v4 16/34] net/mlx5: make flow tag list thread safe

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow insertion, this patch updates flow tag list to use thread safe hash list with write-most mode. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 5 +- drivers/net/mlx5/mlx5_flow.h | 5 ++ drivers/net/mlx5

[dpdk-dev] [PATCH v4 17/34] net/mlx5: make flow modify action list thread safe

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow insertion, this patch updates flow modify action list to use thread safe hash list with write-most mode. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 7 +- drivers/net/mlx5/mlx5_flow.h | 14 ++- dri

[dpdk-dev] [PATCH v4 15/34] net/mlx5: fix redundant Direct Verbs resources allocate

2020-10-27 Thread Suanming Mou
All table, tag, header modify, header reformat are supported only on DV mode. For the OFED version doesn't support these, create the related redundant DV resources waste the memory. Add the code section in the HAVE_IBV_FLOW_DV_SUPPORT macro to avoid the redundant resources allocation. Fixes: 2eb4

[dpdk-dev] [PATCH v4 13/34] net/mlx5: add flow table tunnel offload attribute

2020-10-27 Thread Suanming Mou
As flow table is shared between the ports in the same shared IB device, flow table may be created by one port and released by other port. Currently, the tunnel offloading active check in flow table release is based on the port which release the flow table. Since the flow table create port and rele

[dpdk-dev] [PATCH v4 14/34] net/mlx5: make flow table cache thread safe

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow insertion/removal, this patch uses thread safe hash list API for flow table cache hash list. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5.c | 99 +++ drivers/net/mlx5/mlx5.h | 2 +- drive

[dpdk-dev] [PATCH v4 11/34] net/mlx5: create global drop action

2020-10-27 Thread Suanming Mou
This commit creates the global drop action for flows instead of maintain it in flow insertion time. The uniqueu global drop action makes it thread safe. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 5 + drivers/net/mlx5/mlx5.c| 2 +

[dpdk-dev] [PATCH v4 10/34] net/mlx5: create global default miss action

2020-10-27 Thread Suanming Mou
This commit creates the global default miss action instead of maintain it in flow insertion time. This makes the action to be thread safe. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 7 drivers/net/mlx5/mlx5.h | 9 +--- drivers/net/ml

[dpdk-dev] [PATCH v4 12/34] net/mlx5: support concurrent access for hash list

2020-10-27 Thread Suanming Mou
From: Xueming Li In order to support hash list concurrent access, adding next: 1. List level read/write lock. 2. Entry reference counter. 3. Entry create/match/remove callback. 4. Remove insert/lookup/remove function which are not thread safe. 5. Add register/unregister function to support entry

[dpdk-dev] [PATCH v4 06/34] net/mlx5: make rte flow list thread safe

2020-10-27 Thread Suanming Mou
From: Xueming Li To support multi-thread flow operations, this patch introduces list lock for the rte_flow list manages all the rte_flow handlers. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 1 + drivers/net/mlx5/mlx5.h | 1 + drivers/net/

[dpdk-dev] [PATCH v4 08/34] net/mlx5: make VLAN network interface thread safe

2020-10-27 Thread Suanming Mou
This commit protects the VLAN VM workaround area using a spinlock in multiple-thread flow insertion to make it thread safe. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/common/mlx5/linux/mlx5_nl.h | 1 + drivers/net/mlx5/linux/mlx5_vlan_os.c | 5 + 2 files changed, 6 inse

[dpdk-dev] [PATCH v4 09/34] net/mlx5: create global jump action

2020-10-27 Thread Suanming Mou
This commit changes the jump action in table to be created with table creation in advanced. In this case, the jump action is safe to be used in multiple thread. The jump action will be destroyed when table is not used anymore and released. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- d

[dpdk-dev] [PATCH v4 07/34] net/mlx5: make meter action thread safe

2020-10-27 Thread Suanming Mou
This commit adds the spinlock for the meter action to make it be thread safe. Atomic reference counter in all is not enough as the meter action should be created synchronized with reference counter increment. With only atomic reference counter, even the counter is increased, the action may still no

[dpdk-dev] [PATCH v4 05/34] net/mlx5: use indexed pool as ID generator

2020-10-27 Thread Suanming Mou
From: Xueming Li The ID generation API used an integer pool to save released ID, To support multiple flow, it has to be enhanced to be thread safe. Indexed pool could be used to generate unique ID by setting size of pool entry to zero. Since bitmap is used, an extra benefits is saving memory to

[dpdk-dev] [PATCH v4 02/34] net/mlx5: use thread specific flow workspace

2020-10-27 Thread Suanming Mou
From: Xueming Li As part of multi-thread flow support, this patch moves flow intermediate data to thread specific, makes them a flow workspace. The workspace is allocated per thread, destroyed along with thread life-cycle. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/l

[dpdk-dev] [PATCH v4 04/34] net/mlx5: indexed pool supports zero size entry

2020-10-27 Thread Suanming Mou
From: Xueming Li To make indexed pool to be used as ID generator, this patch allows entry size to be zero. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_utils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_utils.c b/

[dpdk-dev] [PATCH v4 03/34] net/mlx5: reuse flow Id as hairpin Id

2020-10-27 Thread Suanming Mou
From: Xueming Li Hairpin flow matching required a unique flow ID for matching. This patch reuses flow ID as hairpin flow ID, this will save some code to generate a separate hairpin ID, also saves flow memory by removing hairpin ID. Signed-off-by: Xueming Li Acked-by: Matan Azrad --- drivers/n

[dpdk-dev] [PATCH v4 01/34] net/mlx5: use thread safe index pool for flow objects

2020-10-27 Thread Suanming Mou
As mlx5 PMD is changed to be thread safe, all the flow-related sub-objects inside the PMD should be thread safe. This commit changes the index memory pools' lock configuration to be enabled. That makes the index pool be thread safe. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/

Re: [dpdk-dev] [PATCH v9 04/10] ethdev: add simple power management API

2020-10-27 Thread Ananyev, Konstantin
> -Original Message- > From: Thomas Monjalon > Sent: Tuesday, October 27, 2020 6:31 PM > To: Ma, Liang J ; Ananyev, Konstantin > > Cc: dev@dpdk.org; Burakov, Anatoly ; > vikto...@rehivetech.com; Zhang, Qi Z ; > ruifeng.w...@arm.com; Xing, Beilei ; Guo, Jia > ; Yang, Qiming ; > Wang,

[dpdk-dev] [PATCH v4 00/34] net/mlx5: support multiple-thread flow operations

2020-10-27 Thread Suanming Mou
This patch set contains multiple-thread flow operations support for the flow objects. Suanming Mou (19): net/mlx5: use thread safe index pool for flow objects net/mlx5: make meter action thread safe net/mlx5: make VLAN network interface thread safe net/mlx5: create global jump action ne

[dpdk-dev] [PATCH v1 62/72] net/mlx5/linux: fix add OS dest_devx_tir action

2020-10-27 Thread Ophir Munk
Wrap glue call dv_create_flow_action_dest_devx_tir() with an OS API. Fixes: b293fbf9672b ("net/mlx5: add OS specific flow actions operations") Cc: sta...@dpdk.org Signed-off-by: Ophir Munk --- drivers/net/mlx5/linux/mlx5_flow_os.h | 26 ++ drivers/net/mlx5/mlx5_devx.c

[dpdk-dev] [PATCH v1 55/72] net/mlx5/windows: support get pdn

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman Implement OS function call to get pdn. Signed-off-by: Tal Shnaiderman --- drivers/net/mlx5/windows/mlx5_os.c | 21 + 1 file changed, 21 insertions(+) diff --git a/drivers/net/mlx5/windows/mlx5_os.c b/drivers/net/mlx5/windows/mlx5_os.c index e334110..

[dpdk-dev] [PATCH v1 54/72] net/mlx5: exclude rte_intr_callback_register call

2020-10-27 Thread Ophir Munk
Exclude call to rte_intr_callback_register under Windows using definition RTE_EXEC_ENV_WINDOWS. Signed-off-by: Ophir Munk --- drivers/net/mlx5/mlx5_txpp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txpp.c b/drivers/net/mlx5/mlx5_txpp.c index c22ddc9..4405054 1006

[dpdk-dev] [PATCH v1 59/72] net/mlx5/windows: support VF PCI address

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman Support VF BDF scanning by checking both the BDF and raw BDF provided by DevX. In Linux a PCI address is formatted as: domain, bus, device, function (DBDF). This is right for both a PF and a VF. In Windows a PF also has a DBDF format, but the domain is always 0, while a VF

[dpdk-dev] [PATCH v1 58/72] net/mlx5/windws: spawn eth devices

2020-10-27 Thread Ophir Munk
This commit implements mlx5_dev_spawn() API which allocates an eth device (struct rte_eth_dev) for each PCI device. When working with representors virtual functions (as in Linux), one PCI device may spawn several eth devices: the master device for the main physical function (PF) and several represe

[dpdk-dev] [PATCH v1 72/72] mlx5: build pmd only with the clang compiler

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman Currently the mlx5 PMD is supported on Windows for clang compiler only, adding restriction in meson.build files until mingw support will be added as well. Signed-off-by: Tal Shnaiderman --- drivers/common/mlx5/meson.build | 4 ++-- drivers/net/mlx5/meson.build| 4 ++--

[dpdk-dev] [PATCH v1 57/72] net/mlx5/windows: initial probing implementation

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman This commit implements mlx5_os_pci_probe API under Windows. It does all required initializations then it gets the PCI device list using glue API get_device_list(). Next, all non MLX5 matched devices are filtered out. The supported NIC types are: CONNECTX4VF, CONNECTX4LXVF,

[dpdk-dev] [PATCH v1 60/72] net/mlx5/linux: wrap adjust flow priority with OS calls

2020-10-27 Thread Ophir Munk
mlx5_flow_adjust_priority() is used to adjust priorities according to priorities levels. It is Verbs based and it is called from shared code (mlx5_flow_dv.c). Therefore, wrap it in an OS API. Signed-off-by: Ophir Munk --- drivers/net/mlx5/linux/mlx5_flow_os.h | 20 drivers/n

[dpdk-dev] [PATCH v1 51/72] net/mlx5/windows: support get interface name

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman This commit copies the interface name as saved in the device context since its creation. Signed-off-by: Tal Shnaiderman --- drivers/net/mlx5/windows/mlx5_ethdev_os.c | 28 1 file changed, 28 insertions(+) diff --git a/drivers/net/mlx5/windows

[dpdk-dev] [PATCH v1 70/72] common/mlx5: fix Windows warnings on missing enum

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman This commit replaces included file mlx5_glue.h with file mlx5_prm.h in file mlx5_common_mp.h. The new inclusion defines 'enum ibv_wq_state' which is used in file mlx5_common_mp.h and causes Windows compilation warnings if not declared in advance. Fixes: 9d60f54569fd ("commo

[dpdk-dev] [PATCH v1 56/72] net/mlx5/windows: support open device

2020-10-27 Thread Ophir Munk
This commit implements mlx5_os_open_device() API. It calls glue API open_device() then glue API query_device() to fill in 'struct mlx5_context' with data for later usage. Signed-off-by: Ophir Munk --- drivers/net/mlx5/windows/mlx5_os.c | 43 ++ 1 file changed,

[dpdk-dev] [PATCH v1 66/72] net/mlx5/windows: create flow action dest TIR object

2020-10-27 Thread Ophir Munk
This commit implements mlx5_flow_os_create_flow_action_dest_devx_tir() API as the Linux rdma-core equivalent. Missing rdma-core parameters are added to file mlx5_win_defs.h. The action TIR id and type (MLX5_FLOW_CONTEXT_DEST_TYPE_TIR) are saved in the action struct. The action struct will be added

[dpdk-dev] [PATCH v1 52/72] net/mlx5/windows: support is removed

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman This commit implements mlx5_is_removed() API. A new glue call 'init_shutdown_event' is added to support the new API. Signed-off-by: Tal Shnaiderman --- drivers/common/mlx5/windows/mlx5_glue.c| 21 + drivers/common/mlx5/windows/mlx5_glue.h| 1 +

[dpdk-dev] [PATCH v1 65/72] net/mlx5/windows: create flow matcher object

2020-10-27 Thread Ophir Munk
This commit implements the mlx5_flow_os_create_flow_matcher() API. It is the Linux rdma-core equivalent implementation. Missing rdma-core parameters (e.g. struct mlx5dv_flow_match_parameters) are added to file mlx5_win_defs.h. The API allocates space to hold the PRM bits in PRM fte_match_param form

[dpdk-dev] [PATCH v1 69/72] net/mlx5: fix separating eth_dev_ops per OS

2020-10-27 Thread Ophir Munk
There are three types of eth_dev_ops: primary, secondary and isolate represented in three callback tables per OS. In this commit the OS specific eth dev tables are unified into shared tables in file mlx5.c. Starting from this commit all operating systems must implement the same eth dev APIs. In ca

[dpdk-dev] [PATCH v1 71/72] net/mlx5: fix Windows warnings on get_if_name

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman Windows warns on missing function prototype get_if_name. To fix it - move the prototype to shared file mlx5.h and add missing definition IF_NAMESIZE to Windows mlx5_os.h file. Fixes: e9c0b96e3526 ("net/mlx5: move Linux ifname function") Cc: sta...@dpdk.org Signed-off-by: T

[dpdk-dev] [PATCH v1 46/72] net/mlx5/windows: support get mac

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman This commits implements API mlx5_get_mac(). It returns the MAC address saved in the device context since its creation. Signed-off-by: Tal Shnaiderman --- drivers/net/mlx5/windows/meson.build | 1 + drivers/net/mlx5/windows/mlx5_ethdev_os.c | 43

[dpdk-dev] [PATCH v1 63/72] drivers/net: enable Windows net/mlx5 compilation

2020-10-27 Thread Ophir Munk
Add mlx5 as the first driver to be compiled under Windows (file drivers/net/meson.build). Signed-off-by: Ophir Munk --- drivers/net/meson.build | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/meson.build b/drivers/net/meson.build index 4e4c2c9..a341962 10

[dpdk-dev] [PATCH v1 49/72] net/mlx5/windows: support read clock

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman This commit adds a new glue function query_rt_values to support the new API mlx5_read_clock(). Signed-off-by: Tal Shnaiderman --- drivers/common/mlx5/mlx5_prm.h | 1 + drivers/common/mlx5/windows/mlx5_glue.c| 26 ++ drivers/common/

[dpdk-dev] [PATCH v1 53/72] net/mlx5/windws: add VLAN stubs

2020-10-27 Thread Ophir Munk
This commit adds stubs to VLAN VM operations. It is the Windows equivalent implementation of (1). The Linux implementation was based on Netlink APIs which are not supported in Windows. (1) commit 7af10d29a4a0 ("net/mlx5/linux: refactor VLAN") Signed-off-by: Ophir Munk --- drivers/net/mlx5/win

[dpdk-dev] [PATCH v1 68/72] net/mlx5: use HAVE_INFINIBAND_VERBS_H in shared code

2020-10-27 Thread Ophir Munk
Use macro HAVE_INFINIBAND_VERBS_H to successfully compile files both under Linux and Windows (or any non Linux in general). Under Windows this macro: 1. Hides Verbs references. 2. Exposes required DV structs that are under ifdefs related to rdma core. Linux code under definitions such as #ifdef HA

[dpdk-dev] [PATCH v1 67/72] net/mlx5/windows: create flow rule

2020-10-27 Thread Ophir Munk
This commit implements mlx5_flow_os_create_flow() API. It is equivalent to Linux rdma-core implementation. The API receives the matcher mask, matcher value and an array of actions. They are copied into a PRM-like struct devx_fs_rule_add_in. Then glue API devx_fs_rule_add() is called. Signed-off-by

[dpdk-dev] [PATCH v1 50/72] net/mlx5/windows: support get mtu

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman This commit implements API mlx5_get_mtu(). It returns the MTU size as saved in the device context since its creation. Signed-off-by: Tal Shnaiderman --- drivers/net/mlx5/windows/mlx5_ethdev_os.c | 27 +++ 1 file changed, 27 insertions(+) diff --gi

[dpdk-dev] [PATCH v1 61/72] net/mlx5/linux: add OS default miss flow action

2020-10-27 Thread Ophir Munk
Wrap glue call dr_create_flow_action_default_miss() with an OS API. This commit is a follow up on (1). (1) commit d4d85aa6f13a ("common/mlx5: add default miss action") commit b293fbf9672b ("net/mlx5: add OS specific flow actions operations") Signed-off-by: Ophir Munk --- drivers/net/mlx5/linux/

[dpdk-dev] [PATCH v1 48/72] net/mlx5/windows: support link update

2020-10-27 Thread Ophir Munk
From: Tal Shnaiderman Add support for mlx5_link_update() to get link speed and link state. Other parameters are currently hard-coded. Signed-off-by: Tal Shnaiderman --- drivers/net/mlx5/windows/mlx5_ethdev_os.c | 39 +++ 1 file changed, 39 insertions(+) diff --git

  1   2   3   4   >