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.cb/drivers/net/ethernet/microsoft/mana/mana_ethtool.cquoted
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