All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Eugenio Pérez" <eperezma@redhat.com>
To: mst@redhat.com
Cc: kvm list <kvm@vger.kernel.org>,
	Stefano Garzarella <sgarzare@redhat.com>,
	virtualization@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Jason Wang <jasowang@redhat.com>
Subject: [RFC v9 08/11] vhost/test: convert to the buf API
Date: Fri, 19 Jun 2020 20:22:59 +0200	[thread overview]
Message-ID: <20200619182302.850-9-eperezma@redhat.com> (raw)
In-Reply-To: <20200619182302.850-1-eperezma@redhat.com>

From: "Michael S. Tsirkin" <mst@redhat.com>

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
---
 drivers/vhost/test.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/vhost/test.c b/drivers/vhost/test.c
index 650e69261557..39e68f797a93 100644
--- a/drivers/vhost/test.c
+++ b/drivers/vhost/test.c
@@ -44,9 +44,10 @@ static void handle_vq(struct vhost_test *n)
 {
 	struct vhost_virtqueue *vq = &n->vqs[VHOST_TEST_VQ];
 	unsigned out, in;
-	int head;
+	int ret;
 	size_t len, total_len = 0;
 	void *private;
+	struct vhost_buf buf;
 
 	mutex_lock(&vq->mutex);
 	private = vhost_vq_get_backend(vq);
@@ -58,15 +59,15 @@ static void handle_vq(struct vhost_test *n)
 	vhost_disable_notify(&n->dev, vq);
 
 	for (;;) {
-		head = vhost_get_vq_desc(vq, vq->iov,
-					 ARRAY_SIZE(vq->iov),
-					 &out, &in,
-					 NULL, NULL);
+		ret = vhost_get_avail_buf(vq, &buf, vq->iov,
+					  ARRAY_SIZE(vq->iov),
+					  &out, &in,
+					  NULL, NULL);
 		/* On error, stop handling until the next kick. */
-		if (unlikely(head < 0))
+		if (unlikely(ret < 0))
 			break;
 		/* Nothing new?  Wait for eventfd to tell us they refilled. */
-		if (head == vq->num) {
+		if (!ret) {
 			if (unlikely(vhost_enable_notify(&n->dev, vq))) {
 				vhost_disable_notify(&n->dev, vq);
 				continue;
@@ -78,13 +79,14 @@ static void handle_vq(struct vhost_test *n)
 			       "out %d, int %d\n", out, in);
 			break;
 		}
-		len = iov_length(vq->iov, out);
+		len = buf.out_len;
 		/* Sanity check */
 		if (!len) {
 			vq_err(vq, "Unexpected 0 len for TX\n");
 			break;
 		}
-		vhost_add_used_and_signal(&n->dev, vq, head, 0);
+		vhost_put_used_buf(vq, &buf);
+		vhost_signal(&n->dev, vq);
 		total_len += len;
 		if (unlikely(vhost_exceeds_weight(vq, 0, total_len)))
 			break;
-- 
2.18.1

  parent reply	other threads:[~2020-06-19 18:22 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-19 18:22 [RFC v9 00/11] vhost: ring format independence Eugenio Pérez
2020-06-19 18:22 ` [RFC v9 01/11] vhost: option to fetch descriptors through an independent struct Eugenio Pérez
2020-06-19 18:22 ` [RFC v9 02/11] vhost: use batched get_vq_desc version Eugenio Pérez
2020-06-23 14:42   ` Michael S. Tsirkin
2020-06-23 16:45     ` Eugenio Perez Martin
2020-06-19 18:22 ` [RFC v9 03/11] vhost/net: pass net specific struct pointer Eugenio Pérez
2020-06-19 18:22 ` [RFC v9 04/11] vhost: reorder functions Eugenio Pérez
2020-06-19 18:22 ` [RFC v9 05/11] vhost: format-independent API for used buffers Eugenio Pérez
2020-06-19 18:22 ` [RFC v9 06/11] vhost/net: convert to new API: heads->bufs Eugenio Pérez
2020-06-19 18:22 ` [RFC v9 07/11] vhost/net: avoid iov length math Eugenio Pérez
2020-06-19 18:22 ` Eugenio Pérez [this message]
2020-06-19 18:23 ` [RFC v9 09/11] vhost/scsi: switch to buf APIs Eugenio Pérez
2020-06-22 10:01   ` Stefan Hajnoczi
2020-06-19 18:23 ` [RFC v9 10/11] vhost/vsock: switch to the buf API Eugenio Pérez
2020-06-22  9:59   ` Stefan Hajnoczi
2020-06-19 18:23 ` [RFC v9 11/11] vhost: drop head based APIs Eugenio Pérez

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=20200619182302.850-9-eperezma@redhat.com \
    --to=eperezma@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=sgarzare@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    /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.