Hi,

My goal is to test DPDK applications running on the same server as a primary process and secondary process.

When I execute two dpdk-simple-mp processes, one as primary and other as secondary, I see them both startup with no issues.

 

# ./dpdk-simple_mp -c 0x2 -n 4 --legacy-mem --proc-type primary --

# ./dpdk-simple_mp -c 0x8 -n 4 --legacy-mem --proc-type secondary --

 

 

Now when I test our DPDK application (as primary) and same dpdk-simple-mp (as secondary) I get error “EAL: Cannot initialize tailq: RTE_FIB).

         EAL args: MyApp, -l 25,26,27,28 -n 4 –socket-mem=2048, --legacy-mem –no-telemetry –proc_type=primary

         

         # ./dpdk-simple_mp -l 24 -n 4 --legacy-mem --proc-type secondary --

 

 

When I use gdb I see that t->head is 0x0 in eal_common_tailqs.c Line 148.

(gdb) p *t

$40 = {head = 0x0, next = {tqe_next = 0x1c68c40 <rte_fib6_tailq>, tqe_prev = 0x1c67108 <rte_swx_ctl_pipeline_tailq+8>},

  name = "RTE_FIB", '\000' <repeats 24 times>}

 

I created 2 - 1G hugepages per CPU socket for each test case listed above.

 

[root@localhost ~]# /opt/dpdk/dpdk-hugepages.py -s

Node Pages Size Total

0    2     1Gb    2Gb

1    2     1Gb    2Gb

 

 

The dpdk-simple_mp execution output is shown below:

[root@localhost ~]# ./dpdk-simple_mp -l 24 -n 4 --legacy-mem --huge-dir /dev/mnt/huge --proc-type secondary --

EAL: Detected CPU lcores: 128

EAL: Detected NUMA nodes: 2

EAL: Static memory layout is selected, amount of reserved memory can be adjusted with -m or --socket-mem

EAL: Detected static linkage of DPDK

EAL: Multi-process socket /var/run/dpdk/rte/mp_socket_18349_8160ff395b1

EAL: Selected IOVA mode 'PA'

EAL: WARNING: Address Space Layout Randomization (ASLR) is enabled in the kernel.

EAL:    This may cause issues with mapping memory into secondary processes

EAL: Cannot initialize tailq: RTE_FIB

Tailq 0: qname:<RTE_DIST_BURST>, tqh_first:(nil), tqh_last:0x100004490

Tailq 1: qname:<RTE_DISTRIBUTOR>, tqh_first:(nil), tqh_last:0x1000044c0

Tailq 2: qname:<RTE_REORDER>, tqh_first:(nil), tqh_last:0x1000044f0

Tailq 3: qname:<RTE_IPSEC_SAD>, tqh_first:(nil), tqh_last:0x100004520

Tailq 4: qname:<RTE_SWX_IPSEC>, tqh_first:(nil), tqh_last:0x100004550

Tailq 5: qname:<RTE_SWX_PIPELINE>, tqh_first:(nil), tqh_last:0x100004580

Tailq 6: qname:<RTE_SWX_CTL_PIPELINE>, tqh_first:(nil), tqh_last:0x1000045b0

Tailq 7: qname:<RTE_HASH>, tqh_first:0x1bfd9f140, tqh_last:0x1bf6f4240

Tailq 8: qname:<RTE_FBK_HASH>, tqh_first:(nil), tqh_last:0x100004610

Tailq 9: qname:<RTE_THASH>, tqh_first:(nil), tqh_last:0x100004640

Tailq 10: qname:<RTE_LPM>, tqh_first:(nil), tqh_last:0x100004670

Tailq 11: qname:<RTE_LPM6>, tqh_first:(nil), tqh_last:0x1000046a0

Tailq 12: qname:<RTE_ACL>, tqh_first:(nil), tqh_last:0x1000046d0

Tailq 13: qname:<RTE_MEMPOOL>, tqh_first:0x1bf282000, tqh_last:0x1bf282000

Tailq 14: qname:<RTE_RING>, tqh_first:0x1bfdc79c0, tqh_last:0x14f261ac0

Tailq 15: qname:<RTE_MBUF_DYNFIELD>, tqh_first:0x14f871680, tqh_last:0x14f870cc0

Tailq 16: qname:<RTE_MBUF_DYNFLAG>, tqh_first:0x14f871080, tqh_last:0x14f871080

Tailq 17: qname:<UIO_RESOURCE_LIST>, tqh_first:0x1bfffce00, tqh_last:0x1bf939e40

Tailq 18: qname:<VFIO_RESOURCE_LIST>, tqh_first:(nil), tqh_last:0x1000047f0

Tailq 19: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 20: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 21: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 22: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 23: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 24: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 25: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 26: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 27: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 28: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 29: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 30: qname:<>, tqh_first:(nil), tqh_last:(nil)

Tailq 31: qname:<>, tqh_first:(nil), tqh_last:(nil)

EAL: Cannot init tail queues for objects

EAL: Error - exiting with code: 1

Cannot init EAL

 

How do I resolve this issue?

 

Thanks,

Ed