#
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 ...
|
#
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 ...
|
#
ba6a168a |
| 01-Feb-2024 |
Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com> |
drivers/net: return number of supported packet types
Missing "RTE_PTYPE_UNKNOWN" ptype causes buffer overflow. Enhance code such that the dev_supported_ptypes_get() function pointer now returns the
drivers/net: return number of supported packet types
Missing "RTE_PTYPE_UNKNOWN" ptype causes buffer overflow. Enhance code such that the dev_supported_ptypes_get() function pointer now returns the number of elements to eliminate the need for "RTE_PTYPE_UNKNOWN" as the last item.
Same applied to 'buffer_split_supported_hdr_ptypes_get()' dev_ops too.
Signed-off-by: Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@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 ...
|
#
60625147 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: support Tx descriptor status
This may be useful for clients.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Signed-off-by: Allen Hubbe <allen.hubbe@amd.com>
|
#
0983a74a |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: support Rx descriptor status
These may be useful for clients.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Signed-off-by: Allen Hubbe <allen.hubbe@amd.com>
|
#
b5b56afd |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: advertise supported packet types
This improves performance, since clients may be able to skip SW packet classification.
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 ...
|
#
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>
|
#
7483341a |
| 06-Oct-2021 |
Xueming Li <xuemingl@nvidia.com> |
ethdev: change queue release callback
Currently, most ethdev callback API use queue ID as parameter, but Rx and Tx queue release callback use queue object which is used by Rx and Tx burst data plane
ethdev: change queue release callback
Currently, most ethdev callback API use queue ID as parameter, but Rx and Tx queue release callback use queue object which is used by Rx and Tx burst data plane callback.
To align with other eth device queue configuration callbacks: - queue release callbacks are changed to use queue ID - all drivers are adapted
Signed-off-by: Xueming Li <xuemingl@nvidia.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
a27d9013 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: add Rx and Tx handling
Add Rx and Tx queues setup and handling.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
|