diff options
author | sephe <sephe@FreeBSD.org> | 2016-03-04 06:52:11 +0000 |
---|---|---|
committer | sephe <sephe@FreeBSD.org> | 2016-03-04 06:52:11 +0000 |
commit | d9fcd284eb0719f7e67e79fd5bc76e1f00454972 (patch) | |
tree | 4ace0c11f316eea9d382fcd0cb67a3bd67d5f233 /sys/dev/hyperv/include | |
parent | 51bebbd2591e217e5ec697ea2202e2c203705d98 (diff) | |
download | FreeBSD-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.h | 2 |
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 */ |