From 0312753ef2f37a9fbe62b941f74cad2b20d776d9 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 9 Aug 2018 10:50:07 -0700 Subject: [PATCH] net/netvsc: set lower host latency 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 --- drivers/net/netvsc/hn_ethdev.c | 6 ++++++ drivers/net/netvsc/hn_var.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index 78b842ba2d..148e6a33d6 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -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); diff --git a/drivers/net/netvsc/hn_var.h b/drivers/net/netvsc/hn_var.h index f7ff8585bc..b3e0a93d45 100644 --- a/drivers/net/netvsc/hn_var.h +++ b/drivers/net/netvsc/hn_var.h @@ -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 -- 2.20.1