Bug #42861
openLibceph-common.so needs to use private link attribute when including dpdk static library
0%
Description
Libceph-common.so does not specify a link attribute containing the dpdk library,
dpdk global variables and functions will have a copy in libceph-common.so and the application.
It will cause the dpdk initialization to be abnormal:
EAL: No available hugepages reported in hugepages-32768kB
EAL: No available hugepages reported in hugepages-64kB
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: VFIO support initialized
[New Thread 0xffffb339dad0 (LWP 653944)]
[New Thread 0xffffb2b9cad0 (LWP 653945)]
EAL: Error - exiting with code: 1
Cause: No Ethernet ports - bye
$16 = (struct vfio_config (*)[64]) 0xffffbf589700 <vfio_cfgs>
(gdb) p *vfio_cfgs
$17 = {vfio_enabled = 1, vfio_container_fd = 9, vfio_active_groups = 0, vfio_iommu_type = 0x0, vfio_groups = {{group_num = -1,
fd = -1, devices = 0} <repeats 64 times>}, mem_maps = {lock = {sl = {locked = 0}, user = -1, count = 0}, n_maps = 0,
maps = {{addr = 0, iova = 0, len = 0} <repeats 256 times>}}}
(gdb) c
Continuing.
[New Thread 0xffffb339dad0 (LWP 653241)]
[New Thread 0xffffb2b9cad0 (LWP 653242)]
[Switching to Thread 0xffffb339dad0 (LWP 653241)]
Thread 6 "msgr-worker-0" hit Breakpoint 7, rte_exit (exit_code=1, format=0xffffb71afb38 "No Ethernet ports - bye\n")
at /home/chunsong/ceph/src/spdk/dpdk/lib/librte_eal/linux/eal/eal_debug.c:71
71 {
(gdb) p vfio_cfgs
$18 = {vfio_enabled = 0, vfio_container_fd = 0, vfio_active_groups = 0, vfio_iommu_type = 0x0, vfio_groups = {{group_num = 0,
fd = 0, devices = 0} <repeats 64 times>}, mem_maps = {lock = {sl = {locked = 0}, user = 0, count = 0}, n_maps = 0,
maps = {{addr = 0, iova = 0, len = 0} <repeats 256 times>}}}
(gdb) p &vfio_cfgs
$19 = (struct vfio_config ()[64]) 0xaaaaaad22220 <vfio_cfgs>
(gdb) info breakpoints
Num Type Disp Enb Address What
1 hw watchpoint keep y vfio_cfgs0.vfio_enabled
2 breakpoint keep y <MULTIPLE>
breakpoint already hit 1 time
2.1 y 0x0000aaaaaab98398 in rte_vfio_enable
at /home/chunsong/ceph/src/spdk/dpdk/lib/librte_eal/linux/eal/eal_vfio.c:961
2.2 y 0x0000ffffb7050680 in rte_vfio_enable
at /home/chunsong/ceph/src/spdk/dpdk/lib/librte_eal/linux/eal/eal_vfio.c:961
3 breakpoint keep y <MULTIPLE>
3.1 y 0x0000aaaaaab98550 in rte_vfio_enable
at /home/chunsong/ceph/src/spdk/dpdk/lib/librte_eal/linux/eal/eal_vfio.c:1008
3.2 y 0x0000ffffb7050838 in rte_vfio_enable
at /home/chunsong/ceph/src/spdk/dpdk/lib/librte_eal/linux/eal/eal_vfio.c:1008
Files