[PATCH v2 00/36] net/ionic: updates for 22.11 release

2022-10-18 Thread Andrew Boyer
-off-by: Andrew Boyer Signed-off-by: R Mohamed Shah Signed-off-by: Neel Patel Signed-off-by: Allen Hubbe --- v1: * Rebased to avoid conflicts in release notes * Added missing links to product briefs in patch 6 v2: * Split DSC-200 addition into its own patch * Reverted driver ID string

[PATCH v2 01/36] net/ionic: fix up endianness for Rx and Tx handling

2022-10-18 Thread Andrew Boyer
These fields all need to be LE when talking to the FW. Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: cardigli...@ntop.org Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 27 +++ 1 file changed, 15 inserti

[PATCH v2 02/36] net/ionic: fix up endianness for RSS

2022-10-18 Thread Andrew Boyer
This field needs to be LE when talking to the FW. Fixes: 22e7171bc63b ("net/ionic: support RSS") Cc: cardigli...@ntop.org Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers

[PATCH v2 03/36] net/ionic: fix to set the adapter name for logging

2022-10-18 Thread Andrew Boyer
Otherwise the log messages will be garbled. Fixes: 4ae96cb88fa0 ("net/ionic: do minor logging fixups") Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ionic/ion

[PATCH v2 04/36] net/ionic: fix up the Rx filter save API

2022-10-18 Thread Andrew Boyer
Check the match variable after copying cmd info, or else there can be unexpected results. Fixes: a27e0e96ab77 ("net/ionic: observe endianness in Rx filter") Cc: andrew.bo...@amd.com Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rx_filter.c | 2 +- 1 fi

[PATCH v2 05/36] net/ionic: fix up reported error stats

2022-10-18 Thread Andrew Boyer
;) Cc: cardigli...@ntop.org Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c index 5e8fdf3893..799530f7f5 100644 --- a/dr

[PATCH v2 06/36] net/ionic: update documentation and copyrights

2022-10-18 Thread Andrew Boyer
Pensando Systems has been acquired by AMD. Update all copyright strings and email addresses. Signed-off-by: Andrew Boyer --- MAINTAINERS| 12 ++-- doc/guides/nics/ionic.rst | 15 +++ doc/guides/rel_notes/release_22_11.rst | 6

[PATCH v2 07/36] net/ionic: update supported devices list

2022-10-18 Thread Andrew Boyer
Add listed support for the DSC-200. Signed-off-by: Andrew Boyer --- doc/guides/nics/ionic.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/guides/nics/ionic.rst b/doc/guides/nics/ionic.rst index 82fb0eff9f..f2cdd2b571 100644 --- a/doc/guides/nics/ionic.rst +++ b/doc/guides/nics

[PATCH v2 08/36] net/ionic: update license terms to remove GPL

2022-10-18 Thread Andrew Boyer
Remove GPL2 and leave only BSD-3-Clause. This is more in line with the norms of the DPDK community. Signed-off-by: Andrew Boyer --- doc/guides/nics/ionic.rst | 2 +- drivers/net/ionic/ionic.h | 2 +- drivers/net/ionic/ionic_dev.c | 2 +- drivers/net/ionic/ionic_dev.h

[PATCH v2 09/36] net/ionic: update MTU calculations

2022-10-18 Thread Andrew Boyer
Test min and max MTU against values read from firmware, for correctness. Update the firmware field name, for clarity. The device must be stopped before changing MTU, for correctness. Store the calculated frame size in the queue, for performance. Signed-off-by: Andrew Boyer Signed-off-by: R

[PATCH v2 10/36] net/ionic: simplify code by removing doorbell map helper

2022-10-18 Thread Andrew Boyer
There is only one doorbell page in DPDK configurations, so no helper function is needed. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 13 + 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c

[PATCH v2 11/36] net/ionic: remove unused identifiers

2022-10-18 Thread Andrew Boyer
These bits are not used. Remove them to simplify the code. Fix the spacing on the IONIC_ALIGN #define. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic.h| 1 - drivers/net/ionic/ionic_dev.h| 4 +--- drivers/net/ionic/ionic_ethdev.h | 2 -- 3 files changed, 1 insertion(+), 6

[PATCH v2 13/36] net/ionic: move PCI-specific code to a separate file

2022-10-18 Thread Andrew Boyer
For future support of virtual devices, move the PCI code to its own file. Create a new device interface, struct ionic_dev_intf, to plug in to common code. Signed-off-by: Andrew Boyer Signed-off-by: Neel Patel Signed-off-by: R Mohamed Shah --- drivers/net/ionic/ionic.h | 13

[PATCH v2 12/36] net/ionic: only allocate interrupts if required

2022-10-18 Thread Andrew Boyer
There is no need to allocate the interrupt vector list if datapath packet interrupts are not enabled. This conserves resources. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_ethdev.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/net/ionic

[PATCH v2 14/36] net/ionic: only request notifyq interrupt if supported

2022-10-18 Thread Andrew Boyer
Enable the interrupt if the platform & device support it. This prevents spurious interrupts on virtual platforms. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 12 +--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/ionic/ionic_lif

[PATCH v2 15/36] net/ionic: replace void pointer with actual type

2022-10-18 Thread Andrew Boyer
This makes the code safer by helping the compiler catch errors. Rename the variables, too; they're not callbacks anymore. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 28 +--- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/driver

[PATCH v2 16/36] net/ionic: free all buffers during Rx queue stop

2022-10-18 Thread Andrew Boyer
Free all of the mbufs in the receive queue when the queue is stopped. This will allow them to be resized when the MTU is changed. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 16 + drivers/net/ionic/ionic_dev.h | 2 + drivers/net/ionic/ionic_lif.c | 32

[PATCH v2 17/36] net/ionic: precalculate segment lengths on receive side

2022-10-18 Thread Andrew Boyer
The first (header) segment includes the standard headroom. Subsequent segments do not. Store the fragment counts in the queue structure. Precalculating improves performance by reducing how much work must be done in the hot path. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.h

[PATCH v2 18/36] net/ionic: use a helper variable in packet Tx function

2022-10-18 Thread Andrew Boyer
This improves readability. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c index 27678ccb6e..93a29a0326 100644 --- a/drivers/net/ionic

[PATCH v2 19/36] net/ionic: do one-time init of receive descriptors

2022-10-18 Thread Andrew Boyer
These fields don't need to be set in the hot path. This improves performance. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 38 ++ 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/

[PATCH v2 20/36] net/ionic: overhaul receive side for performance

2022-10-18 Thread Andrew Boyer
/fill. Signed-off-by: Neel Patel Signed-off-by: Andrew Boyer --- doc/guides/rel_notes/release_22_11.rst | 1 + drivers/net/ionic/ionic_dev.h | 2 +- drivers/net/ionic/ionic_lif.c | 49 +- drivers/net/ionic/ionic_lif.h | 3 +- drivers/net/ionic/ionic_rxtx.c

[PATCH v2 21/36] net/ionic: overhaul transmit side for performance

2022-10-18 Thread Andrew Boyer
Linearize Tx mbuf chains in the info array. This avoids walking the mbuf chain during flush. Move a few branches out of the hot path. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 2 +- drivers/net/ionic/ionic_rxtx.c | 143 - 2 files changed

[PATCH v2 22/36] net/ionic: add support for mbuf fast free

2022-10-18 Thread Andrew Boyer
Use a put() rather than a free() in the optimized case. Signed-off-by: Andrew Boyer --- doc/guides/nics/features/ionic.ini | 1 + doc/guides/rel_notes/release_22_11.rst | 1 + drivers/net/ionic/ionic_ethdev.c | 2 +- drivers/net/ionic/ionic_lif.h | 1 + drivers/net/ionic

[PATCH v2 23/36] net/ionic: do bulk allocations of receive mbufs

2022-10-18 Thread Andrew Boyer
Do bulk allocations to improve performance. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.h | 6 ++ drivers/net/ionic/ionic_rxtx.c | 35 ++ 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.h b/drivers

[PATCH v2 24/36] net/ionic: add a lookup table for packet type

2022-10-18 Thread Andrew Boyer
This improves performance by reducing branching. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 63 -- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c index

[PATCH v2 25/36] net/ionic: add a lookup table for checksum flags

2022-10-18 Thread Andrew Boyer
This improves performance by reducing branching. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 47 -- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c index

[PATCH v2 26/36] net/ionic: advertise supported packet types

2022-10-18 Thread Andrew Boyer
This improves performance, since clients may be able to skip SW packet classification. Signed-off-by: Andrew Boyer --- doc/guides/rel_notes/release_22_11.rst | 1 + drivers/net/ionic/ionic_ethdev.c | 1 + drivers/net/ionic/ionic_rxtx.c | 19 +++ drivers/net/ionic

[PATCH v2 27/36] net/ionic: add Rx descriptor status functions

2022-10-18 Thread Andrew Boyer
These may be useful for clients. Signed-off-by: Andrew Boyer Signed-off-by: Allen Hubbe --- doc/guides/nics/features/ionic.ini | 1 + doc/guides/rel_notes/release_22_11.rst | 1 + drivers/net/ionic/ionic_ethdev.c | 2 ++ drivers/net/ionic/ionic_rxtx.c | 39

[PATCH v2 28/36] net/ionic: add Tx descriptor status function

2022-10-18 Thread Andrew Boyer
This may be useful for clients. Signed-off-by: Andrew Boyer Signed-off-by: Allen Hubbe --- doc/guides/nics/features/ionic.ini | 1 + drivers/net/ionic/ionic_ethdev.c | 1 + drivers/net/ionic/ionic_rxtx.c | 51 ++ drivers/net/ionic/ionic_rxtx.h | 1 + 4

[PATCH v2 29/36] net/ionic: add Q-in-CMB option controlled by devarg

2022-10-18 Thread Andrew Boyer
bining must be enabled to achieve the maximum PPS. When the queue is in the CMB, descriptors cannot be prefetched. Signed-off-by: Andrew Boyer Signed-off-by: Neel Patel --- doc/guides/nics/ionic.rst | 12 ++ doc/guides/rel_notes/release_22_11.rst | 1 + drivers/net/ionic/

[PATCH v2 30/36] net/ionic: update array allocations to use calloc

2022-10-18 Thread Andrew Boyer
Use rte_calloc() where appropriate. This makes the code clearer. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_ethdev.c | 6 +++--- drivers/net/ionic/ionic_lif.c| 12 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/ionic/ionic_ethdev.c b

[PATCH v2 31/36] net/ionic: add alignment and socket info in allocations

2022-10-18 Thread Andrew Boyer
This will avoid memory access penalties on NUMA systems. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_ethdev.c| 5 +++-- drivers/net/ionic/ionic_lif.c | 13 - drivers/net/ionic/ionic_rx_filter.c | 3 +-- 3 files changed, 12 insertions(+), 9 deletions(-) diff

[PATCH v2 32/36] net/ionic: allow client to specify Tx free threshold

2022-10-18 Thread Andrew Boyer
Some clients have opinions about how often to flush the transmit ring. The default value is the number of Tx descriptors minus the default Tx burst size. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.h| 1 + drivers/net/ionic/ionic_ethdev.c | 4 ++-- drivers/net/ionic

[PATCH v2 33/36] net/ionic: add optimized handlers for non-scattered Rx/Tx

2022-10-18 Thread Andrew Boyer
the Rx side if the provided mbufs are too small to hold the maximum possible frame. To enable S/G in testpmd, add these args: --rx-offloads=0x2000 --tx-offloads=0x8000 Signed-off-by: Andrew Boyer Signed-off-by: R Mohamed Shah --- doc/guides/rel_notes/release_22_11.rst | 1 + drivers/net

[PATCH v2 34/36] net/ionic: use a helper variable for page size

2022-10-18 Thread Andrew Boyer
This improves readability. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 26 -- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c index 383fff9ffd..1b5932db12 100644 --- a

[PATCH v2 35/36] net/ionic: retry init commands up to five times

2022-10-18 Thread Andrew Boyer
In some configurations, the FW may return EAGAIN if it is not able to respond to commands immediately. Retry the init commands in this case to prevent errors from reaching the client. Fix up some return-code stuff while here, for clarity. Signed-off-by: Andrew Boyer --- drivers/net/ionic

[PATCH v2 36/36] net/ionic: add watchdogs to protect each queue type

2022-10-18 Thread Andrew Boyer
doorbell is missed by the FW. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.h | 4 +++ drivers/net/ionic/ionic_lif.h | 3 ++ drivers/net/ionic/ionic_main.c| 22 drivers/net/ionic/ionic_rxtx.c| 1 + drivers/net/ionic/ionic_rxtx_sg.c

Re: [dpdk-dev] [RFC] net/ionic: update MTU calculations

2021-04-24 Thread Andrew Boyer
> On Apr 23, 2021, at 7:42 AM, Ferruh Yigit wrote: > > On 12/15/2020 12:26 PM, Ferruh Yigit wrote: >> On 12/10/2020 2:46 AM, Andrew Boyer wrote: >>> This RFC is in response to the threads about testpmd mtu settings >>> and the deprecation of max-rx-pkt-le

Re: [PATCH v1 2/3] fix 'the the' typo

2021-11-21 Thread Andrew Boyer
> On Nov 18, 2021, at 9:46 AM, Sean Morrissey wrote: > > - * updated. Similarly, if @csum_l4 is set the the L4 > + * updated. Similarly, if @csum_l4 is set the L4 This was intended to be ‘then the’ but it’s fine either way. Thanks, Andrew

Re: [dpdk-dev] [PATCH 04/13] net/ionic: add an array-size macro

2021-01-27 Thread Andrew Boyer
> On Jan 27, 2021, at 12:22 PM, Ferruh Yigit wrote: > > On 1/18/2021 8:34 PM, Andrew Boyer wrote: >> Using the IONIC_ARRAY_SIZE() macro makes the code clearer. >> Signed-off-by: Andrew Boyer > > There is already 'RTE_DIM' macro for it (in > 'l

Re: [dpdk-dev] [PATCH 07/13] net/ionic: inline queue flush function

2021-01-27 Thread Andrew Boyer
> On Jan 27, 2021, at 12:36 PM, Ferruh Yigit wrote: > > On 1/18/2021 8:35 PM, Andrew Boyer wrote: >> This is hot-path function. >> Signed-off-by: Andrew Boyer >> Signed-off-by: Neel Patel >> --- >> drivers/net/ionic/ionic_dev.c | 6 --

Re: [dpdk-dev] [PATCH 06/13] net/ionic: clean up Tx queue version support

2021-01-27 Thread Andrew Boyer
> On Jan 27, 2021, at 12:30 PM, Ferruh Yigit wrote: > > On 1/18/2021 8:35 PM, Andrew Boyer wrote: >> The ionic PMD only supports TX queue version 1 or greater. >> Version 1 introduced a new SGL format with support for more >> fragments per descriptor. >

Re: [dpdk-dev] [PATCH 00/13] net/ionic: fixes and optimizations

2021-01-27 Thread Andrew Boyer
> On Jan 27, 2021, at 1:02 PM, Ferruh Yigit wrote: > > On 1/18/2021 8:34 PM, Andrew Boyer wrote: >> This patch series fixes some transmit issues, adds (better) support for >> big-endian systems, and improves performance by stripping down some >> structures and inlin

[dpdk-dev] [PATCH] net: redefine array size macros

2021-01-29 Thread Andrew Boyer
Replace copies of size(arr)/size(arr[0]) with RTE_DIM(). Eventually all of these macro definitions should be removed. Signed-off-by: Andrew Boyer --- drivers/net/atlantic/atl_hw_regs.h| 2 +- drivers/net/axgbe/axgbe_common.h | 2 +- drivers/net/bnx2x/bnx2x.h

[dpdk-dev] [PATCH v2 4/13] net/ionic: use the existing array-size macro

2021-01-29 Thread Andrew Boyer
Using the RTE_DIM() macro makes the code clearer. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c| 10 -- drivers/net/ionic/ionic_ethdev.c | 3 +-- drivers/net/ionic/ionic_lif.c| 9 +++-- drivers/net/ionic/ionic_main.c | 32

[dpdk-dev] [PATCH v2 6/13] net/ionic: clean up Tx queue version support

2021-01-29 Thread Andrew Boyer
The ionic PMD only supports Tx queue version 1 or greater. Version 1 introduced a new SGL format with support for more fragments per descriptor. Add release notes and an explanation to the docs. Signed-off-by: Andrew Boyer --- doc/guides/nics/ionic.rst | 4 doc/guides

Re: [dpdk-dev] [PATCH] net: redefine array size macros

2021-02-01 Thread Andrew Boyer
> On Feb 1, 2021, at 5:28 PM, Thomas Monjalon wrote: > > 29/01/2021 23:44, Andrew Boyer: >> Replace copies of size(arr)/size(arr[0]) with RTE_DIM(). >> Eventually all of these macro definitions should be removed. >> >> Signed-off-by: Andrew Boyer >> --

[dpdk-dev] [PATCH 00/14] net/ionic: struct optimizations, fixes

2021-02-04 Thread Andrew Boyer
consolidated into ionic_main.c as part of the cleanup. Next comes some minor performance fixups related to queue posting and doorbells. Finally, two minor fixes to Tx packet prep and LIF init. Signed-off-by: Andrew Boyer Andrew Boyer (14): net/ionic: cut down completion queue structure net/ionic

[dpdk-dev] [PATCH 01/14] net/ionic: cut down completion queue structure

2021-02-04 Thread Andrew Boyer
Add Q_NEXT_TO_POST() and Q_NEXT_TO_SRVC() macros. Use a precomputed size mask. This will conserve resources. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 14 +++--- drivers/net/ionic/ionic_dev.h | 14 +++--- drivers/net/ionic/ionic_lif.c | 5

[dpdk-dev] [PATCH 02/14] net/ionic: consolidate adminq code

2021-02-04 Thread Andrew Boyer
The adminq is the only caller of ionic_q_service(), so absorb it into ionic_adminq_service(). Move all of the adminq code together into ionic_main.c. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic.h | 13 + drivers/net/ionic/ionic_dev.c | 85

[dpdk-dev] [PATCH 03/14] net/ionic: convert info array to generic pointers

2021-02-04 Thread Andrew Boyer
Drop the callback part of the object and store only the pointers. This saves a bit of space and simplifies the code. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 8 ++-- drivers/net/ionic/ionic_dev.h | 21 +-- drivers/net/ionic/ionic_main.c | 8

[dpdk-dev] [PATCH 04/14] net/ionic: remove unused field from queue structure

2021-02-04 Thread Andrew Boyer
This will conserve resources. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 6 -- drivers/net/ionic/ionic_dev.h | 2 -- drivers/net/ionic/ionic_lif.c | 1 - drivers/net/ionic/ionic_rxtx.c | 9 + 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a

[dpdk-dev] [PATCH 05/14] net/ionic: remove unused interrupt free function

2021-02-04 Thread Andrew Boyer
This will conserve resources. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 7 --- drivers/net/ionic/ionic_lif.h | 1 - 2 files changed, 8 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c index 1ca6e050ad..462a526935 100644 --- a

[dpdk-dev] [PATCH 06/14] net/ionic: cut down queue structure

2021-02-04 Thread Andrew Boyer
This will conserve resources. Rename ionic_qcq_alloc() arg from 'base' to 'type_name' for clarity. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 14 +++--- drivers/net/ionic/ionic_dev.h | 34 ++- drivers/net/ion

[dpdk-dev] [PATCH 07/14] net/ionic: split up queue-completion queue structure

2021-02-04 Thread Andrew Boyer
Create a unique Q-CQ struct for adminq, notifyq, rxq, and txq to reduce the size of each object. Minimize the size of each field to squeeze into as few cachelines as possible. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 153 ++--- drivers/net

[dpdk-dev] [PATCH 10/14] net/ionic: break up queue post function

2021-02-04 Thread Andrew Boyer
Break it up rather than inlining it, so that we can remove branches from the hot path. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 11 -- drivers/net/ionic/ionic_dev.h | 1 - drivers/net/ionic/ionic_main.c | 10 - drivers/net/ionic/ionic_rxtx.c | 37

[dpdk-dev] [PATCH 11/14] net/ionic: ring doorbell once at the end of each burst

2021-02-04 Thread Andrew Boyer
This improves performance. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 41 +++--- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c index c671b34e94..2522c8283a 100644

[dpdk-dev] [PATCH 12/14] net/ionic: send as many packets as possible

2021-02-04 Thread Andrew Boyer
Rather than dropping the whole burst if some don't fit. This improves performance. Signed-off-by: Andrew Boyer Signed-off-by: Vishwas Danivas --- drivers/net/ionic/ionic_rxtx.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/dr

[dpdk-dev] [PATCH 08/14] net/ionic: use the socket id passed in for Rx and Tx queues

2021-02-04 Thread Andrew Boyer
Pipe the value from the queue setup routines through to ionic_qcq_alloc(). Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 10 +++--- drivers/net/ionic/ionic_lif.h | 10 ++ drivers/net/ionic/ionic_rxtx.c | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions

[dpdk-dev] [PATCH 13/14] net/ionic: fix Tx fragment limit check

2021-02-04 Thread Andrew Boyer
This was missed when updating to the v1 Tx queue structures. Store the value in the queue for easy access. Fixes: 786c64763b50 ("net/ionic: clean up Tx queue version support") Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 6 +- drivers/net/ionic/ionic_

[dpdk-dev] [PATCH 09/14] net/ionic: log queue counters when tearing down

2021-02-04 Thread Andrew Boyer
This improves debuggability. To see the logs, use EAL arg: --log-level=pmd.net.ionic,debug While here, stop counting fragments, but start counting mtods. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.h | 2 +- drivers/net/ionic/ionic_rxtx.c | 13 +++-- 2 files changed

[dpdk-dev] [PATCH 14/14] net/ionic: fix code around lif init devcmd

2021-02-04 Thread Andrew Boyer
The completion type was wrong. Don't check the completion if the wait timed out. Fixes: 669c8de67c88 ("net/ionic: support basic LIF") Cc: cardigli...@ntop.org Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 5 +++-- 1 file changed, 3 i

Re: [dpdk-dev] [PATCH 00/14] net/ionic: struct optimizations, fixes

2021-02-04 Thread Andrew Boyer
> On Feb 4, 2021, at 2:58 PM, Andrew Boyer wrote: > > This patch series reorganizes the main datastructure for each > queue, struct ionic_qcq. Its constituent struct ionic_queue and > struct ionic_cq are stripped down first. Then the generic struct > ionic_qcq is stripped

[dpdk-dev] [PATCH] net/ionic: fix Tx fragment limits

2021-02-04 Thread Andrew Boyer
Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_ethdev.c | 4 ++-- drivers/net/ionic/ionic_rxtx.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ionic/ionic_ethdev.c b/drivers/net/ionic/ionic_ethdev.c index c9d8493f49..cffe899c07 100644 --- a/drivers

Re: [dpdk-dev] [PATCH v2 6/13] net/ionic: clean up Tx queue version support

2021-02-05 Thread Andrew Boyer
> On Feb 5, 2021, at 3:20 PM, Thomas Monjalon wrote: > > 29/01/2021 23:44, Andrew Boyer: >> The ionic PMD only supports Tx queue version 1 or greater. >> Version 1 introduced a new SGL format with support for more >> fragments per descriptor. >> >> Add

Re: [dpdk-dev] [dpdk-stable] [PATCH] eal: don't log uninitialized string

2021-02-09 Thread Andrew Boyer
> On Jan 6, 2021, at 4:35 AM, David Marchand wrote: > > On Fri, Dec 11, 2020 at 6:07 PM Andrew Boyer <mailto:abo...@pensando.io>> wrote: >> >> Our Coverity scan pointed out that path[] is never initialized. >> The official DPDK Coverity has not reported t

[dpdk-dev] [PATCH v2 00/15] net/ionic: struct optimizations, fixes

2021-02-16 Thread Andrew Boyer
consolidated into ionic_main.c as part of the cleanup. Next comes some minor performance fixups related to queue posting and doorbells. Finally, a minor improvement to Tx packet prep and a minor fix for LIF init. Signed-off-by: Andrew Boyer -- v2: * Resend for new DPDK release cycle * Insert a new

[dpdk-dev] [PATCH v2 01/15] net/ionic: cut down completion queue structure

2021-02-16 Thread Andrew Boyer
Add Q_NEXT_TO_POST() and Q_NEXT_TO_SRVC() macros. Use a precomputed size mask. This will conserve resources. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 14 +++--- drivers/net/ionic/ionic_dev.h | 14 +++--- drivers/net/ionic/ionic_lif.c | 5

[dpdk-dev] [PATCH v2 02/15] net/ionic: remove unused filter delete function

2021-02-16 Thread Andrew Boyer
This function is unused. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.h | 1 - drivers/net/ionic/ionic_rx_filter.c | 14 -- drivers/net/ionic/ionic_rx_filter.h | 1 - 3 files changed, 16 deletions(-) diff --git a/drivers/net/ionic/ionic_dev.h b/drivers/net

[dpdk-dev] [PATCH v2 03/15] net/ionic: consolidate adminq code

2021-02-16 Thread Andrew Boyer
The adminq is the only caller of ionic_q_service(), so absorb it into ionic_adminq_service(). Move all of the adminq code together into ionic_main.c. Staticize a few things. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic.h | 13 - drivers/net/ionic/ionic_dev.c | 85

[dpdk-dev] [PATCH v2 04/15] net/ionic: convert info array to generic pointers

2021-02-16 Thread Andrew Boyer
Drop the callback part of the object and store only the pointers. This saves a bit of space and simplifies the code. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 8 ++-- drivers/net/ionic/ionic_dev.h | 21 +-- drivers/net/ionic/ionic_main.c | 8

[dpdk-dev] [PATCH v2 05/15] net/ionic: remove unused field from queue structure

2021-02-16 Thread Andrew Boyer
This will conserve resources. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 6 -- drivers/net/ionic/ionic_dev.h | 2 -- drivers/net/ionic/ionic_lif.c | 1 - drivers/net/ionic/ionic_rxtx.c | 9 + 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a

[dpdk-dev] [PATCH v2 08/15] net/ionic: split up queue-completion queue structure

2021-02-16 Thread Andrew Boyer
Create a unique Q-CQ struct for adminq, notifyq, rxq, and txq to reduce the size of each object. Minimize the size of each field to squeeze into as few cachelines as possible. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 153 ++--- drivers/net

[dpdk-dev] [PATCH v2 06/15] net/ionic: remove unused interrupt free function

2021-02-16 Thread Andrew Boyer
This will conserve resources. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 7 --- drivers/net/ionic/ionic_lif.h | 1 - 2 files changed, 8 deletions(-) diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c index 1ca6e050ad..462a526935 100644 --- a

[dpdk-dev] [PATCH v2 07/15] net/ionic: cut down queue structure

2021-02-16 Thread Andrew Boyer
This will conserve resources. Rename ionic_qcq_alloc() arg from 'base' to 'type_name' for clarity. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 14 +++--- drivers/net/ionic/ionic_dev.h | 34 ++- drivers/net/ion

[dpdk-dev] [PATCH v2 09/15] net/ionic: use the socket id passed in for Rx and Tx queues

2021-02-16 Thread Andrew Boyer
Pipe the value from the queue setup routines through to ionic_qcq_alloc(). Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 10 +++--- drivers/net/ionic/ionic_lif.h | 10 ++ drivers/net/ionic/ionic_rxtx.c | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions

[dpdk-dev] [PATCH v2 10/15] net/ionic: log queue counters when tearing down

2021-02-16 Thread Andrew Boyer
This improves debuggability. To see the logs, use EAL arg: --log-level=pmd.net.ionic,debug While here, stop counting fragments, but start counting mtods. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.h | 2 +- drivers/net/ionic/ionic_rxtx.c | 13 +++-- 2 files changed

[dpdk-dev] [PATCH v2 11/15] net/ionic: break up queue post function

2021-02-16 Thread Andrew Boyer
Break it up rather than inlining it, so that we can remove branches from the hot path. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev.c | 11 -- drivers/net/ionic/ionic_dev.h | 1 - drivers/net/ionic/ionic_main.c | 10 - drivers/net/ionic/ionic_rxtx.c | 37

[dpdk-dev] [PATCH v2 12/15] net/ionic: ring doorbell once at the end of each burst

2021-02-16 Thread Andrew Boyer
This improves performance. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 41 +++--- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c index 5236cae211..bb67c497a1 100644

[dpdk-dev] [PATCH v2 13/15] net/ionic: send as many packets as possible

2021-02-16 Thread Andrew Boyer
Rather than dropping the whole burst if some don't fit. This improves performance. Signed-off-by: Andrew Boyer Signed-off-by: Vishwas Danivas --- drivers/net/ionic/ionic_rxtx.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/dr

[dpdk-dev] [PATCH v2 14/15] net/ionic: store Tx fragment limit in queue

2021-02-16 Thread Andrew Boyer
A future patch will allow Tx scatter/gather to be disabled. Store the value in the queue so it can be changed at runtime based on the configuration. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 6 +- drivers/net/ionic/ionic_lif.h | 1 + drivers/net/ionic/ionic_rxtx.c

[dpdk-dev] [PATCH v2 15/15] net/ionic: fix code around lif init devcmd

2021-02-16 Thread Andrew Boyer
The completion type was wrong. Don't check the completion if the wait timed out. Fixes: 669c8de67c88 ("net/ionic: support basic LIF") Cc: cardigli...@ntop.org Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 5 +++-- 1 file changed, 3 i

Re: [dpdk-dev] [PATCH] app/testpmd: add support for forced ethernet speed

2021-02-25 Thread Andrew Boyer
> On Feb 22, 2021, at 2:18 PM, Ajit Khaparde wrote: > > Add support for forced ethernet speed setting. > Currently testpmd tries to configure the Ethernet port in autoneg mode. > It is not possible to set the Ethernet port to a specific speed while > starting testpmd. In some cases capability

Re: [dpdk-dev] [PATCH] app/testpmd: add support for forced ethernet speed

2021-02-26 Thread Andrew Boyer
> On Feb 26, 2021, at 6:21 AM, Ferruh Yigit wrote: > > On 2/26/2021 6:43 AM, Andrew Rybchenko wrote: >> On 2/25/21 9:25 PM, Ferruh Yigit wrote: >>> On 2/22/2021 7:18 PM, Ajit Khaparde wrote: Add support for forced ethernet speed setting. Currently testpmd tries to configure the Ether

Re: [dpdk-dev] [PATCH v6 07/17] drivers: replace page size definitions with function

2021-03-01 Thread Andrew Boyer
| 10 ++ > drivers/net/netvsc/hn_var.h | 9 +++-- > drivers/net/virtio/virtio.h | 2 +- > drivers/net/virtio/virtio_ethdev.c | 6 +++--- > drivers/net/virtio/virtio_ethdev.h | 4 > drivers/vdpa/ifc/ifcvf_vdpa.c | 17 +++-- > 26 files changed, 84 insertions(+), 94 deletions(-) > OK for net/ionic Acked-by: Andrew Boyer

Re: [dpdk-dev] [PATCH] fbarray: fix uninitialized variable usage

2021-03-03 Thread Andrew Boyer
> On Mar 3, 2021, at 3:17 AM, David Marchand wrote: > > On Fri, Feb 19, 2021 at 6:55 PM Anatoly Burakov > wrote: >> >> When file truncation fails, the log message attempts to print a path of >> file we failed to truncate, but this path was never set to anything and, >> what's worse, was unin

[PATCH 00/13] net/ionic: miscellaneous fixes and improvements

2024-02-02 Thread Andrew Boyer
This patchset provides miscellaneous fixes and improvements for the net/ionic driver used by AMD Pensando devices. Akshay Dorwat (1): net/ionic: fix RSS query routine Andrew Boyer (8): net/ionic: add stat for completion queue entries processed net/ionic: increase max supported MTU to 9750

[PATCH 01/13] net/ionic: add stat for completion queue entries processed

2024-02-02 Thread Andrew Boyer
When completion coalescing is turned on in the FW, there will be fewer CQE than Tx packets. Expose the stat through debug logging. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.h | 1 + drivers/net/ionic/ionic_rxtx.c| 3 +++ drivers/net/ionic/ionic_rxtx_sg.c

[PATCH 02/13] net/ionic: increase max supported MTU to 9750 bytes

2024-02-02 Thread Andrew Boyer
Some configurations want to use values this high internally. Allow them to do so without modifying the code. Signed-off-by: Andrew Boyer Signed-off-by: Bhuvan Mital --- drivers/net/ionic/ionic_dev.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ionic

[PATCH 03/13] net/ionic: don't auto-enable Rx scatter-gather a second time

2024-02-02 Thread Andrew Boyer
The receive side will enable scatter-gather if required based on the mbuf size. If the client already enabled it in the config, it does not need to be enabled again. This reduces log output. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 3 ++- 1 file changed, 2 insertions

[PATCH 05/13] net/ionic: replace non-standard type in structure definition

2024-02-02 Thread Andrew Boyer
Use uint8_t instead of u_char. This simplifies the code. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev_pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ionic/ionic_dev_pci.c b/drivers/net/ionic/ionic_dev_pci.c index 5e74a6da71..cbaac2c5bc

[PATCH 04/13] net/ionic: fix missing volatile type for cqe pointers

2024-02-02 Thread Andrew Boyer
From: Neel Patel This memory may be changed by the hardware, so the volatile keyword is required for correctness. Fixes: e86a6fcc7cf3 ("net/ionic: add optimized non-scattered Rx/Tx") cc: sta...@dpdk.org Signed-off-by: Andrew Boyer Signed-off-by: Neel Patel --- drivers/net/ionic/io

[PATCH 08/13] net/ionic: report 1G and 200G link speeds when applicable

2024-02-02 Thread Andrew Boyer
From: Vamsi Krishna Atluri The hardware supports these speeds, so we should report them correctly. Signed-off-by: Andrew Boyer Signed-off-by: Vamsi Krishna Atluri --- drivers/net/ionic/ionic_ethdev.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/ionic/ionic_ethdev.c b

[PATCH 07/13] net/ionic: fix RSS query routine

2024-02-02 Thread Andrew Boyer
rt RSS") Cc: cardigli...@ntop.org Cc: sta...@dpdk.org Signed-off-by: Akshay Dorwat Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_ethdev.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ionic/ionic_ethdev.c b/drivers/net/ionic/ionic_eth

[PATCH 09/13] net/ionic: add flexible firmware xstat counters

2024-02-02 Thread Andrew Boyer
From: Brad Larson Assign 32 counters for flexible firmware events. These can be used as per-port or per-queue counters in certain firmware configurations. They are displayed as fw_flex_eventX in xstats. Signed-off-by: Andrew Boyer Signed-off-by: Brad Larson --- drivers/net/ionic

[PATCH 06/13] net/ionic: memcpy descriptors when using Q-in-CMB

2024-02-02 Thread Andrew Boyer
From: Neel Patel They can be batched together this way, reducing the number of PCIe transactions. This improves transmit PPS by up to 50% in some configurations. Signed-off-by: Andrew Boyer Signed-off-by: Neel Patel --- drivers/net/ionic/ionic_dev.c | 9 +++-- drivers/net/ionic

[PATCH 10/13] net/ionic: fix device close sequence to avoid crash

2024-02-02 Thread Andrew Boyer
("net/ionic: complete release on close") Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_ethdev.c | 30 +++--- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/net/ionic/ionic_ethdev.c b/drivers/net/ionic/ioni

[PATCH 11/13] net/ionic: optimize device close operation

2024-02-02 Thread Andrew Boyer
Use a single device reset command to speed up dev_close(). The LIF stop and port reset commands are not needed. This reduces the outage window when restarting the process by about 2ms plus another 1ms per queue. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_ethdev.c | 3 --- drivers

[PATCH 12/13] net/ionic: optimize device stop operation

2024-02-02 Thread Andrew Boyer
process by about 1ms per queue. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic.h | 3 ++ drivers/net/ionic/ionic_lif.c | 81 -- drivers/net/ionic/ionic_lif.h | 12 +++-- drivers/net/ionic/ionic_main.c | 17 ++- drivers/net/ionic/ionic_rxtx.c | 78

[PATCH 13/13] net/ionic: optimize device start operation

2024-02-02 Thread Andrew Boyer
Split the queue_start operation into first-half and second-half helpers. This allows us to batch up the queue commands during dev_start(), reducing the outage window when restarting the process by about 1ms per queue. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_lif.c | 178

  1   2   3   4   >