Thread (4 messages) 4 messages, 3 authors, 2026-01-05

RE: [EXTERNAL] Re: [PATCH RFC 1/2] net: mana: Add support for coalesced RX packets on CQE

From: Haiyang Zhang <haiyangz@microsoft.com>
Date: 2026-01-05 17:02:46
Also in: linux-hyperv, linux-rdma, lkml

-----Original Message-----
From: Simon Horman <horms@kernel.org>
Sent: Monday, January 5, 2026 6:49 AM
To: Haiyang Zhang <redacted>
Cc: linux-hyperv@vger.kernel.org; netdev@vger.kernel.org; KY Srinivasan
[off-list ref]; Haiyang Zhang [off-list ref]; Wei Liu
[off-list ref]; Dexuan Cui [off-list ref]; Andrew Lunn
[off-list ref]; David S. Miller [off-list ref]; Eric
Dumazet [off-list ref]; Jakub Kicinski [off-list ref]; Paolo
Abeni [off-list ref]; Long Li [off-list ref]; Konstantin
Taranov [off-list ref]; Erni Sri Satya Vennela
[off-list ref]; Shradha Gupta
[off-list ref]; Saurabh Sengar
[off-list ref]; Aditya Garg
[off-list ref]; Dipayaan Roy
[off-list ref]; Shiraz Saleem
[off-list ref]; linux-kernel@vger.kernel.org; linux-
rdma@vger.kernel.org; Paul Rosswurm [off-list ref]
Subject: [EXTERNAL] Re: [PATCH RFC 1/2] net: mana: Add support for
coalesced RX packets on CQE

On Tue, Dec 16, 2025 at 07:57:54AM -0800, Haiyang Zhang wrote:
quoted
From: Haiyang Zhang <haiyangz@microsoft.com>

Our NIC can have up to 4 RX packets on 1 CQE. To support this feature,
check and process the type CQE_RX_COALESCED_4. The default setting is
disabled, to avoid possible regression on latency.

And add ethtool handler to switch this feature. To turn it on, run:
  ethtool -C <nic> rx-frames 4
To turn it off:
  ethtool -C <nic> rx-frames 1

Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
...
quoted
diff --git a/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
b/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
quoted
index 0e2f4343ac67..1b9ed5c9bbff 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_ethtool.c
@@ -397,6 +397,58 @@ static void mana_get_channels(struct net_device
*ndev,
quoted
 	channel->combined_count = apc->num_queues;
 }

+static int mana_get_coalesce(struct net_device *ndev,
+			     struct ethtool_coalesce *ec,
+			     struct kernel_ethtool_coalesce *kernel_coal,
+			     struct netlink_ext_ack *extack)
...
quoted
+	if (err) {
+		netdev_err(ndev, "Set rx-frames to %u failed:%d\n",
+			   ec->rx_max_coalesced_frames, err);
+		NL_SET_ERR_MSG_FMT(extack, "Set rx-frames to %u failed:%d\n",
+				   ec->rx_max_coalesced_frames, err);
nit: I don't think the trailing '\n' is necessary here.
Will update it.

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