#
8e7a6b8a |
| 20-Feb-2024 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: remove duplicate barriers
These barriers are duplicated by the barriers inside rte_write64(). Remove them to improve performance.
Signed-off-by: Neel Patel <neel.patel@amd.com> Signed-of
net/ionic: remove duplicate barriers
These barriers are duplicated by the barriers inside rte_write64(). Remove them to improve performance.
Signed-off-by: Neel Patel <neel.patel@amd.com> Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
7bb08900 |
| 07-Feb-2024 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: optimize device stop
Split the queue_stop operation into first-half and second-half helpers. Move the command context from the stack into each Rx/Tx queue struct. Expose some needed admin
net/ionic: optimize device stop
Split the queue_stop operation into first-half and second-half helpers. Move the command context from the stack into each Rx/Tx queue struct. Expose some needed adminq interfaces.
This allows us to batch up the queue commands during dev_stop(), reducing the outage window when restarting the process by about 1ms per queue.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
show more ...
|
#
a5b1ffd8 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: add watchdogs to protect each queue type
Ring the doorbell again for the following scenarios: * No receives posted but Rx queue not empty after deadline * No transmits posted but Tx wor
net/ionic: add watchdogs to protect each queue type
Ring the doorbell again for the following scenarios: * No receives posted but Rx queue not empty after deadline * No transmits posted but Tx work still pending after deadline * Admin queue work still pending after deadline
This will help the queues recover in the extremely rare case that a doorbell is missed by the FW.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
show more ...
|
#
13133a28 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: retry init commands up to five times
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
net/ionic: retry init commands up to five times
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 <andrew.boyer@amd.com>
show more ...
|
#
8eaafff3 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: move PCI-specific code to separate file
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 commo
net/ionic: move PCI-specific code to separate file
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 <andrew.boyer@amd.com> Signed-off-by: Neel Patel <neel.patel@amd.com> Signed-off-by: R Mohamed Shah <mohamedshah.r@amd.com>
show more ...
|
#
76668754 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: update license terms to remove GPL
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 <andrew.boyer@amd.com>
|
#
a5205992 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: update documentation and copyrights
Pensando Systems has been acquired by AMD. Update all copyright strings and email addresses.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
|
#
924e6b76 |
| 25-Feb-2021 |
Thomas Monjalon <thomas@monjalon.net> |
drivers: replace page size definitions with function
The page size is often retrieved from the macro PAGE_SIZE. If PAGE_SIZE is not defined, it is either using hard coded default, or getting the sys
drivers: replace page size definitions with function
The page size is often retrieved from the macro PAGE_SIZE. If PAGE_SIZE is not defined, it is either using hard coded default, or getting the system value from the UNIX-only function sysconf().
Such definitions are replaced with the generic function rte_mem_page_size() defined for each supported OS.
Removing PAGE_SIZE definitions will fix dlb drivers for musl libc, because #ifdef checks were missing, causing redefinition errors.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Andrew Boyer <aboyer@pensando.io> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: David Marchand <david.marchand@redhat.com> Acked-by: Timothy McDaniel <timothy.mcdaniel@intel.com>
show more ...
|
#
dd10c5b4 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: break up queue post function
Break it up rather than inlining it, so that we can remove branches from the hot path.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
be39f75c |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: split up queue-completion queue structure
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
net/ionic: split up queue-completion queue structure
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 <aboyer@pensando.io>
show more ...
|
#
4ad56b7a |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: cut down queue structure
This will conserve resources.
Rename ionic_qcq_alloc() arg from 'base' to 'type_name' for clarity.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
700f974d |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: convert info array to generic pointers
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 <a
net/ionic: convert info array to generic pointers
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 <aboyer@pensando.io>
show more ...
|
#
750aebd5 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: consolidate adminq code
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 f
net/ionic: consolidate adminq code
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 <aboyer@pensando.io>
show more ...
|
#
76276d71 |
| 29-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: use existing array size macro
Using the RTE_DIM() macro makes the code clearer.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
09f806e9 |
| 18-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: observe endianness in firmware commands
The IONIC firmware is little-endian.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
8baeb91d |
| 11-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: set port admin state to up in port init
This reduces the startup time a bit.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Signed-off-by: Neel Patel <neel@pensando.io>
|
#
4ae96cb8 |
| 10-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: do minor logging fixups
Expose ionic_opcode_to_str() so it can be used for dev cmds, too. Store the device name in struct adapter.
Switch to memcpy() to work around gcc false positives.
net/ionic: do minor logging fixups
Expose ionic_opcode_to_str() so it can be used for dev cmds, too. Store the device name in struct adapter.
Switch to memcpy() to work around gcc false positives.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
75f96902 |
| 10-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: make minor refactorings
This makes the code clearer and conserves resources.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
|
#
47dc2bd3 |
| 10-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: check for command completion more frequently
This reduces the startup time a bit.
Signed-off-by: Neel Patel <neel@pensando.io> Signed-off-by: Andrew Boyer <aboyer@pensando.io> Reviewed-b
net/ionic: check for command completion more frequently
This reduces the startup time a bit.
Signed-off-by: Neel Patel <neel@pensando.io> Signed-off-by: Andrew Boyer <aboyer@pensando.io> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
e40303eb |
| 09-Mar-2020 |
Sunil Kumar Kori <skori@marvell.com> |
net/ionic: use standard boolean type
Any DPDK public header file which includes stdbool.h may conflict with local definition of bool, if any, which further results in compilation error. To avoid, us
net/ionic: use standard boolean type
Any DPDK public header file which includes stdbool.h may conflict with local definition of bool, if any, which further results in compilation error. To avoid, used standard stdbool.h instead of defining bool internally.
I observed this issue during a development where I included rte_uuid.h into rte_ethdev.h. As rte_ethdev.h is included to PMD driver, it started throwing error as given below:
CC ionic_rxtx.o In file included from .../dpdk/build/include/rte_uuid.h:17:0, from .../dpdk/build/include/rte_ethdev.h:161, from .../dpdk/build/include/rte_ethdev_driver.h:18, from .../dpdk/drivers/net/ionic/ionic_rxtx.c:34: .../dpdk/drivers/net/ionic/ionic_osdep.h:48:17: error: two or more data types in declaration specifiers typedef uint8_t bool; ^ In file included from .../dpdk/drivers/net/ionic/ionic_dev.h:8:0, from .../dpdk/drivers/net/ionic/ionic.h:13, from .../dpdk/drivers/net/ionic/ionic_mac_api.h:8, from .../dpdk/drivers/net/ionic/ionic_rxtx.c:45: .../dpdk/drivers/net/ionic/ionic_osdep.h:48:1: warning: useless type name in empty declaration typedef uint8_t bool; ^~~~~~~ cc1: warning: unrecognized command line option ‘-Wno-address-of-packed-member’ .../dpdk/mk/internal/rte.compile-pre.mk:114: recipe for target 'ionic_rxtx.o' failed
Fixes: 5ef518098ec6 ("net/ionic: register and initialize adapter") Cc: stable@dpdk.org
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Alfredo Cardigliano <cardigliano@ntop.org>
show more ...
|
#
01a6c311 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: support admin queue
Add support for the admin queue, which is used for most of the NIC configurations.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nels
net/ionic: support admin queue
Add support for the admin queue, which is used for most of the NIC configurations.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|
#
23bf4ddb |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: add port management commands
Add port management commands that apply to the physical ports associated with the PCI device, which might be shared among several logical interfaces.
Signed-
net/ionic: add port management commands
Add port management commands that apply to the physical ports associated with the PCI device, which might be shared among several logical interfaces.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|
#
5ef51809 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: register and initialize adapter
Register the Pensando ionic PMD (net_ionic) and define initial probe and remove callbacks with adapter initialization.
Signed-off-by: Alfredo Cardigliano
net/ionic: register and initialize adapter
Register the Pensando ionic PMD (net_ionic) and define initial probe and remove callbacks with adapter initialization.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|