All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marvin Liu <yong.liu@intel.com>
To: maxime.coquelin@redhat.com, tiwei.bie@intel.com
Cc: zhihong.wang@intel.com, dev@dpdk.org, Marvin Liu <yong.liu@intel.com>
Subject: [PATCH 1/7] vhost: announce VIRTIO_F_IN_ORDER support
Date: Fri,  8 Jun 2018 17:07:18 +0800	[thread overview]
Message-ID: <20180608090724.20855-2-yong.liu@intel.com> (raw)
In-Reply-To: <20180608090724.20855-1-yong.liu@intel.com>

If devices always use descriptors in the same order in which they have
been made available. These devices can offer the VIRTIO_F_IN_ORDER
feature. If negotiated, this knowledge allows devices to notify the use
of a batch of buffers to virtio driver by only writing used ring index.

Vhost user device has supported this feature by default. If vhost
dequeue zero is enabled, should disable VIRTIO_F_IN_ORDER as vhost can’t
assure that descriptor returned from NIC are in order.

Signed-off-by: Marvin Liu <yong.liu@intel.com>

diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
index 0399c37bc..6b4a65ac8 100644
--- a/lib/librte_vhost/socket.c
+++ b/lib/librte_vhost/socket.c
@@ -853,6 +853,10 @@ rte_vhost_driver_register(const char *path, uint64_t flags)
 	vsocket->supported_features = VIRTIO_NET_SUPPORTED_FEATURES;
 	vsocket->features           = VIRTIO_NET_SUPPORTED_FEATURES;
 
+	/* Dequeue zero copy can't assure descriptors returned in order */
+	if (vsocket->dequeue_zero_copy)
+		vsocket->features &= ~(1ULL << VIRTIO_F_IN_ORDER);
+
 	if (!(flags & RTE_VHOST_USER_IOMMU_SUPPORT)) {
 		vsocket->supported_features &= ~(1ULL << VIRTIO_F_IOMMU_PLATFORM);
 		vsocket->features &= ~(1ULL << VIRTIO_F_IOMMU_PLATFORM);
diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
index 58c425a5c..7539b0621 100644
--- a/lib/librte_vhost/vhost.h
+++ b/lib/librte_vhost/vhost.h
@@ -191,6 +191,13 @@ struct vhost_msg {
  #define VIRTIO_F_VERSION_1 32
 #endif
 
+/*
+ * Available and used descs are in same order
+ */
+#ifndef VIRTIO_F_IN_ORDER
+#define VIRTIO_F_IN_ORDER      35
+#endif
+
 /* Features supported by this builtin vhost-user net driver. */
 #define VIRTIO_NET_SUPPORTED_FEATURES ((1ULL << VIRTIO_NET_F_MRG_RXBUF) | \
 				(1ULL << VIRTIO_F_ANY_LAYOUT) | \
@@ -214,7 +221,8 @@ struct vhost_msg {
 				(1ULL << VIRTIO_NET_F_GUEST_ECN) | \
 				(1ULL << VIRTIO_RING_F_INDIRECT_DESC) | \
 				(1ULL << VIRTIO_RING_F_EVENT_IDX) | \
-				(1ULL << VIRTIO_NET_F_MTU) | \
+				(1ULL << VIRTIO_NET_F_MTU)  | \
+				(1ULL << VIRTIO_F_IN_ORDER) | \
 				(1ULL << VIRTIO_F_IOMMU_PLATFORM))
 
 
-- 
2.17.0

  parent reply	other threads:[~2018-06-08  1:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-08  9:07 [PATCH 0/7] support VIRTIO_F_IN_ORDER feature Marvin Liu
2018-06-08  2:11 ` Liu, Yong
2018-06-08  9:07 ` Marvin Liu [this message]
2018-06-13  6:18   ` [PATCH 1/7] vhost: announce VIRTIO_F_IN_ORDER support Tiwei Bie
2018-06-08  9:07 ` [PATCH 2/7] net/virtio: add VIRTIO_F_IN_ORDER definition Marvin Liu
2018-06-08  9:07 ` [PATCH 3/7] net/virtio-user: add mgr_rxbuf and in_order vdev parameters Marvin Liu
2018-06-13  6:37   ` Tiwei Bie
2018-06-08  9:07 ` [PATCH 4/7] net/virtio: free IN_ORDER descriptors Marvin Liu
2018-06-08  9:07 ` [PATCH 5/7] net/virtio: support IN_ORDER Rx and Tx Marvin Liu
2018-06-20  7:41   ` Tiwei Bie
2018-06-22  8:05     ` Liu, Yong
2018-06-08  9:07 ` [PATCH 6/7] net/virtio: add IN_ORDER Rx/Tx into selection Marvin Liu
2018-06-20  7:44   ` Tiwei Bie
2018-06-20 16:13     ` Liu, Yong
2018-06-08  9:07 ` [PATCH 7/7] net/virtio: annouce VIRTIO_F_IN_ORDER support Marvin Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180608090724.20855-2-yong.liu@intel.com \
    --to=yong.liu@intel.com \
    --cc=dev@dpdk.org \
    --cc=maxime.coquelin@redhat.com \
    --cc=tiwei.bie@intel.com \
    --cc=zhihong.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.