[f/j/m/n:linux-aws][PATCH 1/1] net: ena: Enable DIM by default

Philip Cox philip.cox at canonical.com
Thu Mar 7 18:32:13 UTC 2024


From: David Arinzon <darinzon at amazon.com>

BugLink: https://bugs.launchpad.net/bugs/2056475

Dynamic Interrupt Moderation (DIM) is a technique
designed to balance the need for timely data processing
with the desire to minimize CPU overhead.
Instead of generating an interrupt for every received
packet, the system can dynamically adjust the rate at
which interrupts are generated based on the incoming
traffic patterns.

Enabling DIM by default to improve the user experience.

DIM can be turned on/off through ethtool:
`ethtool -C <interface> adaptive-rx <on/off>`

Signed-off-by: Arthur Kiyanovski <akiyano at amazon.com>
Signed-off-by: Osama Abboud <osamaabb at amazon.com>
Signed-off-by: David Arinzon <darinzon at amazon.com>
Signed-off-by: Paolo Abeni <pabeni at redhat.com>
(cherry picked from net-next commit 50d7a2660579889fba28b7e4543d4ce85aa2311b)
Signed-off-by: Philip Cox <philip.cox at canonical.com>
---
 drivers/net/ethernet/amazon/ena/ena_netdev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
index 1c0a7828d397..adca474828e8 100644
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
@@ -2134,6 +2134,12 @@ int ena_up(struct ena_adapter *adapter)
 	 */
 	ena_init_napi_in_range(adapter, 0, io_queue_count);
 
+	/* Enabling DIM needs to happen before enabling IRQs since DIM
+	 * is run from napi routine
+	 */
+	if (ena_com_interrupt_moderation_supported(adapter->ena_dev))
+		ena_com_enable_adaptive_moderation(adapter->ena_dev);
+
 	rc = ena_request_io_irq(adapter);
 	if (rc)
 		goto err_req_irq;
-- 
2.34.1




More information about the kernel-team mailing list