[PATCH] version: 25.03-rc0

2024-12-02 Thread David Marchand
Start a new release cycle with empty release notes. Bump version and ABI minor. Bump libabigail from 2.4 to 2.6 and enable ABI checks. Signed-off-by: David Marchand --- .github/workflows/build.yml| 8 +- ABI_VERSION| 2 +- VERSION

Question on TX offload

2024-12-02 Thread Jie Hai
Hi, all maintainers and developers, Since the hns3 NIC support TSO for UDP (not UDP Fragmentation) and for ipv6 headers with extension header, When I test it with testpmd, it cannot be performed. The TCP segmentation flag is set only for the packets whose next header of L3 is TCP. I checked so

Re: lib/eal/arm/include/rte_vect.h fails to compile with clang14 for 32bit ARM

2024-12-02 Thread Ruifeng Wang
+Arm folks. From: Roger Melton (rmelton) Date: Tuesday, December 3, 2024 at 3:39 AM To: dev@dpdk.org , Ruifeng Wang Subject: lib/eal/arm/include/rte_vect.h fails to compile with clang14 for 32bit ARM Hey folks, We are building DPDK with clang14 for a 32bit armv8-a based CPU and ran into a com

Re: [PATCH v2 1/3] net: add thread-safe crc api

2024-12-02 Thread Stephen Hemminger
On Tue, 1 Oct 2024 19:11:48 +0100 Arkadiusz Kusztal wrote: > The current net CRC API is not thread-safe, this patch > solves this by adding another, thread-safe API functions. Couldn't the old API be made threadsafe with TLS? > This API is also safe to use across multiple processes, > yet with

Re: [v1 01/12] net/enetc: Add initial ENETC4 PMD driver support

2024-12-02 Thread Stephen Hemminger
On Fri, 18 Oct 2024 12:56:33 +0530 vanshika.shu...@nxp.com wrote: > +#. **Linux Kernel** > + > + It can be obtained from `NXP's Github hosting > `_. > + IF the driver only exists for the DPDK then shouldn't it be in the DPDK kmods repo? I looked at the g

[PATCH v1 1/1] usertools/devbind: update coding style

2024-12-02 Thread Anatoly Burakov
Devbind is one of the oldest tools in DPDK, and is written in a way that uses a lot of string matching, no type safety, lots of global variables, and has a few inconsistencies in the way it handles data (such as differences between lspci calls and parsing in different circumstances). This patch is

Re: [PATCH v1 11/21] net/_common_intel: add post-Tx buffer free function

2024-12-02 Thread Bruce Richardson
On Mon, Dec 02, 2024 at 01:59:37PM +0100, David Marchand wrote: > On Mon, Dec 2, 2024 at 12:27 PM Bruce Richardson > wrote: > > > > The actions taken for post-Tx buffer free for the SSE and AVX drivers > > for i40e, iavf and ice drivers are all common, so centralize those in > > common/intel_eth d

[PATCH v1 0/1] Rewrite devbind

2024-12-02 Thread Anatoly Burakov
It has been suggested [1] that a major cleanup/rewrite of devbind would be beneficial in terms of long term maintainability of the code. I was in a coding mood over the weekend, and so I've went ahead and rewritten devbind. Note that this is one giant patch, rather than a series of patches adjusti

Re: [RFC 1/3] eal: add enhanced lock annotations

2024-12-02 Thread Stephen Hemminger
On Mon, 2 Dec 2024 13:53:14 +0100 David Marchand wrote: > diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in > index d23352d300..ac490e7631 100644 > --- a/doc/api/doxy-api.conf.in > +++ b/doc/api/doxy-api.conf.in > @@ -103,6 +103,18 @@ PREDEFINED = __DOXYGEN__ \ >

Re: [PATCH v1 0/1] Rewrite devbind

2024-12-02 Thread Bruce Richardson
On Mon, Dec 02, 2024 at 03:09:33PM +, Anatoly Burakov wrote: > It has been suggested [1] that a major cleanup/rewrite of devbind would be > beneficial in terms of long term maintainability of the code. I was in a > coding mood over the weekend, and so I've went ahead and rewritten devbind. > >

Re: [PATCH v1 09/21] net/ixgbe: use common Tx queue structure

2024-12-02 Thread Bruce Richardson
On Mon, Dec 02, 2024 at 02:09:35PM +, Bruce Richardson wrote: > On Mon, Dec 02, 2024 at 01:51:35PM +, Medvedkin, Vladimir wrote: > >Hi Bruce, > > > >On 02/12/2024 11:24, Bruce Richardson wrote: > > > > Merge in additional fields used by the ixgbe driver and then convert it > > ove

[PATCH] net/ixgbe: fix missing E610 support in flow engine

2024-12-02 Thread Vladimir Medvedkin
Currently flow engine is missing a new mac type E610 in the check for fdir support. This patch adds this mac type to the check. Fixes: 316637762a5f ("net/ixgbe/base: enable E610 device") Cc: sta...@dpdk.org Signed-off-by: Vladimir Medvedkin --- drivers/net/ixgbe/ixgbe_fdir.c | 3 ++- drivers/ne

lib/eal/arm/include/rte_vect.h fails to compile with clang14 for 32bit ARM

2024-12-02 Thread Roger Melton (rmelton)
Hey folks, We are building DPDK with clang14 for a 32bit armv8-a based CPU and ran into a compile error with the following from lib/eal/arm/include/rte_vect.h: #if (defined(RTE_ARCH_ARM) && defined(RTE_ARCH_32)) || \ (defined(RTE_ARCH_ARM64) && RTE_CC_IS_GNU

Re: [PATCH v4] net/hns3: fix Rx packet without CRC data

2024-12-02 Thread Stephen Hemminger
On Wed, 27 Nov 2024 18:08:07 +0800 Jie Hai wrote: > From: Dengdui Huang > > When KEEP_CRC offload is enabled, the CRC data is still stripped > in following cases: > 1. For HIP08 network engine, the packet type is TCP and the length >is less than or equal to 60B. > 2. For HIP09 network engin

[PATCH v2] common/cnxk: fix atomic load in batch ops

2024-12-02 Thread Nawal Kishor
In roc batch alloc wait code, __ATOMIC_RELAXED is changed to __ATOMIC_ACQUIRE in order to avoid potential out of order loads. Fixes: 50d08d3934ec ("common/cnxk: fix batch alloc completion poll logic") Signed-off-by: Nawal Kishor --- v2: Fixed review comments drivers/common/cnxk/roc_npa.h | 2 +

Re: [PATCH v1 0/1] Rewrite devbind

2024-12-02 Thread Stephen Hemminger
On Mon, 2 Dec 2024 15:09:33 + Anatoly Burakov wrote: > It has been suggested [1] that a major cleanup/rewrite of devbind would be > beneficial in terms of long term maintainability of the code. I was in a > coding mood over the weekend, and so I've went ahead and rewritten devbind. > > Note

RE: [PATCH v3] net/mlx5: fix RSS hash for non-RSS CQE zipping

2024-12-02 Thread Dariusz Sosnowski
> -Original Message- > From: Alexander Kozyrev > Sent: Saturday, November 30, 2024 01:39 > To: dev@dpdk.org > Cc: sta...@dpdk.org; Raslan Darawsheh ; Slava Ovsiienko > ; Matan Azrad ; Dariusz > Sosnowski ; Bing Zhao ; > Suanming Mou > Subject: [PATCH v3] net/mlx5: fix RSS hash for non-

Re: [PATCH v1 11/21] net/_common_intel: add post-Tx buffer free function

2024-12-02 Thread David Marchand
On Mon, Dec 2, 2024 at 2:24 PM Bruce Richardson wrote: > > On Mon, Dec 02, 2024 at 01:59:37PM +0100, David Marchand wrote: > > On Mon, Dec 2, 2024 at 12:27 PM Bruce Richardson > > wrote: > > > > > > The actions taken for post-Tx buffer free for the SSE and AVX drivers > > > for i40e, iavf and ice

Re: [PATCH v1 09/21] net/ixgbe: use common Tx queue structure

2024-12-02 Thread Bruce Richardson
On Mon, Dec 02, 2024 at 01:51:35PM +, Medvedkin, Vladimir wrote: >Hi Bruce, > >On 02/12/2024 11:24, Bruce Richardson wrote: > > Merge in additional fields used by the ixgbe driver and then convert it > over to using the common Tx queue structure. > > Signed-off-by: Bruce Richardson [

Re: [PATCH v1 09/21] net/ixgbe: use common Tx queue structure

2024-12-02 Thread Medvedkin, Vladimir
Hi Bruce, On 02/12/2024 11:24, Bruce Richardson wrote: Merge in additional fields used by the ixgbe driver and then convert it over to using the common Tx queue structure. Signed-off-by: Bruce Richardson --- drivers/net/_common_intel/tx.h| 14 +++- drivers/net/ixgbe/ixgbe_eth

Re: [PATCH v1 11/21] net/_common_intel: add post-Tx buffer free function

2024-12-02 Thread Bruce Richardson
On Mon, Dec 02, 2024 at 01:59:37PM +0100, David Marchand wrote: > On Mon, Dec 2, 2024 at 12:27 PM Bruce Richardson > wrote: > > > > The actions taken for post-Tx buffer free for the SSE and AVX drivers > > for i40e, iavf and ice drivers are all common, so centralize those in > > common/intel_eth d

[RFC 3/3] eal: enhance lock annotations for rwlock

2024-12-02 Thread David Marchand
Convert rwlock to the clang capability annotations. Signed-off-by: David Marchand --- lib/eal/common/eal_memalloc.h| 2 +- lib/eal/common/eal_private.h | 2 +- lib/eal/include/generic/rte_rwlock.h | 23 ++-- lib/eal/include/rte_eal_memconfig.h | 24 ++-- lib/ethdev/ethdev_

Re: [PATCH v1 11/21] net/_common_intel: add post-Tx buffer free function

2024-12-02 Thread David Marchand
On Mon, Dec 2, 2024 at 12:27 PM Bruce Richardson wrote: > > The actions taken for post-Tx buffer free for the SSE and AVX drivers > for i40e, iavf and ice drivers are all common, so centralize those in > common/intel_eth driver. > > Signed-off-by: Bruce Richardson > --- > drivers/net/_common_int

[RFC 1/3] eal: add enhanced lock annotations

2024-12-02 Thread David Marchand
Clang 3.6+ offers enhanced lock annotations when it comes to shared vs exclusive capability/lock release. Introduce macros for those new function attributes. Signed-off-by: David Marchand --- doc/api/doxy-api.conf.in | 12 +++ lib/eal/include/rte_lock_annotations.h | 48 +++

[RFC 2/3] eal: enhance lock annotations for spinlock and seqlock

2024-12-02 Thread David Marchand
Convert spinlock (and as a consequence seqlock) to the clang capability annotations. Signed-off-by: David Marchand --- drivers/bus/dpaa/base/qbman/qman.c | 4 ++-- drivers/net/fm10k/fm10k_ethdev.c | 4 ++-- lib/eal/include/generic/rte_spinlock.h | 14 +++--- lib/eal/include/r

[RFC 0/3] Improve lock annotations

2024-12-02 Thread David Marchand
A recent bug (see 22aa9a9c7099 ("vhost: fix deadlock in Rx async path")) made more visible a gap in the clang thread safety annotations that DPDK uses: no distinction is made between releasing a read lock and releasing a write lock. Clang 3.6 and later offers improved thread safety checks. Markin

[PATCH v1 13/21] net/iavf: use common Tx free fn for AVX-512

2024-12-02 Thread Bruce Richardson
Switch the iavf driver to use the common Tx free function. This requires one additional parameter to that function, since iavf sometimes uses context descriptors which means that we have double the descriptors per SW ring slot. Signed-off-by: Bruce Richardson --- drivers/net/_common_intel/tx.h

[PATCH v1 03/21] net/_common_intel: add Tx mbuf ring replenish fn

2024-12-02 Thread Bruce Richardson
Move the short function used to place mbufs on the SW Tx ring to common code to avoid duplication. Signed-off-by: Bruce Richardson --- drivers/net/_common_intel/tx.h | 7 +++ drivers/net/i40e/i40e_rxtx_vec_altivec.c | 4 ++-- drivers/net/i40e/i40e_rxtx_vec_avx2.c| 4 ++-- dr

[PATCH v1 01/21] net/_common_intel: add pkt reassembly fn for intel drivers

2024-12-02 Thread Bruce Richardson
The code for reassembling a single, multi-mbuf packet from multiple buffers received from the NIC is duplicated across many drivers. Rather than having multiple copies of this function, we can create an "_common_intel" directory to hold such functions and consolidate multiple functions down to a si

[PATCH v1 20/21] net/iavf: use vector SW ring for all vector paths

2024-12-02 Thread Bruce Richardson
The AVX-512 code path used a smaller SW ring structure only containing the mbuf pointer, but no other fields. The other fields are only used in the scalar code path, so update all vector driver code paths (AVX2, SSE) to use the smaller, faster structure. Signed-off-by: Bruce Richardson --- drive

[PATCH v1 21/21] net/ixgbe: use common Tx backlog entry fn

2024-12-02 Thread Bruce Richardson
Remove the custom vector Tx backlog entry function and use the standard intel_common one, now that all vector drivers are using the same, smaller ring structure. Signed-off-by: Bruce Richardson --- drivers/net/ixgbe/ixgbe_rxtx_vec_common.h | 10 -- drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c

[PATCH v1 17/21] net/iavf: use common Tx queue mbuf cleanup fn

2024-12-02 Thread Bruce Richardson
Adjust iavf driver to also use the common mbuf freeing functions on Tx queue release/cleanup. The implementation is complicated a little by the need to integrate the additional "has_ctx" parameter for the iavf code, but changes in other drivers are minimal - just a constant "false" parameter. Sign

[PATCH v1 19/21] net/i40e: use vector SW ring for all vector paths

2024-12-02 Thread Bruce Richardson
The AVX-512 code path used a smaller SW ring structure only containing the mbuf pointer, but no other fields. The other fields are only used in the scalar code path, so update all vector driver code paths (AVX2, SSE, Neon, Altivec) to use the smaller, faster structure. Signed-off-by: Bruce Richard

[PATCH v1 18/21] net/ice: use vector SW ring for all vector paths

2024-12-02 Thread Bruce Richardson
The AVX-512 code path used a smaller SW ring structure only containing the mbuf pointer, but no other fields. The other fields are only used in the scalar code path, so update all vector driver code paths to use the smaller, faster structure. Signed-off-by: Bruce Richardson --- drivers/net/_comm

[PATCH v1 16/21] net/ixgbe: use common Tx queue mbuf cleanup fn

2024-12-02 Thread Bruce Richardson
Update driver to use the common cleanup function. Signed-off-by: Bruce Richardson --- drivers/net/ixgbe/ixgbe_rxtx.c| 22 +++--- drivers/net/ixgbe/ixgbe_rxtx.h| 1 - drivers/net/ixgbe/ixgbe_rxtx_vec_common.h | 28 ++- drivers/net/ixgbe/ixg

[PATCH v1 15/21] net/i40e: use common Tx queue mbuf cleanup fn

2024-12-02 Thread Bruce Richardson
Update driver to be similar to the "ice" driver and use the common mbuf ring cleanup code on shutdown of a Tx queue. Signed-off-by: Bruce Richardson --- drivers/net/i40e/i40e_ethdev.h | 4 +- drivers/net/i40e/i40e_rxtx.c | 70 -- drivers/net/i40e/i40e_rxtx.h

[PATCH v1 12/21] net/_common_intel: add Tx buffer free fn for AVX-512

2024-12-02 Thread Bruce Richardson
AVX-512 code paths for ice and i40e drivers are common, and differ from the regular post-Tx free function in that the SW ring from which the buffers are freed does not contain anything other than the mbuf pointer. Merge these into a common function in intel_common to reduce duplication. Signed-off

[PATCH v1 14/21] net/ice: move Tx queue mbuf cleanup fn to common

2024-12-02 Thread Bruce Richardson
The functions to loop over the Tx queue and clean up all the mbufs on it, e.g. for queue shutdown, is not device specific and so can move into the common_intel headers. Only complication is ensuring that the correct ring format, either minimal vector or full structure, is used. Ice driver currently

[PATCH v1 11/21] net/_common_intel: add post-Tx buffer free function

2024-12-02 Thread Bruce Richardson
The actions taken for post-Tx buffer free for the SSE and AVX drivers for i40e, iavf and ice drivers are all common, so centralize those in common/intel_eth driver. Signed-off-by: Bruce Richardson --- drivers/net/_common_intel/tx.h | 71 drivers/net/i40e/i40e_rx

[PATCH v1 10/21] net/_common_intel: pack Tx queue structure

2024-12-02 Thread Bruce Richardson
Move some fields about to better pack the Tx queue structure and make sure all data used by the vector codepaths is on the first cacheline of the structure. Checking with "pahole" on 64-bit build, only one 6-byte hole is left in the structure - on second cacheline - after this patch. As part of th

[PATCH v1 08/21] net/ixgbe: convert Tx queue context cache field to ptr

2024-12-02 Thread Bruce Richardson
Rather than having a two element array of context cache values inside the Tx queue structure, convert it to a pointer to a cache at the end of the structure. This makes future merging of the structure easier as we don't need the "ixgbe_advctx_info" struct defined when defining a combined queue stru

[PATCH v1 07/21] net/iavf: use common Tx queue structure

2024-12-02 Thread Bruce Richardson
Merge in the few additional fields used by iavf driver and convert it to using the common Tx queue structure also. Signed-off-by: Bruce Richardson --- drivers/net/_common_intel/tx.h | 15 +++- drivers/net/iavf/iavf.h | 2 +- drivers/net/iavf/iavf_ethdev.c |

[PATCH v1 09/21] net/ixgbe: use common Tx queue structure

2024-12-02 Thread Bruce Richardson
Merge in additional fields used by the ixgbe driver and then convert it over to using the common Tx queue structure. Signed-off-by: Bruce Richardson --- drivers/net/_common_intel/tx.h| 14 +++- drivers/net/ixgbe/ixgbe_ethdev.c | 4 +- .../ixgbe/ixgbe_recycle_mbufs_v

[PATCH v1 06/21] net/_common_intel: merge ice and i40e Tx queue struct

2024-12-02 Thread Bruce Richardson
The queue structures of i40e and ice drivers are virtually identical, so merge them into a common struct. This should allow easier function merging in future using that common struct. Signed-off-by: Bruce Richardson --- drivers/net/_common_intel/tx.h| 55 + driver

[PATCH v1 05/21] drivers/net: add prefix for driver-specific structs

2024-12-02 Thread Bruce Richardson
In preparation for merging the Tx structs for multiple drivers into a single struct, rename the driver-specific pointers in each struct to have a prefix on it, to avoid conflicts. Signed-off-by: Bruce Richardson --- drivers/net/i40e/i40e_fdir.c | 6 +-- .../net/i40e/i40e_recycl

[PATCH v1 04/21] drivers/net: align Tx queue struct field names

2024-12-02 Thread Bruce Richardson
Across the various Intel drivers sometimes different names are given to fields in the Tx queue structure which have the same function. Do some renaming to align things better for future merging. Signed-off-by: Bruce Richardson --- drivers/net/i40e/i40e_rxtx.c| 6 +-- drivers/net/i40

[PATCH v1 02/21] net/_common_intel: provide common Tx entry structures

2024-12-02 Thread Bruce Richardson
The Tx entry structures, both vector and scalar, are common across Intel drivers, so provide a single definition to be used everywhere. Signed-off-by: Bruce Richardson --- drivers/net/_common_intel/tx.h| 27 +++ .../net/i40e/i40e_recycle_mbufs_vec_common.c | 2 +

[PATCH v1 00/21] Reduce code duplication across Intel NIC drivers

2024-12-02 Thread Bruce Richardson
This RFC attempts to reduce the amount of code duplication across a number of Intel NIC drivers, specifically: ixgbe, i40e, iavf, and ice. The first patch extract a function from the Rx side, otherwise the majority of the changes are on the Tx side, leading to a converged Tx queue structure across

Re: [PATCH v4 1/1] usertools/devbind: allow changing UID/GID for VFIO

2024-12-02 Thread Burakov, Anatoly
On 12/2/2024 10:31 AM, Anatoly Burakov wrote: Currently, when binding a device to VFIO, the UID/GID for the device will always stay as system default (`root`). Yet, when running DPDK as non-root user, one has to change the UID/GID of the device to match the user's UID/GID to use the device. This

[PATCH v1 1/1] usertools/devbind: add documentation for no-IOMMU mode

2024-12-02 Thread Anatoly Burakov
Support for `--noiommu-mode` flag was added, but documentation for it was not. Add documentation for the flag. Signed-off-by: Anatoly Burakov --- doc/guides/tools/devbind.rst | 5 + 1 file changed, 5 insertions(+) diff --git a/doc/guides/tools/devbind.rst b/doc/guides/tools/devbind.rst inde

[PATCH v4 1/1] usertools/devbind: allow changing UID/GID for VFIO

2024-12-02 Thread Anatoly Burakov
Currently, when binding a device to VFIO, the UID/GID for the device will always stay as system default (`root`). Yet, when running DPDK as non-root user, one has to change the UID/GID of the device to match the user's UID/GID to use the device. This patch adds an option to `dpdk-devbind.py` to ch