summaryrefslogtreecommitdiffstats
path: root/drivers/hv
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2016-04-03 02:59:51 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-04-30 23:00:19 +0200
commitab028db41ca9174caab7f9e3fc0a2e7f4a418410 (patch)
treeaade0922354180b470a56283451e52074c03faab /drivers/hv
parentDrivers: hv: vmbus: Move some ring buffer functions to hyperv.h (diff)
downloadlinux-ab028db41ca9174caab7f9e3fc0a2e7f4a418410.tar.xz
linux-ab028db41ca9174caab7f9e3fc0a2e7f4a418410.zip
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>
Diffstat (limited to 'drivers/hv')
-rw-r--r--drivers/hv/ring_buffer.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c
index dd255c9b9420..fe586bf74e17 100644
--- a/drivers/hv/ring_buffer.c
+++ b/drivers/hv/ring_buffer.c
@@ -132,6 +132,7 @@ hv_set_next_read_location(struct hv_ring_buffer_info *ring_info,
u32 next_read_location)
{
ring_info->ring_buffer->read_index = next_read_location;
+ ring_info->priv_read_index = next_read_location;
}
/* Get the size of the ring buffer. */