From: Thomas Monjalon <thomas.monjalon-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
To: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH] kni: optimizing the rte_kni_rx_burst
Date: Tue, 11 Nov 2014 23:58:22 +0100 [thread overview]
Message-ID: <1791036.bZfV7z791K@xps13> (raw)
In-Reply-To: <14060979121185-git-send-email-Hemant-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
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 <Hemant-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
> ---
> 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;
> }
next prev parent reply other threads:[~2014-11-11 22:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-23 6:45 [PATCH] kni: optimizing the rte_kni_rx_burst Hemant Agrawal
[not found] ` <14060979121185-git-send-email-Hemant-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2014-11-11 22:58 ` Thomas Monjalon [this message]
2014-11-26 21:20 ` Thomas Monjalon
2015-01-30 9:59 ` Thomas Monjalon
2015-02-24 1:29 ` Thomas Monjalon
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=1791036.bZfV7z791K@xps13 \
--to=thomas.monjalon-pdr9zngts4eavxtiumwx3w@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.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.