History log of /dpdk/drivers/net/ionic/ionic_lif.h (Results 1 – 25 of 43)
Revision Date Author Comments
# 27595cd8 15-Apr-2024 Tyler Retzlaff <roretzla@linux.microsoft.com>

drivers: move alignment attribute on types for MSVC

Move location of __rte_aligned(a) to new conventional location. The new
placement between {struct,union} and the tag allows the desired
alignment

drivers: move alignment attribute on types for MSVC

Move location of __rte_aligned(a) to new conventional location. The new
placement between {struct,union} and the tag allows the desired
alignment to be imparted on the type regardless of the toolchain being
used for both C and C++. Additionally, it avoids confusion by Doxygen
when generating documentation.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>

show more ...


# 0033e92f 07-Feb-2024 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: optimize device start

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 windo

net/ionic: optimize device start

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 <andrew.boyer@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 ...


# ea81e9f2 07-Feb-2024 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: add completion queue entries processed stats

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

net/ionic: add completion queue entries processed stats

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


# e86a6fcc 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: add optimized non-scattered Rx/Tx

The code is very similar, but the simple case can skip a few branches
in the hot path. This improves PPS when 10KB mbufs are used.

S/G is enabled on the

net/ionic: add optimized non-scattered Rx/Tx

The code is very similar, but the simple case can skip a few branches
in the hot path. This improves PPS when 10KB mbufs are used.

S/G is enabled on the Rx side by offload DEV_RX_OFFLOAD_SCATTER.
S/G is enabled on the Tx side by offload DEV_TX_OFFLOAD_MULTI_SEGS.

S/G is automatically enabled on 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 <andrew.boyer@amd.com>
Signed-off-by: R Mohamed Shah <mohamedshah.r@amd.com>

show more ...


# 07512941 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: allow to specify Tx free threshold

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 siz

net/ionic: allow to specify Tx free threshold

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 <andrew.boyer@amd.com>

show more ...


# 9de21005 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: add Q-in-CMB option

When 'ionic_cmb' is set to '1', queue memory will be allocated from
the device's onboard memory (Controller Memory Buffer). In some
configurations, this will dramatica

net/ionic: add Q-in-CMB option

When 'ionic_cmb' is set to '1', queue memory will be allocated from
the device's onboard memory (Controller Memory Buffer). In some
configurations, this will dramatically reduce packet latency and
increase PPS.

Add the WC_ACTIVATE flag to the PCI driver flags.
Write combining must be enabled to achieve the maximum PPS.

When the queue is in the CMB, descriptors cannot be prefetched.

Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
Signed-off-by: Neel Patel <neel.patel@amd.com>

show more ...


# 218afd82 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: do bulk allocations of Rx mbufs

Do bulk allocations to improve performance.

Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>


# 9ac234ee 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: support mbuf fast free

Use a put() rather than a free() in the optimized case.

Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>


# 7b20fc2f 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: overhaul Rx for performance

Linearize RX mbuf chains in the expanded info array.
Clean one and fill one per CQE (completions are not coalesced).
Touch the mbufs as little as possible in t

net/ionic: overhaul Rx for performance

Linearize RX mbuf chains in the expanded info array.
Clean one and fill one per CQE (completions are not coalesced).
Touch the mbufs as little as possible in the fill stage.
When touching the mbuf in the clean stage, use the rearm_data unions.
Ring the doorbell once at the end of the bulk clean/fill.

Signed-off-by: Neel Patel <neel.patel@amd.com>
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>

show more ...


# d5850081 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: precalculate segment lengths on Rx side

The first (header) segment includes the standard headroom.
Subsequent segments do not.

Store the fragment counts in the queue structure.

Precalcu

net/ionic: precalculate segment lengths on Rx side

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 <andrew.boyer@amd.com>

show more ...


# e7222f94 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: free all buffers during Rx queue stop

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: And

net/ionic: free all buffers during Rx queue stop

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 <andrew.boyer@amd.com>

show more ...


# b671e69a 18-Oct-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: update MTU calculations

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 MT

net/ionic: update MTU calculations

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 <andrew.boyer@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>


# e19eea1e 16-Feb-2021 Andrew Boyer <aboyer@pensando.io>

net/ionic: store Tx fragment limit in queue

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.

Sign

net/ionic: store Tx fragment limit in queue

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 <aboyer@pensando.io>

show more ...


# ed522a3f 16-Feb-2021 Andrew Boyer <aboyer@pensando.io>

net/ionic: log queue counters when tearing down

This improves debuggability.

To see the logs, use EAL arg: --log-level=pmd.net.ionic,debug

While here, stop counting fragments, but start counting m

net/ionic: log queue counters when tearing down

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 <aboyer@pensando.io>

show more ...


# 8ec5ad7f 16-Feb-2021 Andrew Boyer <aboyer@pensando.io>

net/ionic: use socket id passed in for Rx and Tx queues

Pipe the value from the queue setup routines through to
ionic_qcq_alloc().

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


# aeb70a00 16-Feb-2021 Andrew Boyer <aboyer@pensando.io>

net/ionic: remove unused interrupt free function

This will conserve resources.

Signed-off-by: Andrew Boyer <aboyer@pensando.io>


# 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 ...


# 2aed9865 16-Feb-2021 Andrew Boyer <aboyer@pensando.io>

net/ionic: cut down completion queue structure

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 <aboyer@pens

net/ionic: cut down completion queue structure

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 <aboyer@pensando.io>

show more ...


# 68591087 18-Jan-2021 Andrew Boyer <aboyer@pensando.io>

net/ionic: convert per-queue offloads into queue flags

This will conserve resources by reducing struct ionic_qcq.

Saving a cacheline or two in the rxq and txq structs helps when
running in embedded

net/ionic: convert per-queue offloads into queue flags

This will conserve resources by reducing struct ionic_qcq.

Saving a cacheline or two in the rxq and txq structs helps when
running in embedded configurations where CPU cache space is at a
premium.

Signed-off-by: Andrew Boyer <aboyer@pensando.io>

show more ...


# c5d15850 18-Jan-2021 Andrew Boyer <aboyer@pensando.io>

net/ionic: query firmware for supported queue versions

This allows the PMD to better support FW changes.

Signed-off-by: Andrew Boyer <aboyer@pensando.io>
Signed-off-by: Shannon Nelson <snelson@pens

net/ionic: query firmware for supported queue versions

This allows the PMD to better support FW changes.

Signed-off-by: Andrew Boyer <aboyer@pensando.io>
Signed-off-by: Shannon Nelson <snelson@pensando.io>

show more ...


12