[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