[PATCH 2/2] crypto/ionic: fix sign extension in queue allocation

2024-07-01 Thread Andrew Boyer
(uint16_t * uint16_t) promoted to uint64_t has a sign extension problem reported by Coverity. Cast one arg to uint64_t first to eliminate the sign extension. Coverity issue: 426422 Coverity issue: 426427 Fixes: 2c1662bb53ca ("crypto/ionic: add adminq command") Signed-off-by: An

[PATCH 1/2] crypto/ionic: fix buffer overrun when writing session

2024-07-01 Thread Andrew Boyer
rypto/ionic: support sessions") Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto_main.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/ionic/ionic_crypto_main.c b/drivers/crypto/ionic/ionic_crypto_main.c index d4810e3617..9960dc3a6d 10

[PATCH] net/ionic: fix double-free of mbufs when emptying array

2024-07-01 Thread Andrew Boyer
;) CC: sta...@dpdk.org Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx.c | 16 +--- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx.c b/drivers/net/ionic/ionic_rxtx.c index 923f517661..339b20f113 100644 --- a/drivers/net/ionic/ionic_rx

[PATCH v3 8/9] crypto/ionic: add a watchdog operation

2024-06-07 Thread Andrew Boyer
If no progress has been made within the timeout, post a dummy operation using session 0. This will restart the queue in the rare case that a doorbell is lost inside the device. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 16 drivers/crypto/ionic

[PATCH v3 9/9] crypto/ionic: add stats support

2024-06-07 Thread Andrew Boyer
This defines the stats handlers and exposes them to the stack. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 8 drivers/crypto/ionic/ionic_crypto_main.c | 48 drivers/crypto/ionic/ionic_crypto_ops.c | 33 +++- 3 files

[PATCH v3 7/9] crypto/ionic: add datapath

2024-06-07 Thread Andrew Boyer
This defines the main crypto operation enqueue and dequeue handlers. Signed-off-by: Andrew Boyer --- doc/guides/cryptodevs/features/ionic.ini | 8 + doc/guides/cryptodevs/ionic.rst | 12 + drivers/crypto/ionic/ionic_crypto.h | 17 ++ drivers/crypto/ionic/ionic_crypto_caps.c

[PATCH v3 6/9] crypto/ionic: add session support

2024-06-07 Thread Andrew Boyer
This defines the session object and related commands. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 33 ++ drivers/crypto/ionic/ionic_crypto_main.c | 143 +++ drivers/crypto/ionic/ionic_crypto_ops.c | 123 +++ 3 files

[PATCH v3 3/9] crypto/ionic: add device commands

2024-06-07 Thread Andrew Boyer
This defines the device (register-based) commands. They are used for device identification, setup, and teardown. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 24 ++ drivers/crypto/ionic/ionic_crypto_cmds.c | 348 +++ drivers/crypto/ionic

[PATCH v3 4/9] crypto/ionic: add adminq command support

2024-06-07 Thread Andrew Boyer
This defines the adminq used for control path commands. The adminq is faster and more flexible than the device command interface. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 115 + drivers/crypto/ionic/ionic_crypto_cmds.c | 302

[PATCH v3 5/9] crypto/ionic: add capabilities and basic ops

2024-06-07 Thread Andrew Boyer
This exposes the supported capabilities to the stack. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 3 ++ drivers/crypto/ionic/ionic_crypto_caps.c | 25 + drivers/crypto/ionic/ionic_crypto_main.c | 8 +++ drivers/crypto/ionic/ionic_crypto_ops.c | 66

[PATCH v3 1/9] crypto/ionic: introduce AMD Pensando driver

2024-06-07 Thread Andrew Boyer
skeleton features list and guide. Hook the new PMD up to the build. Update MAINTAINERS. Update release notes. Signed-off-by: Andrew Boyer --- MAINTAINERS | 7 ++ doc/guides/cryptodevs/features/ionic.ini | 32 + doc/guides/cryptodevs/index.rst | 1 + doc

[PATCH v3 2/9] crypto/ionic: add the firmware interface definition file

2024-06-07 Thread Andrew Boyer
These definitions are shared between the PMD and firmware. Teach the device to read the FW version and check for liveness. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 53 ++ drivers/crypto/ionic/ionic_crypto_if.h | 1021 ++ drivers/crypto

[PATCH v3 0/9] crypto/ionic: introduce AMD Pensando driver

2024-06-07 Thread Andrew Boyer
- Do some very minor whitespace touchups V3: - Address review comments on logging and documentation Andrew Boyer (9): crypto/ionic: introduce AMD Pensando driver crypto/ionic: add the firmware interface definition file crypto/ionic: add device commands crypto/ionic: add adminq command

[PATCH v2 8/9] crypto/ionic: add a watchdog operation

2024-04-30 Thread Andrew Boyer
If no progress has been made within the timeout, post a dummy operation using session 0. This will restart the queue in the rare case that a doorbell is lost inside the device. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 16 drivers/crypto/ionic

[PATCH v2 6/9] crypto/ionic: add session support

2024-04-30 Thread Andrew Boyer
This defines the session object and related commands. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 33 ++ drivers/crypto/ionic/ionic_crypto_main.c | 143 +++ drivers/crypto/ionic/ionic_crypto_ops.c | 123 +++ 3 files

[PATCH v2 9/9] crypto/ionic: add stats support

2024-04-30 Thread Andrew Boyer
This defines the stats handlers and exposes them to the stack. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 8 drivers/crypto/ionic/ionic_crypto_main.c | 48 drivers/crypto/ionic/ionic_crypto_ops.c | 33 +++- 3 files

[PATCH v2 7/9] crypto/ionic: add datapath

2024-04-30 Thread Andrew Boyer
This defines the main crypto operation enqueue and dequeue handlers. Signed-off-by: Andrew Boyer --- doc/guides/cryptodevs/features/ionic.ini | 8 + doc/guides/cryptodevs/ionic.rst | 11 + drivers/crypto/ionic/ionic_crypto.h | 17 ++ drivers/crypto/ionic/ionic_crypto_caps.c

[PATCH v2 5/9] crypto/ionic: add capabilities and basic ops

2024-04-30 Thread Andrew Boyer
This exposes the supported capabilities to the stack. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 3 ++ drivers/crypto/ionic/ionic_crypto_caps.c | 25 + drivers/crypto/ionic/ionic_crypto_main.c | 8 +++ drivers/crypto/ionic/ionic_crypto_ops.c | 66

[PATCH v2 4/9] crypto/ionic: add adminq command support

2024-04-30 Thread Andrew Boyer
This defines the adminq used for control path commands. The adminq is faster and more flexible than the device command interface. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 115 + drivers/crypto/ionic/ionic_crypto_cmds.c | 302

[PATCH v2 3/9] crypto/ionic: add device commands

2024-04-30 Thread Andrew Boyer
This defines the device (register-based) commands. They are used for device identification, setup, and teardown. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 24 ++ drivers/crypto/ionic/ionic_crypto_cmds.c | 348 +++ drivers/crypto/ionic

[PATCH v2 2/9] crypto/ionic: add the firmware interface definition file

2024-04-30 Thread Andrew Boyer
These definitions are shared between the PMD and firmware. Teach the device to read the FW version and check for liveness. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 53 ++ drivers/crypto/ionic/ionic_crypto_if.h | 1021 ++ drivers/crypto

[PATCH v2 1/9] crypto/ionic: introduce AMD Pensando ionic crypto driver

2024-04-30 Thread Andrew Boyer
skeleton features list and guide. Hook the new PMD up to the build. Update MAINTAINERS. Signed-off-by: Andrew Boyer --- MAINTAINERS | 7 ++ doc/guides/cryptodevs/features/ionic.ini | 32 + doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs

[PATCH v2 0/9] crypto/ionic: introduce AMD Pensando ionic crypto driver

2024-04-30 Thread Andrew Boyer
- Do some very minor whitespace touchups Andrew Boyer (9): crypto/ionic: introduce AMD Pensando ionic crypto driver crypto/ionic: add the firmware interface definition file crypto/ionic: add device commands crypto/ionic: add adminq command support crypto/ionic: add capabilities and basic

[PATCH] net/ionic: clean up logging issues

2024-04-19 Thread Andrew Boyer
Switch to the new RTE_LOG_LINE_PREFIX logging macro. While here, fix up some trailing-newline issues reported by the new macro. Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_dev_pci.c | 7 +++ drivers/net/ionic/ionic_lif.c | 8 drivers/net/ionic/ionic_logs.h| 14

[PATCH 5/6] crypto/ionic: add datapath and capabilities support

2024-04-19 Thread Andrew Boyer
This defines the main datapath and reports the device capabilities to the stack. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 62 +++ drivers/crypto/ionic/ionic_crypto_caps.c | 55 ++ drivers/crypto/ionic/ionic_crypto_main.c | 417 +++- drivers/crypto

[PATCH 6/6] crypto/ionic: add documentation and connect to build

2024-04-19 Thread Andrew Boyer
Add a features list and guide for the ionic crypto PMD. Hook the new PMD up to the build. Signed-off-by: Andrew Boyer --- MAINTAINERS | 7 + doc/guides/cryptodevs/features/ionic.ini | 40 doc/guides/cryptodevs/index.rst | 1

[PATCH 4/6] crypto/ionic: add device object and vdev support

2024-04-19 Thread Andrew Boyer
This defines the main device object routines and the vdev support code. The vdev code uses the common library. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 89 drivers/crypto/ionic/ionic_crypto_main.c | 538 +++ drivers/crypto/ionic

[PATCH 3/6] common/ionic: add crypto vdev support

2024-04-19 Thread Andrew Boyer
This adds support for cryptodevs to the common ionic library. Signed-off-by: Andrew Boyer --- drivers/common/ionic/ionic_common.h | 2 ++ drivers/common/ionic/ionic_common_uio.c | 48 - drivers/common/ionic/version.map| 1 + 3 files changed, 50 insertions

[PATCH 2/6] crypto/ionic: add device and admin command handlers

2024-04-19 Thread Andrew Boyer
This defines the handlers used for device (register-based) and admin (adminq-based) commands. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 210 drivers/crypto/ionic/ionic_crypto_cmds.c | 651 +++ drivers/crypto/ionic/ionic_crypto_main.c

[PATCH 1/6] crypto/ionic: introduce AMD Pensando ionic crypto driver

2024-04-19 Thread Andrew Boyer
Introduce a new crypto PMD for AMD Pensando hardware accelerators. It allows applications running directly on the AMD Pensando DSC to offload cryptographic operations to hardware cryptographic blocks. This commit adds the firmware interface definition file. Signed-off-by: Andrew Boyer

[PATCH 0/6] crypto/ionic: introduce AMD Pensando ionic crypto driver

2024-04-19 Thread Andrew Boyer
This patchset introduces a new crypto PMD for AMD Pensando hardware accelerators. It allows applications running directly on the AMD Pensando DSC to offload cryptographic operations to hardware cryptographic blocks. Andrew Boyer (6): crypto/ionic: introduce AMD Pensando ionic crypto driver

[RFC 5/5] crypto/ionic: add documentation

2024-02-22 Thread Andrew Boyer
Add a features list and (basic) guide for the ionic crypto PMD. Signed-off-by: Andrew Boyer --- MAINTAINERS | 7 + doc/guides/cryptodevs/features/ionic.ini | 40 doc/guides/cryptodevs/ionic.rst | 39 +++ 3

[RFC 4/5] crypto/ionic: add datapath and capabilities support

2024-02-22 Thread Andrew Boyer
This defines the main datapath and reports the device capabilities to the stack. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 62 +++ drivers/crypto/ionic/ionic_crypto_caps.c | 55 ++ drivers/crypto/ionic/ionic_crypto_main.c | 417 +++- drivers/crypto

[RFC 2/5] crypto/ionic: add device and admin command handlers

2024-02-22 Thread Andrew Boyer
This defines the handlers used for device (register-based) and admin (adminq-based) commands. Signed-off-by: Andrew Boyer --- drivers/crypto/ionic/ionic_crypto.h | 209 drivers/crypto/ionic/ionic_crypto_cmds.c | 651 +++ drivers/crypto/ionic/ionic_crypto_main.c

[RFC 3/5] crypto/ionic: add device object and vdev support

2024-02-22 Thread Andrew Boyer
This defines the main device object routines and the vdev support code. The vdev code uses the common library. Signed-off-by: Andrew Boyer --- drivers/common/ionic/ionic_common.h | 2 + drivers/common/ionic/ionic_common_uio.c | 48 +- drivers/common/ionic/version.map | 1

[RFC 1/5] crypto/ionic: introduce AMD Pensando ionic crypto driver

2024-02-22 Thread Andrew Boyer
Introduce a new crypto PMD for AMD Pensando hardware accelerators. It allows applications running directly on the AMD Pensando DSC to offload cryptographic operations to hardware cryptographic blocks. This commit adds the firmware interface definition file. Signed-off-by: Andrew Boyer

[RFC 0/5] crypto/ionic: introduce AMD Pensando ionic crypto driver

2024-02-22 Thread Andrew Boyer
This patchset introduces a new crypto PMD for AMD Pensando hardware accelerators. It allows applications running directly on the AMD Pensando DSC to offload cryptographic operations to hardware cryptographic blocks. Depends-on: series-31157 ("net/ionic, common/ionic: add vdev support"

[PATCH] doc: fix some typos in cryptodev overview

2024-02-22 Thread Andrew Boyer
Very minor improvements. Fixes: 2717246ecd7d ("cryptodev: replace mbuf scatter gather flag") Cc: pablo.de.lara.gua...@intel.com Cc: sta...@dpdk.org Signed-off-by: Andrew Boyer --- doc/guides/cryptodevs/overview.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff -

[PATCH v2 3/3] net/ionic: add vdev support for embedded applications

2024-02-20 Thread Andrew Boyer
, use an ARM 'dsb st' barrier. The normal barrier inside rte_write64() is insufficient on these devices due to a chip errata. Signed-off-by: Andrew Boyer Signed-off-by: Neel Patel Signed-off-by: R Mohamed Shah Signed-off-by: Alfredo Cardigliano --- config/arm/arm64_capri_linu

[PATCH v2 2/3] net/ionic: remove duplicate barriers

2024-02-20 Thread Andrew Boyer
These barriers are duplicated by the barriers inside rte_write64(). Remove them to improve performance. Signed-off-by: Neel Patel Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_main.c| 1 - drivers/net/ionic/ionic_rxtx_sg.c | 1 - drivers/net/ionic/ionic_rxtx_simple.c | 1

[PATCH v2 1/3] common/ionic: create common code library for ionic

2024-02-20 Thread Andrew Boyer
Move definitions that will be shared by net/ionic and crypto/ionic. Add the code used for discovering UIO vdevs. Signed-off-by: Andrew Boyer --- MAINTAINERS | 1 + drivers/common/ionic/ionic_common.h | 41 +++ drivers/common/ionic/ionic_common_uio.c

[PATCH v2 0/3] net/ionic, common/ionic: add vdev support

2024-02-20 Thread Andrew Boyer
driver. V2: - Redesign vdev device scan as suggested by review. - Re-sort entries in config/arm/meson.build as suggested by review. Andrew Boyer (3): common/ionic: create common code library for ionic net/ionic: remove duplicate barriers net/ionic: add vdev support for embedded applications

[PATCH 3/3] net/ionic: add vdev support for embedded applications

2024-02-16 Thread Andrew Boyer
, use an ARM 'dsb st' barrier. The normal barrier inside rte_write64() is insufficient on these devices due to a chip errata. Signed-off-by: Andrew Boyer Signed-off-by: Neel Patel Signed-off-by: R Mohamed Shah Signed-off-by: Alfredo Cardigliano --- config/arm/arm64_capri_lin

[PATCH 2/3] net/ionic: remove duplicate barriers

2024-02-16 Thread Andrew Boyer
These barriers are duplicated by the barriers inside rte_write64(). Remove them to improve performance. Signed-off-by: Neel Patel Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_main.c| 1 - drivers/net/ionic/ionic_rxtx_sg.c | 1 - drivers/net/ionic/ionic_rxtx_simple.c | 1

[PATCH 1/3] common/ionic: create common code library for ionic

2024-02-16 Thread Andrew Boyer
Move definitions that will be shared by net/ionic and crypto/ionic. Add the code used for discovering UIO vdevs. Signed-off-by: Andrew Boyer --- MAINTAINERS | 1 + drivers/common/ionic/ionic_common.h | 41 +++ drivers/common/ionic/ionic_common_uio.c

[PATCH 0/3] net/ionic, common/ionic: add vdev support

2024-02-16 Thread Andrew Boyer
driver. Andrew Boyer (3): common/ionic: create common code library for ionic net/ionic: remove duplicate barriers net/ionic: add vdev support for embedded applications MAINTAINERS | 1 + config/arm/arm64_capri_linux_gcc| 16 ++ config/arm

[PATCH v2] cryptodev: speed up ops pool create

2024-02-16 Thread Andrew Boyer
Use rte_mempool_virt2iova(), which uses arithmetic based on the mempool state, rather than rte_mem_virt2iova(), which uses syscalls to look at the proc filesystem. This speeds up pool create by more than 90%. Signed-off-by: Andrew Boyer --- lib/cryptodev/rte_cryptodev.c | 2 +- 1 file changed

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

2024-02-06 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 | 136

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

2024-02-06 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 | 68 ++--- drivers/net/ionic/ionic_lif.h | 12 -- drivers/net/ionic/ionic_main.c | 17 +++- drivers/net/ionic/ionic_rxtx.c | 78

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

2024-02-06 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 v3 07/13] net/ionic: fix RSS query routine

2024-02-06 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 v3 09/13] net/ionic: add flexible firmware xstat counters

2024-02-06 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 v3 06/13] net/ionic: memcpy descriptors when using Q-in-CMB

2024-02-06 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 v3 10/13] net/ionic: fix device close sequence to avoid crash

2024-02-06 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 v3 08/13] net/ionic: report 1G and 200G link speeds when applicable

2024-02-06 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 v3 04/13] net/ionic: fix missing volatile type for cqe pointers

2024-02-06 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 v3 05/13] net/ionic: replace non-standard type in structure definition

2024-02-06 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 v3 02/13] net/ionic: increase max supported MTU to 9750 bytes

2024-02-06 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 v3 03/13] net/ionic: don't auto-enable Rx scatter-gather a second time

2024-02-06 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 v3 01/13] net/ionic: add stat for completion queue entries processed

2024-02-06 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 v3 00/13] net/ionic: miscellaneous fixes and improvements

2024-02-06 Thread Andrew Boyer
RSS query routine Andrew Boyer (8): net/ionic: add stat for completion queue entries processed net/ionic: increase max supported MTU to 9750 bytes net/ionic: don't auto-enable Rx scatter-gather a second time net/ionic: replace non-standard type in structure definition net/ionic: fix d

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

2024-02-06 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 | 136

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

2024-02-06 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 | 68 ++--- drivers/net/ionic/ionic_lif.h | 12 -- drivers/net/ionic/ionic_main.c | 17 +++- drivers/net/ionic/ionic_rxtx.c | 78

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

2024-02-06 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 v2 11/13] net/ionic: optimize device close operation

2024-02-06 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 v2 09/13] net/ionic: add flexible firmware xstat counters

2024-02-06 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 v2 08/13] net/ionic: report 1G and 200G link speeds when applicable

2024-02-06 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 v2 07/13] net/ionic: fix RSS query routine

2024-02-06 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 v2 06/13] net/ionic: memcpy descriptors when using Q-in-CMB

2024-02-06 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 v2 05/13] net/ionic: replace non-standard type in structure definition

2024-02-06 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 v2 04/13] net/ionic: fix missing volatile type for cqe pointers

2024-02-06 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 v2 03/13] net/ionic: don't auto-enable Rx scatter-gather a second time

2024-02-06 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 v2 02/13] net/ionic: increase max supported MTU to 9750 bytes

2024-02-06 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 v2 01/13] net/ionic: add stat for completion queue entries processed

2024-02-06 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 v2 00/13] net/ionic: miscellaneous fixes and improvements

2024-02-06 Thread Andrew Boyer
This patchset provides miscellaneous fixes and improvements for the net/ionic driver used by AMD Pensando devices. V2: - Update device stop and device start patches to use compound literals as suggested by review. Akshay Dorwat (1): net/ionic: fix RSS query routine Andrew Boyer (8): net

[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

[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 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 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 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 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 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 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 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 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 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 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 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 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] cryptodev: add a simple mapping cache to speed up ops pool create

2024-01-19 Thread Andrew Boyer
Cache the most recent VA -> PA mapping found so that we can skip most of the system calls. With 4K pages this reduces pool create time by about 90%. Signed-off-by: Andrew Boyer --- lib/cryptodev/rte_crypto.h| 5 + lib/cryptodev/rte_cryptodev.c | 23 ++- 2 fi

[PATCH 2/2] net/ionic: fix up minor coverity issue in packet transmit

2022-11-03 Thread Andrew Boyer
t;) Signed-off-by: Andrew Boyer --- drivers/net/ionic/ionic_rxtx_sg.c | 2 +- drivers/net/ionic/ionic_rxtx_simple.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ionic/ionic_rxtx_sg.c b/drivers/net/ionic/ionic_rxtx_sg.c index 2752ba2acd..ab8e56e91c 10064

[PATCH 1/2] net/ionic: fix up minor coverity issue in queue allocation

2022-11-03 Thread Andrew Boyer
(uint16_t * uint16_t) promoted to uint64_t has a sign extension problem reported by Coverity. Cast one arg to uint64_t first to eliminate the sign extension. Coverity issue: 381617 Coverity issue: 381618 Fixes: 7b20fc2f3c06 ("net/ionic: overhaul Rx for performance") Signed-off-by: An

[PATCH 0/2] net/ionic: fix up minor coverity issues

2022-11-03 Thread Andrew Boyer
These patches will make no functional difference, but should eliminate four coverity issues. Alternatively, we could just mark them as False Positive or Ignored in coverity. Signed-off-by: Andrew Boyer Andrew Boyer (2): net/ionic: fix up minor coverity issue in queue allocation 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

[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 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 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 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 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 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

  1   2   3   4   >