All of lore.kernel.org
 help / color / mirror / Atom feed
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: Wed, 26 Nov 2014 22:20:32 +0100	[thread overview]
Message-ID: <1520998.LI3zsdbzN8@xps13> (raw)
In-Reply-To: <1791036.bZfV7z791K@xps13>

Ping

2014-11-11 23:58, Thomas Monjalon:
> 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;
> >  }

  reply	other threads:[~2014-11-26 21:20 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
2014-11-26 21:20     ` Thomas Monjalon [this message]
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=1520998.LI3zsdbzN8@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.