All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: mst@redhat.com, jasowang@redhat.com, kvm@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: wexu@redhat.com, tiwei.bie@intel.com, maxime.coquelin@redhat.com,
	jfreimann@redhat.com
Subject: [PATCH net-next 6/8] virtio: introduce packed ring defines
Date: Tue,  3 Jul 2018 13:38:02 +0800	[thread overview]
Message-ID: <1530596284-4101-7-git-send-email-jasowang@redhat.com> (raw)
In-Reply-To: <1530596284-4101-1-git-send-email-jasowang@redhat.com>

Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 include/uapi/linux/virtio_config.h |  2 ++
 include/uapi/linux/virtio_ring.h   | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/include/uapi/linux/virtio_config.h b/include/uapi/linux/virtio_config.h
index 449132c..947f6a3 100644
--- a/include/uapi/linux/virtio_config.h
+++ b/include/uapi/linux/virtio_config.h
@@ -75,6 +75,8 @@
  */
 #define VIRTIO_F_IOMMU_PLATFORM		33
 
+#define VIRTIO_F_RING_PACKED		34
+
 /*
  * Does the device support Single Root I/O Virtualization?
  */
diff --git a/include/uapi/linux/virtio_ring.h b/include/uapi/linux/virtio_ring.h
index 6d5d5fa..71c7a46 100644
--- a/include/uapi/linux/virtio_ring.h
+++ b/include/uapi/linux/virtio_ring.h
@@ -43,6 +43,8 @@
 #define VRING_DESC_F_WRITE	2
 /* This means the buffer contains a list of buffer descriptors. */
 #define VRING_DESC_F_INDIRECT	4
+#define VRING_DESC_F_AVAIL      7
+#define VRING_DESC_F_USED	15
 
 /* The Host uses this in used->flags to advise the Guest: don't kick me when
  * you add a buffer.  It's unreliable, so it's simply an optimization.  Guest
@@ -62,6 +64,36 @@
  * at the end of the used ring. Guest should ignore the used->flags field. */
 #define VIRTIO_RING_F_EVENT_IDX		29
 
+struct vring_desc_packed {
+	/* Buffer Address. */
+	__virtio64 addr;
+	/* Buffer Length. */
+	__virtio32 len;
+	/* Buffer ID. */
+	__virtio16 id;
+	/* The flags depending on descriptor type. */
+	__virtio16 flags;
+};
+
+/* Enable events */
+#define RING_EVENT_FLAGS_ENABLE 0x0
+/* Disable events */
+#define RING_EVENT_FLAGS_DISABLE 0x1
+/*
+ * Enable events for a specific descriptor
+ * (as specified by Descriptor Ring Change Event Offset/Wrap Counter).
+ * Only valid if VIRTIO_F_RING_EVENT_IDX has been negotiated.
+ */
+#define RING_EVENT_FLAGS_DESC 0x2
+/* The value 0x3 is reserved */
+
+struct vring_packed_desc_event {
+	/* Descriptor Ring Change Event Offset and Wrap Counter */
+	__virtio16 off_wrap;
+	/* Descriptor Ring Change Event Flags */
+	__virtio16 flags;
+};
+
 /* Virtio ring descriptors: 16 bytes.  These can chain together via "next". */
 struct vring_desc {
 	/* Address (guest-physical). */
-- 
2.7.4


  parent reply	other threads:[~2018-07-03  5:40 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-03  5:37 [PATCH net-next 0/8] Packed virtqueue for vhost Jason Wang
2018-07-03  5:37 ` Jason Wang
2018-07-03  5:37 ` [PATCH net-next 1/8] vhost: move get_rx_bufs to vhost.c Jason Wang
2018-07-04  1:01   ` kbuild test robot
2018-07-04  1:01     ` kbuild test robot
2018-07-04  3:28     ` Jason Wang
2018-07-04  3:28     ` Jason Wang
2018-07-03  5:37 ` Jason Wang
2018-07-03  5:37 ` [PATCH net-next 2/8] vhost: hide used ring layout from device Jason Wang
2018-07-03  5:37 ` Jason Wang
2018-07-03  5:37 ` [PATCH net-next 3/8] vhost: do not use vring_used_elem Jason Wang
2018-07-03  5:37 ` Jason Wang
2018-07-03  5:38 ` [PATCH net-next 4/8] vhost_net: do not explicitly manipulate vhost_used_elem Jason Wang
2018-07-03  5:38 ` Jason Wang
2018-07-03  5:38 ` [PATCH net-next 5/8] vhost: vhost_put_user() can accept metadata type Jason Wang
2018-07-03  5:38 ` Jason Wang
2018-07-03  5:38 ` [PATCH net-next 6/8] virtio: introduce packed ring defines Jason Wang
2018-07-03  5:38 ` Jason Wang [this message]
2018-07-04  4:48   ` Tiwei Bie
2018-07-04  4:48     ` Tiwei Bie
2018-07-04  5:26     ` Jason Wang
2018-07-04  5:26       ` Jason Wang
2018-07-04 20:15   ` Maxime Coquelin
2018-07-05 11:30     ` Jason Wang
2018-07-05 11:30       ` Jason Wang
2018-07-03  5:38 ` [PATCH net-next 7/8] vhost: packed ring support Jason Wang
2018-07-03  5:38 ` Jason Wang
2018-07-03  5:38 ` [PATCH net-next 8/8] vhost: event suppression for packed ring Jason Wang
2018-07-03  5:38 ` Jason Wang
2018-07-04  4:13   ` Wei Xu
2018-07-04  4:13     ` Wei Xu
2018-07-04  5:23     ` Jason Wang
2018-07-04  5:23       ` Jason Wang
2018-07-04  8:13       ` Wei Xu
2018-07-04  8:13         ` Wei Xu

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=1530596284-4101-7-git-send-email-jasowang@redhat.com \
    --to=jasowang@redhat.com \
    --cc=jfreimann@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxime.coquelin@redhat.com \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=tiwei.bie@intel.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=wexu@redhat.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.