All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: mst@redhat.com, jasowang@redhat.com, netdev@vger.kernel.org
Cc: kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH net-next 3/9] vhost_net: introduce vhost_exceeds_weight()
Date: Fri, 20 Jul 2018 08:15:15 +0800	[thread overview]
Message-ID: <1532045721-4958-4-git-send-email-jasowang@redhat.com> (raw)
In-Reply-To: <1532045721-4958-1-git-send-email-jasowang@redhat.com>

Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/vhost/net.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index cac28fd..b9e1674 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -478,6 +478,12 @@ static size_t init_iov_iter(struct vhost_virtqueue *vq, struct iov_iter *iter,
 	return iov_iter_count(iter);
 }
 
+static bool vhost_exceeds_weight(int pkts, int total_len)
+{
+	return total_len >= VHOST_NET_WEIGHT ||
+	       pkts >= VHOST_NET_PKT_WEIGHT;
+}
+
 /* Expects to be always run from workqueue - which acts as
  * read-size critical section for our kind of RCU. */
 static void handle_tx(struct vhost_net *net)
@@ -576,7 +582,6 @@ static void handle_tx(struct vhost_net *net)
 			msg.msg_control = NULL;
 			ubufs = NULL;
 		}
-
 		total_len += len;
 		if (total_len < VHOST_NET_WEIGHT &&
 		    !vhost_vq_avail_empty(&net->dev, vq) &&
@@ -606,8 +611,7 @@ static void handle_tx(struct vhost_net *net)
 		else
 			vhost_zerocopy_signal_used(net, vq);
 		vhost_net_tx_packet(net);
-		if (unlikely(total_len >= VHOST_NET_WEIGHT) ||
-		    unlikely(++sent_pkts >= VHOST_NET_PKT_WEIGHT)) {
+		if (unlikely(vhost_exceeds_weight(++sent_pkts, total_len))) {
 			vhost_poll_queue(&vq->poll);
 			break;
 		}
@@ -918,8 +922,7 @@ static void handle_rx(struct vhost_net *net)
 		if (unlikely(vq_log))
 			vhost_log_write(vq, vq_log, log, vhost_len);
 		total_len += vhost_len;
-		if (unlikely(total_len >= VHOST_NET_WEIGHT) ||
-		    unlikely(++recv_pkts >= VHOST_NET_PKT_WEIGHT)) {
+		if (unlikely(vhost_exceeds_weight(++recv_pkts, total_len))) {
 			vhost_poll_queue(&vq->poll);
 			goto out;
 		}
-- 
2.7.4


  parent reply	other threads:[~2018-07-20  0:15 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-20  0:15 [PATCH net-next 0/9] TX used ring batched updating for vhost Jason Wang
2018-07-20  0:15 ` [PATCH net-next 1/9] vhost_net: drop unnecessary parameter Jason Wang
2018-07-20  0:15 ` Jason Wang
2018-07-20  0:15 ` [PATCH net-next 2/9] vhost_net: introduce helper to initialize tx iov iter Jason Wang
2018-07-20  0:15 ` Jason Wang
2018-07-20  0:15 ` Jason Wang [this message]
2018-07-20  0:15 ` [PATCH net-next 3/9] vhost_net: introduce vhost_exceeds_weight() Jason Wang
2018-07-20  0:15 ` [PATCH net-next 4/9] vhost_net: introduce get_tx_bufs() Jason Wang
2018-07-20  0:15 ` Jason Wang
2018-07-20  0:15 ` [PATCH net-next 5/9] vhost_net: introduce tx_can_batch() Jason Wang
2018-07-20  0:15 ` Jason Wang
2018-07-20  0:15 ` [PATCH net-next 6/9] vhost_net: split out datacopy logic Jason Wang
2018-07-20  0:15 ` Jason Wang
2018-07-20  0:15 ` [PATCH net-next 7/9] vhost_net: rename vhost_rx_signal_used() to vhost_net_signal_used() Jason Wang
2018-07-20  0:15 ` Jason Wang
2018-07-20  0:15 ` [PATCH net-next 8/9] vhost_net: rename VHOST_RX_BATCH to VHOST_NET_BATCH Jason Wang
2018-07-20  0:15 ` Jason Wang
2018-07-20  0:15 ` [PATCH net-next 9/9] vhost_net: batch update used ring for datacopy TX Jason Wang
2018-07-20  0:15 ` Jason Wang
2018-07-22  4:44 ` [PATCH net-next 0/9] TX used ring batched updating for vhost David Miller
2018-07-22  4:44   ` David Miller
2018-07-22 14:37 ` Michael S. Tsirkin
2018-07-22 14:37   ` Michael S. Tsirkin
2018-07-22 16:44   ` David Miller
2018-07-22 16:44   ` David Miller

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=1532045721-4958-4-git-send-email-jasowang@redhat.com \
    --to=jasowang@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --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.