From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ob0-f169.google.com (mail-ob0-f169.google.com [209.85.214.169]) by dpdk.org (Postfix) with ESMTP id 8EF86BDC2 for ; Wed, 3 Jun 2015 21:08:28 +0200 (CEST) Received: by obew15 with SMTP id w15so15838847obe.1 for ; Wed, 03 Jun 2015 12:08:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VnScuhj7lLiBxNeYeC0vjaRXk4ioS9PLptdmbjQzdhQ=; b=NOr+WGP4l9E+paMkZUdVwKaDth2C3e/A4ZkBT1WudHtJSzvPDLlcrsMJVRd1QUd7Ef bln7aj0FR7V6tPSa0HcbidyM+AqyTnawDbGU51Wq09THpaiw+rQ5PYqTYibCJMB4b/r+ ufQIwBFOOUc3j9gm+taaZKc5sli/IJhjMLh/XuoykQUVdUQKYusqTkjVWYJW71iR7iAi 3I61GiEDwk/UoIbGNMTCOFFtIT36jWEiseMByLKx2DatmtXkKIObHRYMa75uT/kJRCYp Fzlsgqhu73RjBJUzwtxNvWGoYIJ511I5X5EQ+GY6XY1aB0l6gIGFzsFRz2NTVJfRERWL 8WhA== X-Gm-Message-State: ALoCoQkOK9hoBdCHP92Ym9axbqVqBzDWq/yWkqkwMyhkjvF6qFn38kY9OqmE/4HNp5jYnHiSO8lf X-Received: by 10.202.216.138 with SMTP id p132mr591735oig.133.1433358508126; Wed, 03 Jun 2015 12:08:28 -0700 (PDT) Received: from localhost.localdomain (rrcs-97-77-120-78.sw.biz.rr.com. [97.77.120.78]) by mx.google.com with ESMTPSA id yo9sm11959271obc.3.2015.06.03.12.08.26 (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 03 Jun 2015 12:08:26 -0700 (PDT) From: Jay Rolette To: dev@dpdk.org Date: Wed, 3 Jun 2015 14:07:57 -0500 Message-Id: <1433358478-12668-2-git-send-email-rolette@infiniteio.com> X-Mailer: git-send-email 2.3.2 (Apple Git-55) In-Reply-To: <1433358478-12668-1-git-send-email-rolette@infiniteio.com> References: <1433358478-12668-1-git-send-email-rolette@infiniteio.com> Subject: [dpdk-dev] [PATCH 2/3] kni: minor opto X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jun 2015 19:08:28 -0000 No reason to check out many entries are in kni->rx_q prior to actually pulling them from the fifo. You can't dequeue more than are there anyway. Max entries to dequeue is either the max batch size or however much space is available on kni->free_q (lesser of the two) Signed-off-by: Jay Rolette --- lib/librte_eal/linuxapp/kni/kni_net.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/librte_eal/linuxapp/kni/kni_net.c b/lib/librte_eal/linuxapp/kni/kni_net.c index dd95db5..13ccbb8 100644 --- a/lib/librte_eal/linuxapp/kni/kni_net.c +++ b/lib/librte_eal/linuxapp/kni/kni_net.c @@ -131,7 +131,7 @@ kni_net_rx_normal(struct kni_dev *kni) { unsigned ret; uint32_t len; - unsigned i, num, num_rq, num_fq; + unsigned i, num, num_fq; struct rte_kni_mbuf *kva; struct rte_kni_mbuf *va[MBUF_BURST_SZ]; void * data_kva; @@ -139,24 +139,19 @@ kni_net_rx_normal(struct kni_dev *kni) struct sk_buff *skb; struct net_device *dev = kni->net_dev; - /* Get the number of entries in rx_q */ - num_rq = kni_fifo_count(kni->rx_q); - /* Get the number of free entries in free_q */ - num_fq = kni_fifo_free_count(kni->free_q); - - /* Calculate the number of entries to dequeue in rx_q */ - num = min(num_rq, num_fq); - num = min(num, (unsigned)MBUF_BURST_SZ); - - /* Return if no entry in rx_q and no free entry in free_q */ - if (num == 0) + if ((num_fq = kni_fifo_free_count(kni->free_q)) == 0) { + /* No room on the free_q, bail out */ return; + } + + /* Calculate the number of entries to dequeue from rx_q */ + num = min(num_fq, (unsigned)MBUF_BURST_SZ); /* Burst dequeue from rx_q */ ret = kni_fifo_get(kni->rx_q, (void **)va, num); if (ret == 0) - return; /* Failing should not happen */ + return; /* Transfer received packets to netif */ for (i = 0; i < num; i++) { -- 2.3.2 (Apple Git-55)