lkml.org 
[lkml]   [2018]   [May]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH net-next 03/12] vhost_net: introduce vhost_has_more_pkts()
    Date
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    ---
    drivers/vhost/net.c | 12 +++++++++---
    1 file changed, 9 insertions(+), 3 deletions(-)

    diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
    index de544ee..4ebac76 100644
    --- a/drivers/vhost/net.c
    +++ b/drivers/vhost/net.c
    @@ -485,6 +485,13 @@ static bool vhost_exceeds_weight(int pkts, int total_len)
    unlikely(pkts >= VHOST_NET_PKT_WEIGHT);
    }

    +static bool vhost_has_more_pkts(struct vhost_net *net,
    + struct vhost_virtqueue *vq)
    +{
    + return !vhost_vq_avail_empty(&net->dev, vq) &&
    + likely(!vhost_exceeds_maxpend(net));
    +}
    +
    /* 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)
    @@ -578,8 +585,7 @@ static void handle_tx(struct vhost_net *net)
    }
    total_len += len;
    if (total_len < VHOST_NET_WEIGHT &&
    - !vhost_vq_avail_empty(&net->dev, vq) &&
    - likely(!vhost_exceeds_maxpend(net))) {
    + vhost_has_more_pkts(net, vq)) {
    msg.msg_flags |= MSG_MORE;
    } else {
    msg.msg_flags &= ~MSG_MORE;
    @@ -605,7 +611,7 @@ static void handle_tx(struct vhost_net *net)
    else
    vhost_zerocopy_signal_used(net, vq);
    vhost_net_tx_packet(net);
    - if (unlikely(vhost_exceeds_weight(++sent_pkts, total_len))) {
    + if (vhost_exceeds_weight(++sent_pkts, total_len)) {
    vhost_poll_queue(&vq->poll);
    break;
    }
    --
    2.7.4
    \
     
     \ /
      Last update: 2018-05-21 11:10    [W:4.150 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site