]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC [Hyper-V]: r294553, r294700
authorsephe <sephe@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 24 Feb 2016 01:30:50 +0000 (01:30 +0000)
committersephe <sephe@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 24 Feb 2016 01:30:50 +0000 (01:30 +0000)
commit6495d9ad02459d5b5ce192ac74f5d51af9465357
treedb6c17ce357be96a5512942c378ee8d278bc7990
parentb846a4fc9a123c8bd6630d821a0930e28377724e
MFC [Hyper-V]: r294553, r294700

r294553

hyperv/vmbus: Lookup channel through id table

Vmbus event handler will need to find the channel by its relative
id, when software interrupt for event happens.  The original lookup
searches the channel list, which is not very efficient.  We now
create a table indexed by the channel relative id to speed up
the channel lookup.

Submitted by:           Hongjiang Zhang <honzhan microsoft com>
Reviewed by:            delphij, adrain, sephe, Dexuan Cui <decui microsoft com>
Approved by:            adrian (mentor)
Sponsored by:           Microsoft OSTC
Differential Revision:  https://reviews.freebsd.org/D4802

-------------

r294700

hyperv/hn: Partly rework transmission path

- Avoid unnecessary malloc/free on transmission path.
- busdma(9)-fy transmission path.
- Properly handle IFF_DRV_OACTIVE.  This should fix the network
  stalls reported by many.
- Properly setup TSO parameters.
- Properly handle bpf(4) tapping.  This 5 times the performance
  during TCP sending test, when there is one bpf(4) attached.
- Allow size of chimney sending be tuned on a running system.
  Default value still needs more test to determine.

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

Approved by: re (marius)
Sponsored by: Microsoft OSTC

git-svn-id: svn://svn.freebsd.org/base/stable/10@295948 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
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
sys/dev/hyperv/vmbus/hv_connection.c
sys/dev/hyperv/vmbus/hv_vmbus_priv.h