examples/vmdq: fix crash when using too many pools
authorXutao Sun <xutao.sun@intel.com>
Tue, 27 Oct 2015 08:58:33 +0000 (16:58 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 7 Dec 2015 02:21:13 +0000 (03:21 +0100)
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>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
examples/vmdq/main.c

index a142d49..178af2f 100644 (file)
 #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