|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2 |
|
| #
dbbdeb8b |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: update version to 2.6.0
This release contains multiple bug fixes and improvements, including - Removal of the linearization function from the xmit Tx path. The DPDK assumes checking f
net/ena: update version to 2.6.0
This release contains multiple bug fixes and improvements, including - Removal of the linearization function from the xmit Tx path. The DPDK assumes checking for the mbuf segments number in the Tx prepare function. - Extra logs, statistics, checks... - Cleanup of the unused variables and definitions. - Configurable Link Status event. - Improvements for the timer service and the reset. - Usage of the optimized memcpy on ARM. - MP awareness improvements - extra API support for the secondary processes (like reading basic statistics). - Support of the xstats API to get xstat names by ID. - Configurable Tx completions timeout. - Proper setting of the meta-descriptor's DF flag.
Signed-off-by: Michal Krawczyk <[email protected]>
show more ...
|
| #
b2d2f1cf |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: fix checksum flag for L4
Some HW may invalidly set checksum error bit for the valid L4 checksum. To avoid drop of the packets in that situation, do not indicate bad checksum for L4 Rx csum
net/ena: fix checksum flag for L4
Some HW may invalidly set checksum error bit for the valid L4 checksum. To avoid drop of the packets in that situation, do not indicate bad checksum for L4 Rx csum offloads. Instead, set it as unknown, so the application will re-verify this value.
The statistics counters will still work as previously.
Fixes: 05817057faba ("net/ena: fix indication of bad L4 Rx checksums") Cc: [email protected]
Signed-off-by: Michal Krawczyk <[email protected]>
show more ...
|
| #
9ae7a13f |
| 23-Feb-2022 |
Dawid Gorecki <[email protected]> |
net/ena: check memory BAR before initializing LLQ
The ena_com_config_dev_mode() performs many calculations related to LLQ and then performs an admin queue call to configure LLQ in the device.
All o
net/ena: check memory BAR before initializing LLQ
The ena_com_config_dev_mode() performs many calculations related to LLQ and then performs an admin queue call to configure LLQ in the device.
All of the operations performed by ena_com_config_dev_mode() are unnecessary if membar hasn't been found. Move the dev_mem_base check before ena_com_config_dev_mode() call. This prevents the unnecessary operations from being performed.
Fixes: 2fca2a98c0d1 ("net/ena: support LLQv2") Cc: [email protected]
Signed-off-by: Dawid Gorecki <[email protected]> Reviewed-by: Michal Krawczyk <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
77e764c7 |
| 23-Feb-2022 |
Dawid Gorecki <[email protected]> |
net/ena: extend logs for invalid request ID resets
Add information about port id, queue id and req_id to error logs in validate_tx_req_id.
Signed-off-by: Dawid Gorecki <[email protected]> Reviewed-b
net/ena: extend logs for invalid request ID resets
Add information about port id, queue id and req_id to error logs in validate_tx_req_id.
Signed-off-by: Dawid Gorecki <[email protected]> Reviewed-by: Michal Krawczyk <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
022fb61b |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: fix meta descriptor DF flag setup
Whenever Tx checksum offload is being used, the meta descriptor content is taken into consideration. Setting DF field properly in the meta descriptor may h
net/ena: fix meta descriptor DF flag setup
Whenever Tx checksum offload is being used, the meta descriptor content is taken into consideration. Setting DF field properly in the meta descriptor may have huge impact on the performance both for the IPv4 and IPv6 packets.
The requirements for the df field are as below: * No offload used - value doesn't matter * IPv4 - 0 or 1, depending on the DF flag in the IPv4 header * IPv6 - 1
Setting DF to 0 causes the packet to enter the slow-path in the HW and as a result can noticeable impact the performance.
Moreover, as 'true' may not always be mapped to 1 depending on it's definition for the given platform/compiler, for safety DF field is being set explicitly to 1.
Fixes: 1173fca25af9 ("ena: add polling-mode driver") Cc: [email protected]
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
cc0c5d25 |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: make Tx completion timeout configurable
The default missing Tx completion timeout was set to 5 seconds. In order to provide users with the interface to control this timeout to adjust it wit
net/ena: make Tx completion timeout configurable
The default missing Tx completion timeout was set to 5 seconds. In order to provide users with the interface to control this timeout to adjust it with the application's watchdog, the device argument for controlling this value was added.
The parameter is called 'miss_txc_to' and can be modified using the devargs interface:
./app -a <bdf>,miss_txc_to=UINT_NUMBER
This parameter accepts values from 0 to 60 and indicates number of seconds after which the Tx packet will be considered as missing.
HW hints for the Tx completions timeout were removed to do not overwrite parameter from the user. Also specifying default Tx completion timeout value was moved from the configuration to init phase in order to simplify default value assignment.
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
2bae75ea |
| 23-Feb-2022 |
Dawid Gorecki <[email protected]> |
net/ena: fix reset reason being overwritten
When triggering the reset, no check was performed to see if the reset was already triggered. This could result in original reset reason being overwritten.
net/ena: fix reset reason being overwritten
When triggering the reset, no check was performed to see if the reset was already triggered. This could result in original reset reason being overwritten. Add ena_trigger_reset helper function, which checks if the reset was triggered and only sets the reset reason if the reset wasn't triggered yet. Replace all occurrences of manually setting the reset with ena_trigger_reset call.
Fixes: 2081d5e2e92d ("net/ena: add reset routine") Cc: [email protected]
Signed-off-by: Dawid Gorecki <[email protected]> Reviewed-by: Michal Krawczyk <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
3cec73fa |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: support xstat names by ID
ENA was only supporting retrieval of all the xstats name and wasn't implementing the eth_xstats_get_names_by_id API.
As this API may be more efficient than retrie
net/ena: support xstat names by ID
ENA was only supporting retrieval of all the xstats name and wasn't implementing the eth_xstats_get_names_by_id API.
As this API may be more efficient than retrieving all the names, it tries to avoid excessive string copying.
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
a52b317e |
| 23-Feb-2022 |
Dawid Gorecki <[email protected]> |
net/ena: support Tx mbuf free on demand
ENA driver did not allow applications to call tx_cleanup. Freeing Tx mbufs was always done by the driver and it was not possible to manually request the drive
net/ena: support Tx mbuf free on demand
ENA driver did not allow applications to call tx_cleanup. Freeing Tx mbufs was always done by the driver and it was not possible to manually request the driver to free mbufs.
Modify ena_tx_cleanup function to accept maximum number of packets to free and return number of packets that was freed.
Signed-off-by: Dawid Gorecki <[email protected]> Reviewed-by: Michal Krawczyk <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
850e1bb1 |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena/base: make IO memzone unique per port
Originally, the ena_com memzone counter was shared by ports, which caused the memzones to be harder to identify and could potentially lead to race and b
net/ena/base: make IO memzone unique per port
Originally, the ena_com memzone counter was shared by ports, which caused the memzones to be harder to identify and could potentially lead to race and because of that the counter had to be atomic.
This atomic counter was global variable and it couldn't work in the multiprocess implementation.
The memzone is now being identified by the local to port memzone counter and the port ID - both of those information can be found in the shared data, so it can be probed easily.
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
3aa3fa85 |
| 23-Feb-2022 |
Stanislaw Kardach <[email protected]> |
net/ena: enable stats for multi-process mode
Since statistic gathering is now proxied safely to primary process, it can be enabled in secondary processes.
Signed-off-by: Stanislaw Kardach <kda@semi
net/ena: enable stats for multi-process mode
Since statistic gathering is now proxied safely to primary process, it can be enabled in secondary processes.
Signed-off-by: Stanislaw Kardach <[email protected]> Reviewed-by: Michal Krawczyk <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
e3595539 |
| 23-Feb-2022 |
Stanislaw Kardach <[email protected]> |
net/ena: proxy AQ calls to primary process
Due to how the ena_com compatibility layer is written, all AQ commands triggering functions use stack to save results of AQ and then copy them to user give
net/ena: proxy AQ calls to primary process
Due to how the ena_com compatibility layer is written, all AQ commands triggering functions use stack to save results of AQ and then copy them to user given function. Therefore to keep the compatibility layer common, introduce ENA_PROXY macro. It either calls the wrapped function directly (in primary process) or proxies it to the primary via DPDK IPC mechanism. Since all proxied calls are taken under a lock share the result data through shared memory (in struct ena_adapter) to work around 256B IPC parameter size limit.
New proxy calls can be added by 1. Adding a new message type at the end of enum ena_mp_req 2. Adding new message arguments to the struct ena_mp_body if needed 3. Defining proxy request descriptor with ENA_PROXY_DESC. Its arguments include handlers for request preparation and response processing. Any of those may be empty (aside of marking arguments as used). 4. Adding request handling logic to ena_mp_primary_handle() 5. Replacing proxied function calls with ENA_PROXY(adapter, <func>, ...)
Signed-off-by: Stanislaw Kardach <[email protected]> Reviewed-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
67216c31 |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: perform Tx cleanup before sending packets
To increase likelihood that current burst will fit in the HW rings, perform Tx cleanup before pushing packets to the HW. It may increase latency a
net/ena: perform Tx cleanup before sending packets
To increase likelihood that current burst will fit in the HW rings, perform Tx cleanup before pushing packets to the HW. It may increase latency a bit for sparse bursts, but the Tx flow now should be more smooth.
It's also common order in the Tx burst function for other PMDs.
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
e2174a54 |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: skip timer if reset is triggered
Some user applications may not support PMD reset handling. If they will support timer service it could cause a situation, when information about the reset t
net/ena: skip timer if reset is triggered
Some user applications may not support PMD reset handling. If they will support timer service it could cause a situation, when information about the reset trigger is being showed every time the timer service is being called.
Timer service is now being skipped if the reset was already triggered.
Fixes: d9b8b106bf9d ("net/ena: add watchdog and keep alive AENQ handler") Cc: [email protected]
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
b9b05d6f |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: make link status change interrupt configurable
ENA uses AENQ for notification about various events, like LSC, keep alive etc. By default it was enabling all AENQ that were supported by both
net/ena: make link status change interrupt configurable
ENA uses AENQ for notification about various events, like LSC, keep alive etc. By default it was enabling all AENQ that were supported by both the driver and the device. As a result the LSC was always processed even if the application turned it off explicitly.
As the DPDK provides application with the possibility to configure the LSC, ENA should respect that. AENQ groups are now being updated upon configure step, thus LSC can be activated or disabled between ENA PMD reconfigurations. Moreover, the LSC capability for the device is being determined dynamically.
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
84daba99 |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: add extra Rx checksum related xstats
* Split 'bad_csum' Rx statistic into 'l3_csum_bad' and 'l4_csum_bad' to be able to check which checksum was not calculated properly. * Add l4_csum_goo
net/ena: add extra Rx checksum related xstats
* Split 'bad_csum' Rx statistic into 'l3_csum_bad' and 'l4_csum_bad' to be able to check which checksum was not calculated properly. * Add l4_csum_good statistic, which shows how many times L4 Rx checksum was properly offloaded.
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
fa119804 |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: remove unused offload variables
Those variables are being set, but never read. As they seem to be leftover from the old offloads API and don't have any purpose right now, they are simply be
net/ena: remove unused offload variables
Those variables are being set, but never read. As they seem to be leftover from the old offloads API and don't have any purpose right now, they are simply being removed.
Fixes: a4996bd89c42 ("ethdev: new Rx/Tx offloads API") Cc: [email protected]
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Artur Rojek <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Igor Chauskin <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
0f135d2f |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: remove unused enumeration
The enumeration seems to be leftover from porting the Linux driver to the DPDK. It was used nowhere and refers to the ethtool which is not present in the DPDK.
Fi
net/ena: remove unused enumeration
The enumeration seems to be leftover from porting the Linux driver to the DPDK. It was used nowhere and refers to the ethtool which is not present in the DPDK.
Fixes: 372c1af5ed8f ("net/ena: add dedicated memory area for extra device info") Cc: [email protected]
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Artur Rojek <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Igor Chauskin <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
3d47e9b1 |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: assert on outstanding mbuf in Tx
To make sure there is no outstanding mbuf in the reused Tx queue (due to improper cleanup, or some invalid logic on Tx path), the assertion was added on the
net/ena: assert on outstanding mbuf in Tx
To make sure there is no outstanding mbuf in the reused Tx queue (due to improper cleanup, or some invalid logic on Tx path), the assertion was added on the Tx path.
As it's being compiled out in the release version, it won't affect the IO path performance.
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
| #
96ffa8a7 |
| 23-Feb-2022 |
Michal Krawczyk <[email protected]> |
net/ena: remove Tx mbuf linearization
The linearization of the mbuf isn't common practice for the PMD, as it can expose it's capabilities to the upper layer using rte_eth_dev_info_get().
Moreover,
net/ena: remove Tx mbuf linearization
The linearization of the mbuf isn't common practice for the PMD, as it can expose it's capabilities to the upper layer using rte_eth_dev_info_get().
Moreover, the rte_eth_tx_prepare() function should also verify if the number of segments inside the mbuf isn't too high.
Because of those 2 circumstances, it may be safer to avoid modifying mbuf on PMD's Tx side and remove linearization at all. Instead, add verification of the number of segments to the eth_ena_prep_pkts().
Signed-off-by: Michal Krawczyk <[email protected]> Reviewed-by: Artur Rojek <[email protected]> Reviewed-by: Dawid Gorecki <[email protected]> Reviewed-by: Igor Chauskin <[email protected]> Reviewed-by: Shai Brandes <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc1 |
|
| #
06c047b6 |
| 09-Feb-2022 |
Stephen Hemminger <[email protected]> |
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free functions found by nullfree.cocci
Signed-off-by: Stephen Hemminger <[email protected]>
show more ...
|
| #
7be78d02 |
| 29-Nov-2021 |
Josh Soref <[email protected]> |
fix spelling in comments and strings
The tool comes from https://github.com/jsoref
Signed-off-by: Josh Soref <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]>
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1 |
|
| #
d61138d4 |
| 22-Oct-2021 |
Harman Kalra <[email protected]> |
drivers: remove direct access to interrupt handle
Removing direct access to interrupt handle structure fields, rather use respective get set APIs for the same. Making changes to all the drivers acce
drivers: remove direct access to interrupt handle
Removing direct access to interrupt handle structure fields, rather use respective get set APIs for the same. Making changes to all the drivers access the interrupt handle fields.
Signed-off-by: Harman Kalra <[email protected]> Acked-by: Hyong Youb Kim <[email protected]> Signed-off-by: David Marchand <[email protected]> Tested-by: Raslan Darawsheh <[email protected]>
show more ...
|
| #
daa02b5c |
| 15-Oct-2021 |
Olivier Matz <[email protected]> |
mbuf: add namespace to offload flags
Fix the mbuf offload flags namespace by adding an RTE_ prefix to the name. The old flags remain usable, but a deprecation warning is issued at compilation.
Sign
mbuf: add namespace to offload flags
Fix the mbuf offload flags namespace by adding an RTE_ prefix to the name. The old flags remain usable, but a deprecation warning is issued at compilation.
Signed-off-by: Olivier Matz <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|
| #
295968d1 |
| 22-Oct-2021 |
Ferruh Yigit <[email protected]> |
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 <[email protected]> Acked-by: Tyler Retzlaff <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Jerin Jacob <[email protected]> Acked-by: Wisam Jaddo <[email protected]> Acked-by: Rosen Xu <[email protected]> Acked-by: Chenbo Xia <[email protected]> Acked-by: Hemant Agrawal <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|