From: Guo Zhi <qtxuning1999@sjtu.edu.cn>
To: eperezma@redhat.com, jasowang@redhat.com, sgarzare@redhat.com,
mst@redhat.com
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
Guo Zhi <qtxuning1999@sjtu.edu.cn>
Subject: [RFC v2 3/7] vsock: batch buffers in tx
Date: Wed, 17 Aug 2022 21:57:14 +0800 [thread overview]
Message-ID: <20220817135718.2553-4-qtxuning1999@sjtu.edu.cn> (raw)
In-Reply-To: <20220817135718.2553-1-qtxuning1999@sjtu.edu.cn>
Vsock uses buffers in order, and for tx driver doesn't have to
know the length of the buffer. So we can do a batch for vsock if
in order negotiated, only write one used ring for a batch of buffers
Signed-off-by: Guo Zhi <qtxuning1999@sjtu.edu.cn>
---
drivers/vhost/vsock.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c
index 368330417bde..b0108009c39a 100644
--- a/drivers/vhost/vsock.c
+++ b/drivers/vhost/vsock.c
@@ -500,6 +500,7 @@ static void vhost_vsock_handle_tx_kick(struct vhost_work *work)
int head, pkts = 0, total_len = 0;
unsigned int out, in;
bool added = false;
+ int last_head = -1;
mutex_lock(&vq->mutex);
@@ -551,10 +552,16 @@ static void vhost_vsock_handle_tx_kick(struct vhost_work *work)
else
virtio_transport_free_pkt(pkt);
- vhost_add_used(vq, head, 0);
+ if (!vhost_has_feature(vq, VIRTIO_F_IN_ORDER))
+ vhost_add_used(vq, head, 0);
+ else
+ last_head = head;
added = true;
} while(likely(!vhost_exceeds_weight(vq, ++pkts, total_len)));
+ /* If in order feature negotiaged, we can do a batch to increase performance */
+ if (vhost_has_feature(vq, VIRTIO_F_IN_ORDER) && last_head != -1)
+ vhost_add_used(vq, last_head, 0);
no_more_replies:
if (added)
vhost_signal(&vsock->dev, vq);
--
2.17.1
next prev parent reply other threads:[~2022-08-17 13:58 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-17 13:57 [RFC v2 0/7] In order support for virtio_ring, vhost and vsock Guo Zhi
2022-08-17 13:57 ` [RFC v2 1/7] vhost: expose used buffers Guo Zhi
2022-08-18 6:16 ` Eugenio Perez Martin
2022-08-19 11:02 ` Guo Zhi
2022-08-25 7:01 ` Jason Wang
2022-08-25 7:01 ` Jason Wang
2022-08-26 3:09 ` Guo Zhi
2022-08-17 13:57 ` [RFC v2 2/7] vhost_test: batch used buffer Guo Zhi
2022-08-18 6:18 ` Eugenio Perez Martin
2022-08-25 7:03 ` Jason Wang
2022-08-25 7:03 ` Jason Wang
2022-08-17 13:57 ` Guo Zhi [this message]
2022-08-18 6:19 ` [RFC v2 3/7] vsock: batch buffers in tx Eugenio Perez Martin
2022-08-19 11:03 ` Guo Zhi
2022-08-25 7:08 ` Jason Wang
2022-08-25 7:08 ` Jason Wang
2022-08-26 3:11 ` Guo Zhi
2022-08-17 13:57 ` [RFC v2 4/7] vsock: announce VIRTIO_F_IN_ORDER in vsock Guo Zhi
2022-08-17 13:57 ` [RFC v2 5/7] virtio: unmask F_NEXT flag in desc_extra Guo Zhi
2022-08-18 3:05 ` Xuan Zhuo
2022-08-18 3:05 ` Xuan Zhuo
2022-08-18 3:14 ` Guo Zhi
2022-08-25 7:11 ` Jason Wang
2022-08-25 7:11 ` Jason Wang
2022-08-17 13:57 ` [RFC v2 6/7] virtio: in order support for virtio_ring Guo Zhi
2022-08-18 3:11 ` Xuan Zhuo
2022-08-18 3:11 ` Xuan Zhuo
2022-08-18 3:16 ` Guo Zhi
2022-08-25 7:44 ` Jason Wang
2022-08-25 7:44 ` Jason Wang
2022-08-26 3:14 ` Guo Zhi
2022-08-26 3:18 ` Guo Zhi
2022-08-17 13:57 ` [RFC v2 7/7] virtio: annouce VIRTIO_F_IN_ORDER support Guo Zhi
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=20220817135718.2553-4-qtxuning1999@sjtu.edu.cn \
--to=qtxuning1999@sjtu.edu.cn \
--cc=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=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.