From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f41.google.com (mail-wg0-f41.google.com [74.125.82.41]) by dpdk.org (Postfix) with ESMTP id 9E0F17F78 for ; Tue, 11 Nov 2014 23:48:48 +0100 (CET) Received: by mail-wg0-f41.google.com with SMTP id k14so12757632wgh.0 for ; Tue, 11 Nov 2014 14:58:40 -0800 (PST) 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:organization :user-agent:in-reply-to:references:mime-version :content-transfer-encoding:content-type; bh=KsMWnXm7cZTdZtjVLZ9fmwpjN3KNe5JqbT5Y3xeS7tc=; b=RjTNLfwGkGCyG/Xx9kgFopM4MgBoXzg+wbhrNa9abKsevdpI8XnqV7EwxO3mQiX9Ri FtFALwTTKtGtZ2jBMSQsODmsADIHAosjd5beiUiwbAlXCGQ56bTtZ8A7KWUtaTN52Rg+ V3aYdlOmdHJTAWj0sWTpkoUH1nBMe4KcfIYr3hFMsIVoLb8qvriBVG3PjOpjn0pb5QmT wFYmMmt19EIj3UsjgvpqfNifN5jIq8kJ8wAdwiY52t9EkuoYDsWDTpfylCl4QmwoZwbZ zzCjRdPmRFtYeaRX6zCMVAwLXpvP2hWVeWhUJhxYmBsCoE9x65DtOMjEVIdLG51VEdB3 jFTQ== X-Gm-Message-State: ALoCoQnswrQqN4axxAcouYMe1cApJsJjF4x/2cv0fw5F06G3PNNp1NwdZLJxr2V+wYlybltA02E2 X-Received: by 10.194.90.244 with SMTP id bz20mr28123328wjb.125.1415746720190; Tue, 11 Nov 2014 14:58:40 -0800 (PST) Received: from xps13.localnet (136-92-190-109.dsl.ovh.fr. [109.190.92.136]) by mx.google.com with ESMTPSA id bq6sm19297646wib.1.2014.11.11.14.58.38 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Nov 2014 14:58:39 -0800 (PST) From: Thomas Monjalon To: dev@dpdk.org Date: Tue, 11 Nov 2014 23:58:22 +0100 Message-ID: <1791036.bZfV7z791K@xps13> Organization: 6WIND User-Agent: KMail/4.14.2 (Linux/3.17.2-1-ARCH; KDE/4.14.2; x86_64; ; ) In-Reply-To: <14060979121185-git-send-email-Hemant@freescale.com> References: <14060979121185-git-send-email-Hemant@freescale.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH] kni: optimizing the rte_kni_rx_burst 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: Tue, 11 Nov 2014 22:48:49 -0000 Is there anyone interested in KNI to review this patch please? 2014-07-23 12:15, Hemant Agrawal: > The current implementation of rte_kni_rx_burst polls the fifo for buffers. > Irrespective of success or failure, it allocates the mbuf and try to put them into the alloc_q > if the buffers are not added to alloc_q, it frees them. > This waste lots of cpu cycles in allocating and freeing the buffers if alloc_q is full. > > The logic has been changed to: > 1. Initially allocand add buffer(burstsize) to alloc_q > 2. Add buffers to alloc_q only when you are pulling out the buffers. > > Signed-off-by: Hemant Agrawal > --- > lib/librte_kni/rte_kni.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c > index 76feef4..01e85f8 100644 > --- a/lib/librte_kni/rte_kni.c > +++ b/lib/librte_kni/rte_kni.c > @@ -263,6 +263,9 @@ rte_kni_alloc(struct rte_mempool *pktmbuf_pool, > > ctx->in_use = 1; > > + /* Allocate mbufs and then put them into alloc_q */ > + kni_allocate_mbufs(ctx); > + > return ctx; > > fail: > @@ -369,8 +372,9 @@ rte_kni_rx_burst(struct rte_kni *kni, struct rte_mbuf **mbufs, unsigned num) > { > unsigned ret = kni_fifo_get(kni->tx_q, (void **)mbufs, num); > > - /* Allocate mbufs and then put them into alloc_q */ > - kni_allocate_mbufs(kni); > + /* If buffers removed, allocate mbufs and then put them into alloc_q */ > + if(ret) > + kni_allocate_mbufs(kni); > > return ret; > }