[dpdk-users] segfault with dpdk 16.07 in rte_mempool_populate_phys

martin_curran-gray at keysight.com martin_curran-gray at keysight.com
Fri Aug 19 10:28:21 CEST 2016


Hi Shreyansh,

Thanks for your reply, 

Hmmm, I had wondered if the debug output from 16.7 was reduced compared to 2.2.0, but perhaps this is what I should have been concentrating on, rather than the core later


On a vm running our app using 2.2.0 at startup, I see:

dpdk: In dpdk_init_eal core_mask is  79, master_core_id  is 0
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 0 on socket 0
EAL: Detected lcore 2 as core 0 on socket 0
EAL: Detected lcore 3 as core 0 on socket 0
EAL: Detected lcore 4 as core 0 on socket 0
EAL: Detected lcore 5 as core 0 on socket 0
EAL: Detected lcore 6 as core 0 on socket 0
EAL: Support maximum 32 logical core(s) by configuration.
EAL: Detected 7 lcore(s)
EAL: Setting up physically contiguous memory...
EAL: Ask a virtual area of 0x40000000 bytes
EAL: Virtual area found at 0x7f2735600000 (size = 0x40000000)
EAL: Requesting 512 pages of size 2MB from socket 0
EAL: TSC frequency is ~2094950 KHz
EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !
EAL: Master lcore 0 is ready (tid=9a11c720;cpuset=[0])
EAL: Failed to set thread name for interrupt handling
EAL: Cannot set name for lcore thread
EAL: Cannot set name for lcore thread
EAL: Cannot set name for lcore thread
EAL: Cannot set name for lcore thread
EAL: lcore 4 is ready (tid=33ff7700;cpuset=[4])
EAL: lcore 3 is ready (tid=349f8700;cpuset=[3])
EAL: lcore 6 is ready (tid=32bf5700;cpuset=[6])
EAL: lcore 5 is ready (tid=335f6700;cpuset=[5])
EAL: PCI device 0000:00:07.0 on NUMA socket -1
EAL:   probe driver: 8086:1521 rte_igb_pmd
EAL:   Not managed by a supported kernel driver, skipped
EAL: PCI device 0000:00:08.0 on NUMA socket -1
EAL:   probe driver: 8086:1572 rte_i40e_pmd
EAL:   PCI memory mapped at 0x7f27319f5000
EAL:   PCI memory mapped at 0x7f279a33c000
PMD: eth_i40e_dev_init(): FW 5.0 API 1.5 NVM 05.00.02 eetrack 8000224e

However on my vm running our app but with 16.7 I see much less EAL output, the other stuff is printf output I put in the dpdk code to try and figure out where it was going wrong

dpdk: In dpdk_init_eal core_mask is  79, master_core_id  is 0
EAL: Detected 7 lcore(s)
EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !

dpdk_init_memory_pools  position 1
dpdk_init_memory_pools  position 2
dpdk_init_memory_pools  position 3

  about to call ret_mempool_create

  name               Error Ind Mempool
  number             8
  element size       256
  cache size         4
  private data size  4
  mp_init            1158173360
  mp_init_arg        0
  obj_init           1158173120
  obj_init_arg       0
  socket_id          4294967295
  flags              0


 at start of rte_mempool_create
 at start of rte_mempool_populate_default
 at start of rte_mempool_populate_phys


Is this just down to a change of the debug output from within the EAL , or is something going fundamentally wrong.

There is output about the individual detected lcores, there is no output about the setting up physically contiguous memory.. etc

However if my call to rte_eal_init  hadn't worked, I shouldn't have to as far as trying to call rte_mempool_create

We check for a return of rte_eal_init of < 0 and if so, we rte_exit.

I'll have a look over the newer documentation for the debug output

Thanks

Martin




More information about the users mailing list