]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC 294701,294702,294703,294705,294788
authorsephe <sephe@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 13 Jun 2016 03:28:37 +0000 (03:28 +0000)
committersephe <sephe@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 13 Jun 2016 03:28:37 +0000 (03:28 +0000)
commit00717c0a696398d270b3459826facfea38f10aa4
tree79cedeb184ed14504fda2b3c97d9f4ecce524dfe
parentf94f0c97469efb96f421928e214143e474a5820c
MFC 294701,294702,294703,294705,294788

294701
    hyperv/hn: Use m_copydata for chimney sending.

    While I'm here, move stack variables near their usage.

    Reviewed by:                adrian, delphij, Jun Su <junsu microsoft com>
    Approved by:                adrian (mentor)
    Sponsored by:               Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D4977

294702
    hyperv/hn: Remove unnecessary zeroing out the netvsc_packet

    All used fields are setup one by one, so there is no need to zero
    out this large struct.

    While I'm here, move the stack variable near its usage.

    Reviewed by:                adrian, delphij, Jun Su <junsu microsoft com>
    Approved by:                adrian (mentor)
    Sponsored by:               Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D4978

294703
    hyperv/hn: Trust host TCP segment checksum verification by default.

    According to all available information, VMSWITCH always does the
    TCP segment checksum verification before sending the segment to
    guest.

    Reviewed by:                adrian, delphij, Hongjiang Zhang <honzhan microsoft com>
    Approved by:                adrian (mentor)
    Sponsored by:               Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D4991

294705
    hyperv/vmbus: Avoid extra copy of page information.

    The page information array could contain up to 32 elements (i.e. 512B).
    And on network side w/ TSO, 11+ (176B+) elements, i.e. ~44K TSO packet,
    in the page information array is quite common.

    This saves us some cpu cycles.

    Reviewed by:                adrian, delphij
    Approved by:                adrian (mentor)
    Sponsored by:               Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D4992

294788
    hyperv/hn: Improve sending performance

    - Avoid main lock contention by trylock for if_start, if that fails,
      schedule TX taskqueue for if_start
    - Don't do direct sending if the packet to be sent is large, e.g.
      TSO packet.

    This change gives me stable 9.1Gbps TCP sending performance w/ TSO
    over a 10Gbe directly connected network (the performance fluctuated
    between 4Gbps and 9Gbps before this commit). It also improves non-
    TSO TCP sending performance a lot.

    Reviewed by:                adrian, royger
    Approved by:                adrian (mentor)
    Sponsored by:               Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D5074

git-svn-id: svn://svn.freebsd.org/base/stable/10@301850 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/hyperv/netvsc/hv_net_vsc.h
sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
sys/dev/hyperv/vmbus/hv_channel.c