net/netvsc: set lower host latency
authorStephen Hemminger <sthemmin@microsoft.com>
Thu, 9 Aug 2018 17:50:07 +0000 (10:50 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 28 Aug 2018 13:27:39 +0000 (15:27 +0200)
Tune the vmbus connection so the host scans faster. This improves
transmit performance. The host default value is 100us but setting
to 50us reduces packet loss significantly.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
drivers/net/netvsc/hn_ethdev.c
drivers/net/netvsc/hn_var.h

index 78b842b..148e6a3 100644 (file)
@@ -264,6 +264,9 @@ static int hn_subchan_configure(struct hn_data *hv,
                        return err;
                }
 
+               rte_vmbus_set_latency(hv->vmbus, new_sc,
+                                     HN_CHAN_LATENCY_NS);
+
                retry = 0;
                chn_index = rte_vmbus_sub_channel_index(new_sc);
                if (chn_index == 0 || chn_index > hv->max_queues) {
@@ -629,6 +632,9 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev)
        if (err)
                return err;
 
+       rte_vmbus_set_latency(hv->vmbus, hv->channels[0],
+                             HN_CHAN_LATENCY_NS);
+
        hv->primary = hn_rx_queue_alloc(hv, 0,
                                        eth_dev->device->numa_node);
 
index f7ff858..b3e0a93 100644 (file)
@@ -20,6 +20,9 @@
 /* Retry interval */
 #define HN_CHAN_INTERVAL_US    100
 
+/* Host monitor interval */
+#define HN_CHAN_LATENCY_NS     50000
+
 /* Buffers need to be aligned */
 #ifndef PAGE_SIZE
 #define PAGE_SIZE 4096