Skip to contentSkip to conversation

net/ena: restructure the llq policy user setting

PATCH Applied [email protected] 2 participants 2 messages Oct 6, 2024 – Oct 7, 2024 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 net/ena: restructure the llq policy user setting

From: Shai Brandes <[email protected]>

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.

---
 doc/guides/nics/ena.rst                |  20 ++---
 doc/guides/rel_notes/release_24_11.rst |   8 ++
 drivers/net/ena/ena_ethdev.c           | 103 ++++++++-----------------
 drivers/net/ena/ena_ethdev.h           |   3 -
 4 files changed, 48 insertions(+), 86 deletions(-)
doc/guides/nics/ena.rst +7 -13
index 2b105834a0..1467c0c190 100644
@@ -107,11 +107,14 @@ Configuration
 Runtime Configuration
 ^^^^^^^^^^^^^^^^^^^^^
 
-   * **large_llq_hdr** (default 0)
+   * **llq_policy** (default 1)
 
-     Enables or disables usage of large LLQ headers. This option will have
-     effect only if the device also supports large LLQ headers. Otherwise, the
-     default value will be used.
+     Controls whether use device recommended header policy or override it.
+     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).
+     2 - Enforce normal LLQ policy.
+     3 - Enforce large LLQ policy.
 
    * **normal_llq_hdr** (default 0)
 
@@ -126,15 +129,6 @@ Runtime Configuration
      timer service. Setting this parameter to 0 disables this feature. Maximum
      allowed value is 60 seconds.
 
-   * **enable_llq** (default 1)
-
-     Determines whenever the driver should use the LLQ (if it's available) or
-     not.
-
-     **NOTE: On the 6th generation AWS instances disabling LLQ may lead to a
-     huge performance degradation. In general disabling LLQ is highly not
-     recommended!**
-
    * **control_poll_interval** (default 0)
 
      Enable polling-based functionality of the admin queues,
doc/guides/rel_notes/release_24_11.rst +8 -0
index dfa4795f85..b88e05f349 100644
@@ -75,6 +75,12 @@ New Features
   registers by module names and get the information (names, values and other
   attributes) of the filtered registers.
 
+* **Updated Amazon ENA (Elastic Network Adapter) net driver.**
+
+  * Modified the PMD API that controls the LLQ header policy.
+  * Replaced ``enable_llq``, ``normal_llq_hdr`` and ``large_llq_hdr`` devargs
+    with a new shared devarg ``llq_policy`` that keeps the same logic.
+
 * **Updated Cisco enic driver.**
 
   * Added SR-IOV VF support.
@@ -112,6 +118,8 @@ API Changes
    Also, make sure to start the actual text at the margin.
    =======================================================
 
+* drivers/net/ena: Removed ``enable_llq``, ``normal_llq_hdr`` and ``large_llq_hdr`` devargs
+  and replaced it with a new shared devarg ``llq_policy`` that keeps the same logic.
 
 ABI Changes
 -----------
drivers/net/ena/ena_ethdev.c +33 -70

181 lines not on this page · raw message

drivers/net/ena/ena_ethdev.h +0 -3
index 7d82d222ce..fe7d4a2d65 100644
@@ -337,9 +337,6 @@ struct ena_adapter {
 	uint32_t active_aenq_groups;
 
 	bool trigger_reset;
-	bool enable_llq;
-	bool use_large_llq_hdr;
-	bool use_normal_llq_hdr;
 	ena_llq_policy llq_header_policy;
 
 	uint32_t last_tx_comp_qid;
Signature · 1 line
2.17.1
Applied
#1 lore raw
Quoted 15 lines · On 10/6/2024 1:32 PM, [email protected] wrote:

From: Shai Brandes <[email protected]>

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.

Quoted 3 lines

Applied to dpdk-next-net/main, thanks.