#
c4f16ab0 |
| 12-Dec-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: fix missing default LLQ policy
The driver failed to set a default llq_header_policy, causing LLQ to be disabled when the devarg value is not specified by the application.
Fixes: d7918d19d2
net/ena: fix missing default LLQ policy
The driver failed to set a default llq_header_policy, causing LLQ to be disabled when the devarg value is not specified by the application.
Fixes: d7918d19d25e ("net/ena: restructure LLQ policy user setting") Cc: stable@dpdk.org
Signed-off-by: Yosef Raisman <yraisman@amazon.com> Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
7a166990 |
| 23-Oct-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: support malformed Rx descriptor error
Add validation check for packet descriptor consistency and improve reset logic and stats tracking.
Signed-off-by: Shai Brandes <shaibran@amazon.com> R
net/ena: support malformed Rx descriptor error
Add validation check for packet descriptor consistency and improve reset logic and stats tracking.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
3a2509ab |
| 23-Oct-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: upgrade driver version to 2.11.0
Upgrade ENA driver version to 2.11.0.
Signed-off-by: Shai Brandes <shaibran@amazon.com>
|
#
d7918d19 |
| 06-Oct-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: restructure LLQ policy user setting
Replaced `enable_llq`, `normal_llq_hdr` and `large_llq_hdr` devargs with a new shared devarg named `llq_policy` that implements the same logic and accept
net/ena: restructure LLQ policy user setting
Replaced `enable_llq`, `normal_llq_hdr` and `large_llq_hdr` devargs with a new shared devarg named `llq_policy` that implements the same logic and accepts the following values: 0 - Disable LLQ. Use with extreme caution as it leads to a huge performance degradation on AWS instances built with Nitro v4 onwards. 1 - Accept device recommended LLQ policy (Default). Device can recommend normal or large LLQ policy. 2 - Enforce normal LLQ policy. 3 - Enforce large LLQ policy. Required for packets with header that exceed 96 bytes on AWS instances built with Nitro v2 and earlier.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
e99981af |
| 12-Aug-2024 |
David Marchand <david.marchand@redhat.com> |
drivers: replace logging helpers
Prepare for the conversion to RTE_LOG_LINE. Some drivers currently add no \n in the logging macro and have the callers do it.
Let's invert this logic but again, thi
drivers: replace logging helpers
Prepare for the conversion to RTE_LOG_LINE. Some drivers currently add no \n in the logging macro and have the callers do it.
Let's invert this logic but again, thinking about backports, introduce the change in new macros.
Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
1be188e2 |
| 02-Jul-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: upgrade driver version to 2.10.0
upgrade driver version to 2.10.0.
Signed-off-by: Shai Brandes <shaibran@amazon.com>
|
#
5ac1749f |
| 02-Jul-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: rework Rx checksum inspection
This restructure is a simplification of the Rx checksum inspection logic in ena_rx_mbuf_prepare. Its purpose is to improve readability and maintainability by c
net/ena: rework Rx checksum inspection
This restructure is a simplification of the Rx checksum inspection logic in ena_rx_mbuf_prepare. Its purpose is to improve readability and maintainability by consolidating conditions.
Signed-off-by: Shai Brandes <shaibran@amazon.com>
show more ...
|
#
f66055c7 |
| 02-Jul-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: fix checksum handling
This change fixes an issue where a non tcp/udp packet can be indicated to have an invalid csum. If the device erroneously tries to verify the csum on a non tcp/udp pac
net/ena: fix checksum handling
This change fixes an issue where a non tcp/udp packet can be indicated to have an invalid csum. If the device erroneously tries to verify the csum on a non tcp/udp packet it will result in false indication that there is a csum error. This change make the driver ignore the indication for csum error on such packets.
Fixes: 84daba9962b5 ("net/ena: add extra Rx checksum related xstats") Cc: stable@dpdk.org
Signed-off-by: Shai Brandes <shaibran@amazon.com>
show more ...
|
#
8936b01a |
| 02-Jul-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: fix return value check
Removed the sign inversion for when checking if ena_com_set_host_attributes returns ENA_COM_UNSUPPORTED. ENA_COM_UNSUPPORTED is defined as -EOPNOTSUPP, so the extra s
net/ena: fix return value check
Removed the sign inversion for when checking if ena_com_set_host_attributes returns ENA_COM_UNSUPPORTED. ENA_COM_UNSUPPORTED is defined as -EOPNOTSUPP, so the extra sign inversion is wrong.
Fixes: 3adcba9a8987 ("net/ena: update HAL to the newer version") Cc: stable@dpdk.org
Signed-off-by: Shai Brandes <shaibran@amazon.com>
show more ...
|
#
fa4bb702 |
| 02-Jul-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: fix bad checksum handling
Removed a workaround for a false L4 bad Rx csum indication from the device. The workaround was to set it as unknown so the application would check it instead. The
net/ena: fix bad checksum handling
Removed a workaround for a false L4 bad Rx csum indication from the device. The workaround was to set it as unknown so the application would check it instead. The issue was fixed in the device, thus the driver bad csum handling should be fixed in the PMD.
Fixes: b2d2f1cf89a6 ("net/ena: fix checksum flag for L4") Cc: stable@dpdk.org
Signed-off-by: Shai Brandes <shaibran@amazon.com>
show more ...
|
#
8af56083 |
| 02-Jul-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: rework device uninit
Rework device uninitialization flow to ensure complete resource cleanup, and lay the groundwork for hot-unplug support. With this change, `ena_destroy_device()` is remo
net/ena: rework device uninit
Rework device uninitialization flow to ensure complete resource cleanup, and lay the groundwork for hot-unplug support. With this change, `ena_destroy_device()` is removed, its functionality now incorporated into `ena_close()`.
Signed-off-by: Shai Brandes <shaibran@amazon.com>
show more ...
|
#
eea9fc6a |
| 02-Jul-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: change logger to improve performance
Current implementation of ena_trc_dbg on every TX packet has a major performance impact on DPDK TX flow. Profiling revealed that these calls, which trig
net/ena: change logger to improve performance
Current implementation of ena_trc_dbg on every TX packet has a major performance impact on DPDK TX flow. Profiling revealed that these calls, which trigger rte_log usage, consume a significant amount of CPU resources.
Change details: 1. Several warning prints that incorrectly used ena_trc_dbg will now be compiled out. They have been changed to ena_trc_warn to avoid compiler warnings, such as empty if/else body or unused parameter. 2. Removed variables which is used only inside prints and thus may be unreferenced. 3. calls for ena_trc_dbg will be enabled only if RTE_ETHDEV_DEBUG_TX or RTE_ETHDEV_DEBUG_RX defined
Signed-off-by: Shai Brandes <shaibran@amazon.com>
show more ...
|
#
237407f0 |
| 20-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: fix mbuf double free in fast free mode
Fixed an issue of double free of mbufs which is exposed in mbuf fast free mode when handling multi-mbuf packets.
The faulty patch mishandled free of
net/ena: fix mbuf double free in fast free mode
Fixed an issue of double free of mbufs which is exposed in mbuf fast free mode when handling multi-mbuf packets.
The faulty patch mishandled free of non-head mbufs as it iterated over linked mbufs and collected them into an array, which was then passed to rte_pktmbuf_free_bulk. However, rte_pktmbuf_free_bulk already performs an internal iteration over mbufs that are linked together which led to double free.
Fixes: 89b081e154c5 ("net/ena: fix fast mbuf free") Cc: stable@dpdk.org
Signed-off-by: Shai Brandes <shaibran@amazon.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
fa1c189d |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: upgrade driver version to 2.9.0
Upgrade driver version to 2.9.0.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
|
#
ca1dfa85 |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: add control path pure polling mode
This commit implements a new operation mode that enables purely polling-based functionality, eliminating the need for interrupts in the control path. This
net/ena: add control path pure polling mode
This commit implements a new operation mode that enables purely polling-based functionality, eliminating the need for interrupts in the control path. This mode is not activated by default and can be toggled using the "control_poll_interval" devarg. When operating in this mode, periodic alarms are used to monitor the control queues.
A non-zero value for this devarg is mandatory for control path functionality when binding ports to uio_pci_generic kernel module which lacks interrupt support.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
bf5fe95c |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: support max large LLQ depth from device
Selected AWS instances from later generations enable large LLQ by default, allowing the transmission of packets with headers exceeding 96 bytes.
Due
net/ena: support max large LLQ depth from device
Selected AWS instances from later generations enable large LLQ by default, allowing the transmission of packets with headers exceeding 96 bytes.
Due to the overall ENA memory BAR size limitation, large LLQ has the side effect of halving the maximum number of LLQ entries (from 1024 to 512).
ENA-Express, powered by AWS Scalable Reliable Datagram (SRD) technology, requires Tx queue with 1024 entries. Selected AWS instances from upcoming generations will have double the size of the ENA memory BAR, enabling ENA-Express to work with a large LLQ of 1024 entries.
The initial default large LLQ size will remain 512.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
9d3a9851 |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: exhaust interrupt callbacks in device close
Change rte_intr_callback_unregister to its synchronous variant to ensure all active interrupt callbacks are completed before proceeding with the
net/ena: exhaust interrupt callbacks in device close
Change rte_intr_callback_unregister to its synchronous variant to ensure all active interrupt callbacks are completed before proceeding with the flow. Relocate the interrupt deregistration to precede the release of stats memory, thereby preventing the interrupt handler from accessing memory that has already been freed.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
96fc5e08 |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: update device-preferred size of rings
Update the device-preferred size of the Tx ring to fall within the valid range when a large LLQ is enabled. For consistency, align the device-preferred
net/ena: update device-preferred size of rings
Update the device-preferred size of the Tx ring to fall within the valid range when a large LLQ is enabled. For consistency, align the device-preferred size of the Rx ring accordingly.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
1f11149d |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: restructure LLQ policy setting process
The driver will set the size of the LLQ header size according to the recommendation from the device. The user can bypass the recommendation via devarg
net/ena: restructure LLQ policy setting process
The driver will set the size of the LLQ header size according to the recommendation from the device. The user can bypass the recommendation via devargs: - The existing devarg 'large_llq_hdr' (default 0) allows user to enforce large llq header policy. - The existing devarg 'enable_llq' (default 1) allows user to disable llq usage. - A new devarg 'normal_llq_hdr' (default 0) allows user to enforce normal llq header policy.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
89b081e1 |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: fix fast mbuf free
In case the application enables fast mbuf release optimization, the driver releases 256 TX mbufs in bulk upon reaching the TX free threshold. The existing implementation
net/ena: fix fast mbuf free
In case the application enables fast mbuf release optimization, the driver releases 256 TX mbufs in bulk upon reaching the TX free threshold. The existing implementation utilizes rte_mempool_put_bulk for bulk freeing TXs, which exclusively supports direct mbufs. In case the application transmits indirect bufs, the driver must also decrement the mbuf reference count and unlink the mbuf segment. For such case, the driver should employ rte_pktmbuf_free_bulk.
Fixes: c339f53823f3 ("net/ena: support fast mbuf free") Cc: stable@dpdk.org
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
2c0f7536 |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: support sub-optimal configuration notifications
ENA device will send asynchronous notifications to the driver in order to notify users about sub-optimal configurations and refer them to pub
net/ena: support sub-optimal configuration notifications
ENA device will send asynchronous notifications to the driver in order to notify users about sub-optimal configurations and refer them to public AWS documentation for further action.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
dae29f75 |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: update imissed counter with Rx overruns
Depending on its acceleration support, the device updates a different statistic when an ingress packet is dropped because no buffers are available to
net/ena: update imissed counter with Rx overruns
Depending on its acceleration support, the device updates a different statistic when an ingress packet is dropped because no buffers are available to hold it. - In AWS instance types from later generations 'rx_overruns' is updated. - Otherwise, in legacy instance types, 'rx_dropped_cnt' is updated.
That is, there is no need to report rx_overruns separately as an xstat and the driver can simply sum up the two self-contained counters as the 'imissed' statistic.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
4ebe5efa |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: report new supported link speed capabilities
Updated the rte_eth_dev_info device supported speed bitmap to include 200Gbps and 400Gbps capabilities.
Signed-off-by: Shai Brandes <shaibran@a
net/ena: report new supported link speed capabilities
Updated the rte_eth_dev_info device supported speed bitmap to include 200Gbps and 400Gbps capabilities.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
980d0ba4 |
| 12-Mar-2024 |
Shai Brandes <shaibran@amazon.com> |
net/ena: rework metrics multi-process functions
1. Changed the rte_memcpy call to use the precomputed buf_size. 2. Removed redundant address operators (ampersand symbol) when providing memcpy sou
net/ena: rework metrics multi-process functions
1. Changed the rte_memcpy call to use the precomputed buf_size. 2. Removed redundant address operators (ampersand symbol) when providing memcpy source address parameter. 3. Code style related change.
Signed-off-by: Shai Brandes <shaibran@amazon.com> Reviewed-by: Amit Bernstein <amitbern@amazon.com>
show more ...
|
#
93998f3c |
| 15-Nov-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
add extension keyword to GCC statement expressions
Add __extension__ keyword to gcc statement expression extensions. This is necessary for MSVC support.
Signed-off-by: Tyler Retzlaff <roretzla@linu
add extension keyword to GCC statement expressions
Add __extension__ keyword to gcc statement expression extensions. This is necessary for MSVC support.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
show more ...
|