[dpdk-dev,v2] examples/vmdq: Fix the core dump issue when mem_pool is more than 34

Message ID 1445922658-4955-1-git-send-email-xutao.sun@intel.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Xutao Sun Oct. 27, 2015, 5:10 a.m. UTC
  Macro MAX_QUEUES was defined to 128, only allow 16 vmdq_pools in theory.
When running vmdq_app with more than 34 vmdq_pools, it will cause the
core_dump issue.
Change MAX_QUEUES to 1024 will solve this issue.

Signed-off-by: Xutao Sun <xutao.sun@intel.com>
---
v2:
 - rectify the NUM_MBUFS_PER_PORT since MAX_QUEUES has been changed

 examples/vmdq/main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
  

Comments

De Lara Guarch, Pablo Oct. 27, 2015, 7:55 a.m. UTC | #1
Hi Xutao,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xutao Sun
> Sent: Tuesday, October 27, 2015 5:11 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH v2] examples/vmdq: Fix the core dump issue
> when mem_pool is more than 34
> 
> Macro MAX_QUEUES was defined to 128, only allow 16 vmdq_pools in
> theory.
> When running vmdq_app with more than 34 vmdq_pools, it will cause the
> core_dump issue.
> Change MAX_QUEUES to 1024 will solve this issue.
> 
> Signed-off-by: Xutao Sun <xutao.sun@intel.com>
> ---
> v2:
>  - rectify the NUM_MBUFS_PER_PORT since MAX_QUEUES has been
> changed
> 
>  examples/vmdq/main.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
> index a142d49..bba5164 100644
> --- a/examples/vmdq/main.c
> +++ b/examples/vmdq/main.c
> @@ -69,12 +69,13 @@
>  #include <rte_mbuf.h>
>  #include <rte_memcpy.h>
> 
> -#define MAX_QUEUES 128
> +#define MAX_QUEUES 1024
>  /*
>   * For 10 GbE, 128 queues require roughly
>   * 128*512 (RX/TX_queue_nb * RX/TX_ring_descriptors_nb) per port.
>   */
> -#define NUM_MBUFS_PER_PORT (128*512)
> +#define NUM_MBUFS_PER_PORT (MAX_QUEUES *
> RTE_MAX(RTE_TEST_RX_DESC_DEFAULT, \
> +
> 	RTE_TEST_TX_DESC_DEFAULT))
>  #define MBUF_CACHE_SIZE 64
> 
>  #define MAX_PKT_BURST 32
> --
> 1.9.3

Please, change the comment above, as you have change code related to it,
i.e. it is not 128*512 anymore.

Pablo
  
Xutao Sun Oct. 27, 2015, 8:22 a.m. UTC | #2
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Tuesday, October 27, 2015 3:55 PM
> To: Sun, Xutao; dev@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH v2] examples/vmdq: Fix the core dump issue
> when mem_pool is more than 34
> 
> Hi Xutao,
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xutao Sun
> > Sent: Tuesday, October 27, 2015 5:11 AM
> > To: dev@dpdk.org
> > Subject: [dpdk-dev] [PATCH v2] examples/vmdq: Fix the core dump issue
> > when mem_pool is more than 34
> >
> > Macro MAX_QUEUES was defined to 128, only allow 16 vmdq_pools in
> > theory.
> > When running vmdq_app with more than 34 vmdq_pools, it will cause the
> > core_dump issue.
> > Change MAX_QUEUES to 1024 will solve this issue.
> >
> > Signed-off-by: Xutao Sun <xutao.sun@intel.com>
> > ---
> > v2:
> >  - rectify the NUM_MBUFS_PER_PORT since MAX_QUEUES has been
> changed
> >
> >  examples/vmdq/main.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index
> > a142d49..bba5164 100644
> > --- a/examples/vmdq/main.c
> > +++ b/examples/vmdq/main.c
> > @@ -69,12 +69,13 @@
> >  #include <rte_mbuf.h>
> >  #include <rte_memcpy.h>
> >
> > -#define MAX_QUEUES 128
> > +#define MAX_QUEUES 1024
> >  /*
> >   * For 10 GbE, 128 queues require roughly
> >   * 128*512 (RX/TX_queue_nb * RX/TX_ring_descriptors_nb) per port.
> >   */
> > -#define NUM_MBUFS_PER_PORT (128*512)
> > +#define NUM_MBUFS_PER_PORT (MAX_QUEUES *
> > RTE_MAX(RTE_TEST_RX_DESC_DEFAULT, \
> > +
> > 	RTE_TEST_TX_DESC_DEFAULT))
> >  #define MBUF_CACHE_SIZE 64
> >
> >  #define MAX_PKT_BURST 32
> > --
> > 1.9.3
> 
> Please, change the comment above, as you have change code related to it,
> i.e. it is not 128*512 anymore.
> 
> Pablo

Hi, Pablo

I described how I changed code in version 2 below "v2".
And I think the main feature of the patch to is modify the number of MAX_QUEUES.
So I just described the other features briefly.

Thanks,
Xutao
  
Jingjing Wu Oct. 30, 2015, 5:54 a.m. UTC | #3
> -----Original Message-----
> From: Sun, Xutao
> Sent: Tuesday, October 27, 2015 1:11 PM
> To: dev@dpdk.org
> Cc: Wu, Jingjing; Zhang, Helin; Sun, Xutao
> Subject: [PATCH v2] examples/vmdq: Fix the core dump issue when
> mem_pool is more than 34
> 
> Macro MAX_QUEUES was defined to 128, only allow 16 vmdq_pools in
> theory.
> When running vmdq_app with more than 34 vmdq_pools, it will cause the
> core_dump issue.
> Change MAX_QUEUES to 1024 will solve this issue.
> 
> Signed-off-by: Xutao Sun <xutao.sun@intel.com>

Acked-by: Jingjing Wu <jingjing.wu@intel.com>

> ---
> v2:
>  - rectify the NUM_MBUFS_PER_PORT since MAX_QUEUES has been
> changed
> 
>  examples/vmdq/main.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> 1.9.3
  

Patch

diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
index a142d49..bba5164 100644
--- a/examples/vmdq/main.c
+++ b/examples/vmdq/main.c
@@ -69,12 +69,13 @@ 
 #include <rte_mbuf.h>
 #include <rte_memcpy.h>
 
-#define MAX_QUEUES 128
+#define MAX_QUEUES 1024
 /*
  * For 10 GbE, 128 queues require roughly
  * 128*512 (RX/TX_queue_nb * RX/TX_ring_descriptors_nb) per port.
  */
-#define NUM_MBUFS_PER_PORT (128*512)
+#define NUM_MBUFS_PER_PORT (MAX_QUEUES * RTE_MAX(RTE_TEST_RX_DESC_DEFAULT, \
+						RTE_TEST_TX_DESC_DEFAULT))
 #define MBUF_CACHE_SIZE 64
 
 #define MAX_PKT_BURST 32