aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/hyperv/include
Commit message (Collapse)AuthorAgeFilesLines
...
* hyperv/hn: Add multiple channel support, a.k.a. vRSSSepherosa Ziehau2016-03-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=296379
* hyperv/hn: Make read buffer per-channelSepherosa Ziehau2016-03-021-0/+1
| | | | | | | | | | Submitted by: Hongjiang Zhang <honzhan microsoft com> Reorganized by: sephe MFC after: 1 week Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=296296
* hyperv/hn: Associate TX/RX ring with channelSepherosa Ziehau2016-02-261-2/+4
| | | | | | | | | | | This fixes the TX/RX ring selection for TX/RX done. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5454 Notes: svn path=/head/; revision=296087
* hyperv: Always set device for channelsSepherosa Ziehau2016-02-261-0/+2
| | | | | | | | | | | And unregister hv_device only for primary channels, who own the hv_device. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5451 Notes: svn path=/head/; revision=296084
* hyperv: Remove useless channel inbound_lockSepherosa Ziehau2016-02-261-2/+0
| | | | | | | | | | | | It serves no purpose. Reviewed by: Hongjiang Zhang <honzhan microsoft com> MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5450 Notes: svn path=/head/; revision=296083
* hyperv/utils: Code rearrange and cleanupSepherosa Ziehau2016-02-241-35/+0
| | | | | | | | | | | | | | Split heartbeat, shutdown and timesync out of utils code and name them properly. Submitted by: Jun Su <junsu microsoft com> Reviewed by: adrian, sephe, Hongjiang Zhang <honzhan microsoft com> MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D5216 Notes: svn path=/head/; revision=295958
* hyperv: Use standard taskqueue instead of hv_work_queueSepherosa Ziehau2016-02-051-26/+7
| | | | | | | | | | | | | | | | | HyperV code was ported from Linux. There is an implementation of work queue called hv_work_queue. In FreeBSD, taskqueue could be used for the same purpose. Convert all the consumer of hv_work_queue to use taskqueue, and remove work queue implementation. Submitted by: Jun Su <junsu microsoft com> Reviewed by: adrian, Hongjiang Zhang <honzhan microsoft com> Approved by: adrian (mentor) MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4963 Notes: svn path=/head/; revision=295307
* hyperv/vmbus: Event handling code refactor.Sepherosa Ziehau2016-01-271-0/+2
| | | | | | | | | | | | | | | | | - Use taskqueue instead of swi for event handling. - Scan the interrupt flags in filter - Disable ringbuffer interrupt mask in filter to ensure no unnecessary interrupts. Submitted by: Jun Su <junsu microsoft com> Reviewed by: adrian, sephe, Dexuan <decui microsoft com> Approved by: adrian (mentor) MFC after: 2 weeks Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D4920 Notes: svn path=/head/; revision=294886
* hyperv: remove unused vmbus definitionsSepherosa Ziehau2016-01-141-5/+0
| | | | | | | | | | | | | We don't need them at all. Submitted by: Dexuan Cui <decui microsoft com> Sponsored by: Microsoft OSTC Reviewed by: royger, adrian, delphij Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D4595 Notes: svn path=/head/; revision=293871
* hyperv: vmbus: remove the per-channel control_work_queueXin LI2015-12-291-1/+0
| | | | | | | | | | | | | | | | | | | | Now vmbus_channel_on_offer() -> vmbus_channel_process_offer() can safely run on the global hv_vmbus_g_connection.work_queue now. We remove the per-channel control_work_queue to achieve the proper serialization of the message handling. I removed the bogus TODO in vmbus_channel_on_offer(): a vmbus offer can only come from the parent partition, i.e., the host. PR: kern/205156 Submitted by: Dexuan Cui <decui microsoft com> Reviewed by: Howard Su <howard0su gmail com>, delphij MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D4597 Notes: svn path=/head/; revision=292859
* TSO and checksum offloading support for Netvsc driver on Hyper-V.Wei Hu2015-06-241-1/+1
| | | | | | | | | | | | | Submitted by: whu Reviewed by: royger Approved by: royger MFC after: 1 week Relnotes: yes Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D2517 Notes: svn path=/head/; revision=284746
* Microsoft vmbus, storage and other related driver enhancements for HyperV.Wei Hu2015-04-291-7/+160
| | | | | | | | | | | | | | | | | | | | | | | - Vmbus multi channel support. - Vector interrupt support. - Signal optimization. - Storvsc driver performance improvement. - Scatter and gather support for storvsc driver. - Minor bug fix for KVP driver. Thanks royger, jhb and delphij from FreeBSD community for the reviews and comments. Also thanks Hovy Xu from NetApp for the contributions to the storvsc driver. PR: 195238 Submitted by: whu Reviewed by: royger, jhb, delphij Approved by: royger MFC after: 2 weeks Relnotes: yes Sponsored by: Microsoft OSTC Notes: svn path=/head/; revision=282212
* Import HyperV Key-Value Pair (KVP) driver and daemon code by Microsoft,Xin LI2014-09-131-0/+29
| | | | | | | | | | | | | | | | | many thanks for their continued support of FreeBSD. While I'm there, also implement a new build knob, WITHOUT_HYPERV to disable building and installing of the HyperV utilities when necessary. The HyperV utilities are only built for i386 and amd64 targets. This is a stable/10 candidate for inclusion with 10.1-RELEASE. Submitted by: Wei Hu <weh microsoft com> MFC after: 1 week Notes: svn path=/head/; revision=271493
* Fix vmbus channel memory leak where incorrect length parameter wasPeter Grehan2013-10-111-0/+3
| | | | | | | | | | being passed to contigfree(). Submitted by: Microsoft hyperv dev team Approved by: re@ (glebius) Notes: svn path=/head/; revision=256350
* Microsoft have changed their policy on how the hyper-v code willPeter Grehan2013-07-171-0/+796
be pulled into FreeBSD. From now, FreeBSD will be considered the upstream repo. First step: move the drivers away from the contrib area and into the base system. A follow-on commit will include the drivers in the amd64 GENERIC kernel. Notes: svn path=/projects/hyperv/; revision=253411