[dpdk-dev,2/2,v3] kni: add documentation for the mempool capacity

Message ID 1463817516-1752-2-git-send-email-ee07b291@gmail.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Commit Message

ALeX Wang May 21, 2016, 7:58 a.m. UTC
  From: Alex Wang <alex@awakenetworks.com>

Function like 'rte_kni_rx_burst()' keeps
allocating 'MAX_MBUF_BURST_NUM' mbufs to
kni fifo queue unless the queue's capacity
('KNI_FIFO_COUNT_MAX') is reached.  So, if
the mempool is under-provisioned, user may
run into "Out of Memory" logs from KNI code.
This commit documents the need to provision
mempool capacity of more than
"2 x KNI_FIFO_COUNT_MAX" for each KNI interface.

Signed-off-by: Alex Wang <alex@awakenetworks.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 lib/librte_kni/rte_kni.h | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

John McNamara June 9, 2016, 12:03 p.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Alex Wang
> Sent: Saturday, May 21, 2016 8:59 AM
> To: dev@dpdk.org
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; Alex Wang
> <alex@awakenetworks.com>
> Subject: [dpdk-dev] [PATCH 2/2 v3] kni: add documentation for the mempool
> capacity
> 
> From: Alex Wang <alex@awakenetworks.com>
> 
> Function like 'rte_kni_rx_burst()' keeps allocating 'MAX_MBUF_BURST_NUM'
> mbufs to kni fifo queue unless the queue's capacity
> ('KNI_FIFO_COUNT_MAX') is reached.  So, if the mempool is under-
> provisioned, user may run into "Out of Memory" logs from KNI code.
> This commit documents the need to provision mempool capacity of more than
> "2 x KNI_FIFO_COUNT_MAX" for each KNI interface.
> 
> Signed-off-by: Alex Wang <alex@awakenetworks.com>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>

Acked-by: John McNamara <john.mcnamara@intel.com>
  
Alex Wang June 9, 2016, 5:06 p.m. UTC | #2
Just to confirm, should I do anything before it gets merged?

On Thu, Jun 9, 2016 at 5:03 AM, Mcnamara, John <john.mcnamara@intel.com>
wrote:

> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Alex Wang
> > Sent: Saturday, May 21, 2016 8:59 AM
> > To: dev@dpdk.org
> > Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; Alex Wang
> > <alex@awakenetworks.com>
> > Subject: [dpdk-dev] [PATCH 2/2 v3] kni: add documentation for the mempool
> > capacity
> >
> > From: Alex Wang <alex@awakenetworks.com>
> >
> > Function like 'rte_kni_rx_burst()' keeps allocating 'MAX_MBUF_BURST_NUM'
> > mbufs to kni fifo queue unless the queue's capacity
> > ('KNI_FIFO_COUNT_MAX') is reached.  So, if the mempool is under-
> > provisioned, user may run into "Out of Memory" logs from KNI code.
> > This commit documents the need to provision mempool capacity of more than
> > "2 x KNI_FIFO_COUNT_MAX" for each KNI interface.
> >
> > Signed-off-by: Alex Wang <alex@awakenetworks.com>
> > Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
>
> Acked-by: John McNamara <john.mcnamara@intel.com>
>
>
  
John McNamara June 9, 2016, 5:10 p.m. UTC | #3
> Just to confirm, should I do anything before it gets merged?


No. Looks good to me. Now you just need to wait. :-)

John.
  
Thomas Monjalon June 14, 2016, 3:16 p.m. UTC | #4
> > From: Alex Wang <alex@awakenetworks.com>
> > 
> > Function like 'rte_kni_rx_burst()' keeps allocating 'MAX_MBUF_BURST_NUM'
> > mbufs to kni fifo queue unless the queue's capacity
> > ('KNI_FIFO_COUNT_MAX') is reached.  So, if the mempool is under-
> > provisioned, user may run into "Out of Memory" logs from KNI code.
> > This commit documents the need to provision mempool capacity of more than
> > "2 x KNI_FIFO_COUNT_MAX" for each KNI interface.
> > 
> > Signed-off-by: Alex Wang <alex@awakenetworks.com>
> > Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> 
> Acked-by: John McNamara <john.mcnamara@intel.com>

Applied, thanks
  

Patch

diff --git a/lib/librte_kni/rte_kni.h b/lib/librte_kni/rte_kni.h
index 25fa45e..ac11148 100644
--- a/lib/librte_kni/rte_kni.h
+++ b/lib/librte_kni/rte_kni.h
@@ -113,6 +113,9 @@  extern void rte_kni_init(unsigned int max_kni_ifaces);
  * The rte_kni_alloc shall not be called before rte_kni_init() has been
  * called. rte_kni_alloc is thread safe.
  *
+ * The mempool should have capacity of more than "2 x KNI_FIFO_COUNT_MAX"
+ * elements for each KNI interface allocated.
+ *
  * @param pktmbuf_pool
  *  The mempool for allocting mbufs for packets.
  * @param conf