[Differential] [Request, 276 lines] D4824: hyperv/hn: Implement LRO
sepherosa_gmail.com (Sepherosa Ziehau)
phabric-noreply at FreeBSD.org
Fri Jan 8 02:12:18 UTC 2016
sepherosa_gmail.com created this revision.
sepherosa_gmail.com added reviewers: adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com, kmacy.
sepherosa_gmail.com added a subscriber: freebsd-net-list.
REVISION SUMMARY
- Implement the LRO using tcp_lro APIs, and LRO is enabled by default
- Add several stats sysctl nodes
- Check IP/TCP length before sending the packet to tcp_lro_rx(), if host does not provide RX csum information (*); and add an option through sysctl to always trust host TCP segment csum checks (default is off).
- Add sysctl to control the LRO entry depth. This depends on later tcp_lro patch, thus it is disabled by default. It is used to avoid holding too much TCP segments in driver. Limiting the LRO entry depth helps a lot in a one/two streams RX test.
This one 3x the RX performance on my local test (3Gbps -> 10Gbps), and ~2x the RX performance over a directly connected 40Ge network (5Gbps -> 9Gbps).
Reviewed by: Hongjiang Zhang <honzhan microsoft com>, Dexuan Cui <decui microsoft com>, Jun Su <junsu microsoft com>
Tested by: me (local), Hongjiang Zhang <honzhan microsoft com> (directly connected 40Ge)
Sponsored by: Microsoft OSTC
REVISION DETAIL
https://reviews.freebsd.org/D4824
AFFECTED FILES
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
EMAIL PREFERENCES
https://reviews.freebsd.org/settings/panel/emailpreferences/
To: sepherosa_gmail.com, adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com, kmacy
Cc: freebsd-net-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4824.12025.patch
Type: text/x-patch
Size: 12738 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20160108/dbaf95f5/attachment-0001.bin>
More information about the freebsd-net
mailing list