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

Message ID 1445936313-31782-1-git-send-email-xutao.sun@intel.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Xutao Sun Oct. 27, 2015, 8:58 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

v3:
 - Change the comments above the relevant code.
 
 examples/vmdq/main.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
  

Comments

De Lara Guarch, Pablo Oct. 29, 2015, 7:53 a.m. UTC | #1
> -----Original Message-----
> From: Sun, Xutao
> Sent: Tuesday, October 27, 2015 8:59 AM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo; Wu, Jingjing; Zhang, Helin; Sun, Xutao
> Subject: [PATCH v3] 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
> 
> v3:
>  - Change the comments above the relevant code.
> 
>  examples/vmdq/main.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
> index a142d49..178af2f 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.
> + * 1024 queues require to meet the needs of a large number of
> vmdq_pools.
> + * (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

Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
  
Thomas Monjalon Dec. 7, 2015, 1:46 a.m. UTC | #2
> > 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: Pablo de Lara <pablo.de.lara.guarch@intel.com>

Applied, thanks
  

Patch

diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
index a142d49..178af2f 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.
+ * 1024 queues require to meet the needs of a large number of vmdq_pools.
+ * (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