Thread (5 messages) 5 messages, 4 authors, 2025-09-09

Re: [PATCH] net: atlantic: make RX page order tunable via module param

From: Simon Horman <horms@kernel.org>
Date: 2025-09-09 09:13:17
Also in: lkml

On Sat, Sep 06, 2025 at 09:54:34PM +0800, Yangyu Chen wrote:
On systems like AMD Strix Halo with Thunderbolt, RX map/unmap operations
with IOMMU introduce significant performance overhead, making it difficult
to achieve line rate with 10G NICs even with TCP over MTU 1500. Using
higher order pages reduces this overhead, so this parameter is now
configurable.

After applying this patch and setting `rxpageorder=3`, testing with QNAP
QNA-T310G1S on 10G Ethernet (MTU 1500) using `iperf3 -R` on IPv6 achieved
9.28Gbps compared to only 2.26Gbps previously.
VerU nice.
Signed-off-by: Yangyu Chen <redacted>
---
Should we also consider make default AQ_CFG_RX_PAGEORDER to 3?
I have the same question.

...
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
index b24eaa5283fa..48f35fbf9a70 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c
@@ -40,6 +40,10 @@ static unsigned int aq_itr_rx;
 module_param_named(aq_itr_rx, aq_itr_rx, uint, 0644);
 MODULE_PARM_DESC(aq_itr_rx, "RX interrupt throttle rate");
 
+static unsigned int rxpageorder = AQ_CFG_RX_PAGEORDER;
+module_param_named(rxpageorder, rxpageorder, uint, 0644);
+MODULE_PARM_DESC(rxpageorder, "RX page order");
+
Unfortunately adding new module parameters to networking drivers
is strongly discouraged. Can we find another way to address the problem
described in your cover: e.g.

1. Changing the fixed value
2. Somehow making the value auto detected
3. Some other mechanism to allow the user to configure the value, e.g. devlink

...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help