History log of /dpdk/drivers/net/ionic/ionic_lif.c (Results 1 – 25 of 65)
Revision Date Author Comments
# d026a6b0 19-Apr-2024 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: clean up logging

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

net/ionic: clean up logging

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 <andrew.boyer@amd.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>

show more ...


# fffea1ae 20-Feb-2024 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: support vdev for embedded applications

Add support for running DPDK applications directly on AMD Pensando
embedded HW. The platform exposes the device BARs through UIO. The
UIO code in th

net/ionic: support vdev for embedded applications

Add support for running DPDK applications directly on AMD Pensando
embedded HW. The platform exposes the device BARs through UIO. The
UIO code in the common/ionic library walks the sysfs filesystem
to identify the relevant BARs and map them into process memory.

The SoCs are named 'Capri' and 'Elba'.

The vdev device interface code is located in ionic_dev_vdev.c.

Some datapath operations are #ifdef-ed out to save on resources when
running in embedded mode.

Some control path operations are skipped by the ionic_is_embedded()
helper function.

Before ringing the doorbell, 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 <andrew.boyer@amd.com>
Signed-off-by: Neel Patel <neel.patel@amd.com>
Signed-off-by: R Mohamed Shah <mohamedshah.r@amd.com>
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org>
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.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 ...


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

net/ionic: optimize device close

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 pr

net/ionic: optimize device close

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

show more ...


# 90fa040a 07-Feb-2024 Neel Patel <neel.patel@amd.com>

net/ionic: group descriptors when using Q-in-CMB

They can be batched together with memcpy, reducing the number
of PCIe transactions. This improves transmit PPS by up to 50% in
some configurations.

net/ionic: group descriptors when using Q-in-CMB

They can be batched together with memcpy, reducing the number
of PCIe transactions. This improves transmit PPS by up to 50% in
some configurations.

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

show more ...


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

net/ionic: do not auto-enable Rx scatter-gather second time

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
no

net/ionic: do not auto-enable Rx scatter-gather second time

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

show more ...


# 4b53e980 03-Nov-2022 Andrew Boyer <andrew.boyer@amd.com>

net/ionic: fix sign extension in queue allocation

(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 e

net/ionic: fix sign extension in queue allocation

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


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

net/ionic: use helper variable for page size

This improves readability.

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


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


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

net/ionic: add alignment and socket info in allocations

This will avoid memory access penalties on NUMA systems.

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


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

net/ionic: use calloc for array allocations

Use rte_calloc() where appropriate.
This makes the code clearer.

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


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


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

net/ionic: overhaul Tx for performance

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 Bo

net/ionic: overhaul Tx for performance

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

show more ...


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


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

net/ionic: request notifyq interrupt only if supported

Enable the interrupt if the platform & device support it.
This prevents spurious interrupts on virtual platforms.

Signed-off-by: Andrew Boyer

net/ionic: request notifyq interrupt only if supported

Enable the interrupt if the platform & device support it.
This prevents spurious interrupts on virtual platforms.

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

show more ...


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

net/ionic: remove doorbell map helper

There is only one doorbell page in DPDK configurations, so
no helper function is needed.

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


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


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

net/ionic: fix reported error stats

Report descriptor errors in ierrors instead of imissed.
Don't report rx_queue_empty or rx_queue_disabled in imissed,
since those packet errors are already include

net/ionic: fix reported error stats

Report descriptor errors in ierrors instead of imissed.
Don't report rx_queue_empty or rx_queue_disabled in imissed,
since those packet errors are already included in the
rx_*_drop_packets counters.
This makes the reported stats correct.

Fixes: 3cdfd90579e7 ("net/ionic: add stats")
Cc: stable@dpdk.org

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

show more ...


# 295968d1 22-Oct-2021 Ferruh Yigit <ferruh.yigit@intel.com>

ethdev: add namespace

Add 'RTE_ETH' namespace to all enums & macros in a backward compatible
way. The macros for backward compatibility can be removed in next LTS.
Also updated some struct names to

ethdev: add namespace

Add 'RTE_ETH' namespace to all enums & macros in a backward compatible
way. The macros for backward compatibility can be removed in next LTS.
Also updated some struct names to have 'rte_eth' prefix.

All internal components switched to using new names.

Syntax fixed on lines that this patch touches.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Acked-by: Wisam Jaddo <wisamm@nvidia.com>
Acked-by: Rosen Xu <rosen.xu@intel.com>
Acked-by: Chenbo Xia <chenbo.xia@intel.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>

show more ...


123