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 ...