linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] Drivers: hv: ring_buffer: make in-place consumption always possible
@ 2016-06-10  9:47 Vitaly Kuznetsov
  2016-06-10  9:47 ` [PATCH 1/4] Drivers: hv: cleanup vmbus_open() for wrap around mappings Vitaly Kuznetsov
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Vitaly Kuznetsov @ 2016-06-10  9:47 UTC (permalink / raw)
  To: devel; +Cc: linux-kernel, K. Y. Srinivasan, Haiyang Zhang

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.

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

^ permalink raw reply	[flat|nested] 7+ messages in thread
* [PATCH 0/4] Drivers: hv: vmbus: Make in-place consumption always possible
@ 2016-07-07  0:24 kys
  2016-07-07  0:25 ` [PATCH 1/4] Drivers: hv: cleanup vmbus_open() for wrap around mappings kys
  0 siblings, 1 reply; 7+ messages in thread
From: kys @ 2016-07-07  0:24 UTC (permalink / raw)
  To: gregkh, linux-kernel, devel, olaf, apw, vkuznets, jasowang,
	leann.ogasawara
  Cc: K. Y. Srinivasan

From: K. Y. Srinivasan <kys@microsoft.com>

Make 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().

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(-)

-- 
1.7.4.1

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-07-06 22:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-10  9:47 [PATCH 0/4] Drivers: hv: ring_buffer: make in-place consumption always possible Vitaly Kuznetsov
2016-06-10  9:47 ` [PATCH 1/4] Drivers: hv: cleanup vmbus_open() for wrap around mappings Vitaly Kuznetsov
2016-06-10  9:47 ` [PATCH 2/4] Drivers: hv: ring_buffer: wrap around mappings for ring buffers Vitaly Kuznetsov
2016-06-10  9:47 ` [PATCH 3/4] Drivers: hv: ring_buffer: use wrap around mappings in hv_copy{from,to}_ringbuffer() Vitaly Kuznetsov
2016-06-10  9:47 ` [PATCH 4/4] Drivers: hv: ring_buffer: count on wrap around mappings in get_next_pkt_raw() Vitaly Kuznetsov
2016-06-10 13:30 ` [PATCH 0/4] Drivers: hv: ring_buffer: make in-place consumption always possible KY Srinivasan
2016-07-07  0:24 [PATCH 0/4] Drivers: hv: vmbus: Make " kys
2016-07-07  0:25 ` [PATCH 1/4] Drivers: hv: cleanup vmbus_open() for wrap around mappings kys
2016-07-07  0:25   ` [PATCH 3/4] Drivers: hv: ring_buffer: use wrap around mappings in hv_copy{from,to}_ringbuffer() kys

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).