All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 0/2] vhost: support async dequeue data path
@ 2022-01-01  0:12 xuan.ding
  2022-01-01  0:12 ` [RFC 1/2] vhost: support async dequeue for split ring xuan.ding
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: xuan.ding @ 2022-01-01  0:12 UTC (permalink / raw)
  To: maxime.coquelin, chenbo.xia
  Cc: dev, jiayu.hu, sunil.pai.g, liangma, yuanx.wang, cheng1.jiang,
	wenwux.ma, Xuan Ding

From: Xuan Ding <xuan.ding@intel.com>

Hi everyone,

The presence of an asynchronous path allows applications to offload memory
copies to DMA engine, so as to save CPU cycles and improve the copy
performance. This patch set is a draft implementation for split
ring in vhost async dequeue data path. The code is based on latest
enqueue changes [1].

This patch set is a new design and implementation of [2]. Since dmadev
is introduced in 21.11, to simplify application logics, this patch
integrates dmadev in vhost. With dmadev integrated, vhost supports M:N
mapping between vrings and DMA virtual channels. Specifically, one vring
can use multiple different DMA channels and one DMA channel can be
shared by multiple vrings at the same time.

A new asynchronous dequeue function is introduced:
	1) rte_vhost_async_try_dequeue_burst(int vid, uint16_t queue_id,
       		struct rte_mempool *mbuf_pool, struct rte_mbuf **pkts,
		uint16_t count, int *nr_inflight,
		uint16_t dma_id, uint16_t dma_vchan)

	Receive packets from the guest and offloads copies to DMA
virtual channel.

[1] https://mails.dpdk.org/archives/dev/2021-December/231889.html.
[2] https://mails.dpdk.org/archives/dev/2021-September/218591.html.

Your comments are welcomed and appreciated!

Thanks!
Xuan

Xuan Ding (2):
  vhost: support async dequeue for split ring
  examples/vhost: support async dequeue data path

 doc/guides/sample_app_ug/vhost.rst |   9 +-
 examples/vhost/main.c              | 305 ++++++++++++------
 examples/vhost/main.h              |  35 +-
 examples/vhost/virtio_net.c        |  16 +-
 lib/vhost/rte_vhost_async.h        |  29 ++
 lib/vhost/version.map              |   1 +
 lib/vhost/vhost.h                  |   1 +
 lib/vhost/virtio_net.c             | 493 +++++++++++++++++++++++++++++
 8 files changed, 783 insertions(+), 106 deletions(-)

-- 
2.17.1


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

end of thread, other threads:[~2022-03-31 11:20 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-01  0:12 [RFC 0/2] vhost: support async dequeue data path xuan.ding
2022-01-01  0:12 ` [RFC 1/2] vhost: support async dequeue for split ring xuan.ding
2022-01-01  0:12 ` [RFC 2/2] examples/vhost: support async dequeue data path xuan.ding
2022-02-24 11:03 ` [RFC,v2 0/2] vhost: " xuan.ding
2022-02-24 11:03   ` [RFC,v2 1/2] vhost: support async dequeue for split ring xuan.ding
2022-02-24 11:04   ` [RFC,v2 2/2] examples/vhost: support async dequeue data path xuan.ding
2022-03-10  6:54 ` [RFC,v3 0/2] vhost: " xuan.ding
2022-03-10  6:54   ` [RFC,v3 1/2] vhost: support async dequeue for split ring xuan.ding
2022-03-31  9:15     ` Maxime Coquelin
2022-03-31 11:20       ` Ding, Xuan
2022-03-10  6:54   ` [RFC,v3 2/2] examples/vhost: support async dequeue data path xuan.ding

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.