Drivers: hv: vmbus: Implement APIs to support "in place" consumption of vmbus packets
commitab028db41ca9174caab7f9e3fc0a2e7f4a418410
authorK. Y. Srinivasan <kys@microsoft.com>
Sun, 3 Apr 2016 00:59:51 +0000 (2 17:59 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 30 Apr 2016 21:00:19 +0000 (30 14:00 -0700)
treeaade0922354180b470a56283451e52074c03faab
parent687f32e6d9bd1d63c5e557e877809eb446f1a6e8
Drivers: hv: vmbus: Implement APIs to support "in place" consumption of vmbus packets

Implement APIs for in-place consumption of vmbus packets. Currently, each
packet is copied and processed one at a time and as part of processing
each packet we potentially may signal the host (if it is waiting for
room to produce a packet).

These APIs help batched in-place processing of vmbus packets.
We also optimize host signaling by having a separate API to signal
the end of in-place consumption. With netvsc using these APIs,
on an iperf run on average I see about 20X reduction in checks to
signal the host.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hv/ring_buffer.c
include/linux/hyperv.h