diff mbox series

[net-stable,05/24] hv_netvsc: Set tx_table to equal weight after subchannels open

Message ID 20180514223223.25433-6-sthemmin@microsoft.com
State Not Applicable, archived
Delegated to: David Miller
Headers show
Series hv_netvsc patches for 4.14 stable | expand

Commit Message

Stephen Hemminger May 14, 2018, 10:32 p.m. UTC
From: Haiyang Zhang <haiyangz@microsoft.com>

commit a6fb6aa3cfa9047b62653dbcfc9bcde6e2272b41 upstream.

In some cases, like internal vSwitch, the host doesn't provide
send indirection table updates. This patch sets the table to be
equal weight after subchannels are all open. Otherwise, all workload
will be on one TX channel.

As tested, this patch has largely increased the throughput over
internal vSwitch.

Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
 drivers/net/hyperv/rndis_filter.c | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index addf9f69c58c..0648eebda829 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -1114,6 +1114,9 @@  void rndis_set_subchannel(struct work_struct *w)
 	netif_set_real_num_tx_queues(ndev, nvdev->num_chn);
 	netif_set_real_num_rx_queues(ndev, nvdev->num_chn);
 
+	for (i = 0; i < VRSS_SEND_TAB_SIZE; i++)
+		ndev_ctx->tx_table[i] = i % nvdev->num_chn;
+
 	rtnl_unlock();
 	return;