[3/4] netvsc: set lower host latency
Checks
Commit Message
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 | 6 ++++++
drivers/net/netvsc/hn_var.h | 3 +++
2 files changed, 9 insertions(+)
@@ -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);
@@ -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