kni: optimize Rx burst
authorHemant Agrawal <Hemant@freescale.com>
Wed, 23 Jul 2014 06:45:12 +0000 (12:15 +0530)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 24 Feb 2015 01:26:24 +0000 (02:26 +0100)
commit3e12a98fe39786c3ecf0bc0fb2a439e9c17a0da4
treee70a83cac2c11c5d78da4986496dcb44fc368ebe
parente128e53879c71215c0293f8c7a7a8f0f173487c1
kni: optimize Rx burst

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@freescale.com>
Reviewed-by: Jay Rolette <rolette@infiniteio.com>
lib/librte_kni/rte_kni.c