History log of /dpdk/drivers/net/ionic/ionic_main.c (Results 1 – 23 of 23)
Revision Date Author Comments
# 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 ...