]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
hyperv/hn: Add multiple channel support, a.k.a. vRSS
authorSepherosa Ziehau <sephe@FreeBSD.org>
Fri, 4 Mar 2016 06:52:11 +0000 (06:52 +0000)
committerSepherosa Ziehau <sephe@FreeBSD.org>
Fri, 4 Mar 2016 06:52:11 +0000 (06:52 +0000)
commit21640df213c99f8f72b63414e773df61803af3a0
tree4ace0c11f316eea9d382fcd0cb67a3bd67d5f233
parent7345458d37bf1da1b4c6a8398ec7be12ae84d39d
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
sys/dev/hyperv/include/hyperv.h
sys/dev/hyperv/netvsc/hv_net_vsc.c
sys/dev/hyperv/netvsc/hv_net_vsc.h
sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
sys/dev/hyperv/netvsc/hv_rndis.h
sys/dev/hyperv/netvsc/hv_rndis_filter.c
sys/dev/hyperv/netvsc/hv_rndis_filter.h
sys/dev/hyperv/vmbus/hv_channel_mgmt.c