summaryrefslogtreecommitdiffstats
path: root/sys/dev/hyperv/include
diff options
context:
space:
mode:
authorsephe <sephe@FreeBSD.org>2016-03-04 06:52:11 +0000
committersephe <sephe@FreeBSD.org>2016-03-04 06:52:11 +0000
commitd9fcd284eb0719f7e67e79fd5bc76e1f00454972 (patch)
tree4ace0c11f316eea9d382fcd0cb67a3bd67d5f233 /sys/dev/hyperv/include
parent51bebbd2591e217e5ec697ea2202e2c203705d98 (diff)
downloadFreeBSD-src-d9fcd284eb0719f7e67e79fd5bc76e1f00454972.zip
FreeBSD-src-d9fcd284eb0719f7e67e79fd5bc76e1f00454972.tar.gz
hyperv/hn: Add multiple channel support, a.k.a. vRSS
Each channel contains one RX ring and one TX ring. And we try to distribute the channels to different evenly. Note: Currently we don't have enough information to extract the RSS type and RSS hash value from the received packets. This greatly improves the TX/RX performance for 8 virtual CPU Hyper-V over 10Ge: it can max out 10Ge for TCP when multiple RX/TX rings are enabled. This almost doubles the TX/RX performance for locally connected Hyper-Vs: was 6Gbps w/ 128 TCP streams, now 11Gbps w/ multiple RX/TX rings enabled. It is not enabled by default; it will be switched on after more tests. Collaborated with: Hongjiang Zhang <honzhan microsoft com> MFC after: 2 week Sponsored by: Microsoft OSTC
Diffstat (limited to 'sys/dev/hyperv/include')
-rw-r--r--sys/dev/hyperv/include/hyperv.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/dev/hyperv/include/hyperv.h b/sys/dev/hyperv/include/hyperv.h
index 3b968f7..0a057c8 100644
--- a/sys/dev/hyperv/include/hyperv.h
+++ b/sys/dev/hyperv/include/hyperv.h
@@ -911,6 +911,8 @@ int hv_vmbus_channel_teardown_gpdal(
struct hv_vmbus_channel* vmbus_select_outgoing_channel(struct hv_vmbus_channel *promary);
+void vmbus_channel_cpu_set(struct hv_vmbus_channel *chan, int cpu);
+
/**
* @brief Get physical address from virtual
*/
OpenPOWER on IntegriCloud