Dump DPDK physmem to stdout before allocating mbufs 52/452/1
authorSean Hope <shope@cisco.com>
Mon, 22 Feb 2016 20:21:31 +0000 (15:21 -0500)
committerTodd Foggoa <tfoggoa@cisco.com>
Tue, 1 Mar 2016 15:16:42 +0000 (10:16 -0500)
Change-Id: I9dac27dc8b6b95cfb0ee77e3cff18240b4ec21d6
Signed-off-by: Todd Foggoa (tfoggoa) <tfoggoa@cisco.com>
vnet/vnet/devices/dpdk/init.c

index 64c44dd..35285b8 100644 (file)
@@ -974,6 +974,7 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input)
   u8 no_pci = 0;
   u8 no_huge = 0;
   u8 huge_dir = 0;
+  u8 dump_physmem = 0;
   u8 file_prefix = 0;
   u8 * socket_mem = 0;
 
@@ -1040,6 +1041,8 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input)
       }
 #endif
 
+      else if (unformat (input, "dump-physmem"))
+        dump_physmem = 1;
       else if (unformat (input, "num-mbufs %d", &dm->num_mbufs))
         ;
       else if (unformat (input, "max-tx-queues %d", &dm->max_tx_queues))
@@ -1422,6 +1425,16 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input)
     dm->eal_init_args_str = format(dm->eal_init_args_str, "%s ",
                                    dm->eal_init_args[i]);
 
+  if (CLIB_DEBUG > 0)
+    {
+      int ix;
+
+      clib_warning ("DPDK eal init args:\n");
+      for (ix=0; ix<vec_len(dm->eal_init_args); ix++) {
+        clib_warning ("    %s\n", dm->eal_init_args[ix]);
+      }
+    }
+
   ret = rte_eal_init(vec_len(dm->eal_init_args), (char **) dm->eal_init_args);
 
   /* lazy umount hugepages */
@@ -1430,6 +1443,12 @@ dpdk_config (vlib_main_t * vm, unformat_input_t * input)
   if (ret < 0)
     return clib_error_return (0, "rte_eal_init returned %d", ret);
 
+  /* Dump the physical memory layout prior to creating the mbuf_pool */
+  if (dump_physmem) {
+    fprintf(stdout, "DPDK physical memory layout:\n");
+    rte_dump_physmem_layout(stdout);
+  }
+
   /* main thread 1st */
   error = vlib_buffer_pool_create(vm, dm->num_mbufs, MBUF_SIZE, rte_socket_id());
   if (error)