[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <DM2PR0301MB0783761E612B9581A814528CA0500@DM2PR0301MB0783.namprd03.prod.outlook.com>
Date: Fri, 10 Jun 2016 13:30:17 +0000
From: KY Srinivasan <kys@...rosoft.com>
To: Vitaly Kuznetsov <vkuznets@...hat.com>,
"devel@...uxdriverproject.org" <devel@...uxdriverproject.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Haiyang Zhang" <haiyangz@...rosoft.com>
Subject: RE: [PATCH 0/4] Drivers: hv: ring_buffer: make in-place consumption
always possible
> -----Original Message-----
> From: Vitaly Kuznetsov [mailto:vkuznets@...hat.com]
> Sent: Friday, June 10, 2016 2:47 AM
> To: devel@...uxdriverproject.org
> Cc: linux-kernel@...r.kernel.org; KY Srinivasan <kys@...rosoft.com>; Haiyang
> Zhang <haiyangz@...rosoft.com>
> Subject: [PATCH 0/4] Drivers: hv: ring_buffer: make in-place consumption
> always possible
>
> K. Y.,
>
> I'd like to accompany your netvsc performance improvement work by making
> in-place consumption of VMBus packets always possible. Currently we forbid
> it when a packet 'wraps around' the ring so we can't provide a single
> pointer to it.
>
> The idea if this series is dead simple: let's make a single virtual mapping
> for two copies (actually, two sets of pages which consist the ring buffer)
> of the ring buffer. With such a mapping we can always provide a pointers
> for in-place consumption to drivers. Copy path can also benefit from such
> mappings as we eliminate the need for conditional checking in copy_to/
> copy_from functions and use a single memcpy().
>
> Lightly tested with 'netvsc: Use the new in-place consumption APIs in the
> rx path' patch and with storvsc driver.
Thank you Vitaly. We will further test it.
K. Y
>
> Vitaly Kuznetsov (4):
> Drivers: hv: cleanup vmbus_open() for wrap around mappings
> Drivers: hv: ring_buffer: wrap around mappings for ring buffers
> Drivers: hv: ring_buffer: use wrap around mappings in
> hv_copy{from,to}_ringbuffer()
> Drivers: hv: ring_buffer: count on wrap around mappings in
> get_next_pkt_raw()
>
> drivers/hv/channel.c | 68 ++++++++++++++++++++++++-----------------------
> drivers/hv/hyperv_vmbus.h | 4 +--
> drivers/hv/ring_buffer.c | 61 ++++++++++++++++++++++++------------------
> include/linux/hyperv.h | 32 ++++++++--------------
> 4 files changed, 83 insertions(+), 82 deletions(-)
>
> --
> 2.5.5
Powered by blists - more mailing lists