All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC V3 PATCH 0/8] Packed ring for vhost
@ 2018-04-23  5:34 Jason Wang
  2018-04-23  5:34 ` [RFC V3 PATCH 1/8] vhost: move get_rx_bufs to vhost.c Jason Wang
                   ` (13 more replies)
  0 siblings, 14 replies; 29+ messages in thread
From: Jason Wang @ 2018-04-23  5:34 UTC (permalink / raw)
  To: mst, jasowang
  Cc: kvm, virtualization, netdev, linux-kernel, tiwei.bie, jfreimann, wexu

Hi all:

This RFC implement packed ring layout. The code were tested with
Tiwei's RFC V2 a thttps://lkml.org/lkml/2018/4/1/48. Some fixups and
tweaks were needed on top of Tiwei's code to make it run. TCP stream
and pktgen does not show obvious difference compared with split ring.

Changes from V2:
- do not use & in checking desc_event_flags
- off should be most significant bit
- remove the workaround of mergeable buffer for dpdk prototype
- id should be in the last descriptor in the chain
- keep _F_WRITE for write descriptor when adding used
- device flags updating should use ADDR_USED type
- return error on unexpected unavail descriptor in a chain
- return false in vhost_ve_avail_empty is descriptor is available
- track last seen avail_wrap_counter
- correctly examine available descriptor in get_indirect_packed()
- vhost_idx_diff should return u16 instead of bool

Changes from V1:

- Refactor vhost used elem code to avoid open coding on used elem
- Event suppression support (compile test only).
- Indirect descriptor support (compile test only).
- Zerocopy support.
- vIOMMU support.
- SCSI/VSOCK support (compile test only).
- Fix several bugs

For simplicity, I don't implement batching or other optimizations.

Please review.

Jason Wang (8):
  vhost: move get_rx_bufs to vhost.c
  vhost: hide used ring layout from device
  vhost: do not use vring_used_elem
  vhost_net: do not explicitly manipulate vhost_used_elem
  vhost: vhost_put_user() can accept metadata type
  virtio: introduce packed ring defines
  vhost: packed ring support
  vhost: event suppression for packed ring

 drivers/vhost/net.c                | 136 ++----
 drivers/vhost/scsi.c               |  62 +--
 drivers/vhost/vhost.c              | 824 ++++++++++++++++++++++++++++++++++---
 drivers/vhost/vhost.h              |  47 ++-
 drivers/vhost/vsock.c              |  42 +-
 include/uapi/linux/virtio_config.h |   9 +
 include/uapi/linux/virtio_ring.h   |  32 ++
 7 files changed, 926 insertions(+), 226 deletions(-)

-- 
2.7.4

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

end of thread, other threads:[~2018-05-03  7:19 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-23  5:34 [RFC V3 PATCH 0/8] Packed ring for vhost Jason Wang
2018-04-23  5:34 ` [RFC V3 PATCH 1/8] vhost: move get_rx_bufs to vhost.c Jason Wang
2018-05-02  8:05   ` Tiwei Bie
2018-05-02  8:05   ` Tiwei Bie
2018-05-03  7:19     ` Jason Wang
2018-05-03  7:19     ` Jason Wang
2018-04-23  5:34 ` Jason Wang
2018-04-23  5:34 ` [RFC V3 PATCH 2/8] vhost: hide used ring layout from device Jason Wang
2018-04-23  5:34   ` Jason Wang
2018-04-23  5:34 ` [RFC V3 PATCH 3/8] vhost: do not use vring_used_elem Jason Wang
2018-04-23  5:34 ` Jason Wang
2018-04-23  5:34 ` [RFC V3 PATCH 4/8] vhost_net: do not explicitly manipulate vhost_used_elem Jason Wang
2018-04-23  5:34   ` Jason Wang
2018-04-23  5:34 ` [RFC V3 PATCH 5/8] vhost: vhost_put_user() can accept metadata type Jason Wang
2018-04-23  5:34   ` Jason Wang
2018-04-23  5:34 ` [RFC V3 PATCH 6/8] virtio: introduce packed ring defines Jason Wang
2018-04-23  5:34 ` Jason Wang
2018-04-23  5:34 ` [RFC V3 PATCH 7/8] vhost: packed ring support Jason Wang
2018-04-23  5:34 ` Jason Wang
2018-04-23  5:35 ` [RFC V3 PATCH 8/8] vhost: event suppression for packed ring Jason Wang
2018-04-23  5:35 ` Jason Wang
2018-04-23 19:31 ` [RFC V3 PATCH 0/8] Packed ring for vhost Konrad Rzeszutek Wilk
2018-04-23 19:31   ` Konrad Rzeszutek Wilk
2018-04-23 19:59   ` Michael S. Tsirkin
2018-04-23 19:59   ` Michael S. Tsirkin
2018-04-23 20:11     ` Konrad Rzeszutek Wilk
2018-04-23 20:11       ` Konrad Rzeszutek Wilk
2018-04-24  1:04       ` Jason Wang
2018-04-24  1:04         ` Jason Wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.