dpdk mempool debug

common_ring_alloc
[root@localhost mp_ring]# gdb build/app/test_ring
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-119.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "aarch64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /data1/dpdk-19.11/demo/mp_ring/build/app/test_ring...done.
(gdb) set args -c 0x1f
(gdb) b mempool_add_elem
Breakpoint 1 at 0x584adc: file /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c, line 152.
(gdb) b common_ring_alloc
Breakpoint 2 at 0x589570: file /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c, line 52.
(gdb) b common_ring_free
Breakpoint 3 at 0x589694: file /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c, line 88.
(gdb) b common_ring_mp_enqueue
Breakpoint 4 at 0x587ee0: file /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c, line 16.
(gdb) b common_ring_mc_dequeue
Breakpoint 5 at 0x588a34: file /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c, line 31.
(gdb) r
Starting program: /data1/dpdk-19.11/demo/mp_ring/build/app/test_ring -c 0x1f
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
EAL: Detected 128 lcore(s)
EAL: Detected 4 NUMA nodes
[New Thread 0xffffbe43d910 (LWP 45024)]
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
[New Thread 0xffffbdc2d910 (LWP 45025)]
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-2048kB
EAL: Probing VFIO support...
[New Thread 0xffffbd40d910 (LWP 45026)]
[New Thread 0xffffbcbfd910 (LWP 45027)]
[New Thread 0xffffbc3ed910 (LWP 45028)]
[New Thread 0xffffbbbdd910 (LWP 45029)]
EAL: PCI device 0000:05:00.0 on NUMA socket 0
EAL:   probe driver: 19e5:200 net_hinic
net_hinic: Initializing pf hinic-0000:05:00.0 in primary process
net_hinic: Device 0000:05:00.0 hwif attribute:
net_hinic: func_idx:0, p2p_idx:0, pciintf_idx:0, vf_in_pf:0, ppf_idx:0, global_vf_id:15, func_type:2
net_hinic: num_aeqs:4, num_ceqs:4, num_irqs:32, dma_attr:2
net_hinic: Get public resource capability:
net_hinic: host_id: 0x0, ep_id: 0x0, intr_type: 0x0, max_cos_id: 0x7, er_id: 0x0, port_id: 0x0
net_hinic: host_total_function: 0xf2, host_oq_id_mask_val: 0x8, max_vf: 0x78
net_hinic: pf_num: 0x2, pf_id_start: 0x0, vf_num: 0xf0, vf_id_start: 0x10
net_hinic: Get share resource capability:
net_hinic: host_pctxs: 0x0, host_cctxs: 0x0, host_scqs: 0x0, host_srqs: 0x0, host_mpts: 0x0
net_hinic: Get l2nic resource capability:
net_hinic: max_sqs: 0x10, max_rqs: 0x10, vf_max_sqs: 0x4, vf_max_rqs: 0x4

Breakpoint 2, common_ring_alloc (mp=0x13febd600)
    at /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c:52
52              int rg_flags = 0, ret;
(gdb) bt
#0  common_ring_alloc (mp=0x13febd600)
    at /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c:52
#1  0x0000000000586c34 in rte_mempool_ops_alloc (mp=0x13febd600)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool_ops.c:78
#2  0x0000000000584f04 in mempool_ops_alloc_once (mp=0x13febd600)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:288
#3  0x00000000005853e4 in rte_mempool_populate_default (mp=0x13febd600)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:467
#4  0x0000000000545258 in rte_pktmbuf_pool_create_by_ops (
    name=0x13ff9a7a0 "hinic-0000:05:00.0", n=128, cache_size=0, 
    priv_size=0, data_room_size=4096, socket_id=0, ops_name=0x0)
    at /data1/dpdk-19.11/lib/librte_mbuf/rte_mbuf.c:150
#5  0x00000000005452f4 in rte_pktmbuf_pool_create (
    name=0x13ff9a7a0 "hinic-0000:05:00.0", n=128, cache_size=0, 
    priv_size=0, data_room_size=4096, socket_id=0)
    at /data1/dpdk-19.11/lib/librte_mbuf/rte_mbuf.c:168
#6  0x000000000078308c in hinic_copy_mempool_init (nic_dev=0x13ff9a500)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:2572
#7  0x0000000000783710 in hinic_nic_dev_create (
---Type <return> to continue, or q <return> to quit---
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:2755
#8  0x0000000000783b94 in hinic_func_init (
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3009
#9  0x0000000000783f5c in hinic_dev_init (
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3105
#10 0x000000000077e1c8 in rte_eth_dev_pci_generic_probe (
    pci_dev=0x116eac0, private_data_size=1320, 
    dev_init=0x783e78 <hinic_dev_init>)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_ethdev_pci.h:164
#11 0x0000000000784028 in hinic_pci_probe (
    pci_drv=0xe23260 <rte_hinic_pmd>, pci_dev=0x116eac0)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3147
#12 0x00000000005d9eec in rte_pci_probe_one_driver (
    dr=0xe23260 <rte_hinic_pmd>, dev=0x116eac0)
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:199
---Type <return> to continue, or q <return> to quit---
#13 0x00000000005da0e4 in pci_probe_all_drivers (dev=0x116eac0)
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:274
#14 0x00000000005da1b0 in rte_pci_probe ()
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:309
#15 0x00000000005a77b8 in rte_bus_probe ()
    at /data1/dpdk-19.11/lib/librte_eal/common/eal_common_bus.c:72
#16 0x000000000058cb78 in rte_eal_init (argc=3, argv=0xfffffffff528)
    at /data1/dpdk-19.11/lib/librte_eal/linux/eal/eal.c:1258
#17 0x0000000000466f70 in main (argc=3, argv=0xfffffffff528)
    at /data1/dpdk-19.11/demo/mp_ring/main.c:75

rte_mempool_populate_default(struct rte_mempool *mp)

 

common_ring_mp_enqueue
rte_mempool_op_populate_helper
                obj = va + off;
                obj_cb(mp, obj_cb_arg, obj,
                       (iova == RTE_BAD_IOVA) ? RTE_BAD_IOVA : (iova + off));
                rte_mempool_ops_enqueue_bulk(mp, &obj, 1);
(gdb) c
Continuing.

Breakpoint 4, common_ring_mp_enqueue (mp=0x13febd600, 
    obj_table=0xffffffffec88, n=1)
    at /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c:16
16              return rte_ring_mp_enqueue_bulk(mp->pool_data,
(gdb) bt
#0  common_ring_mp_enqueue (mp=0x13febd600, obj_table=0xffffffffec88, n=1)
    at /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c:16
#1  0x0000000000586fc8 in rte_mempool_ops_enqueue_bulk (mp=0x13febd600, 
    obj_table=0xffffffffec88, n=1)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_mempool.h:786
#2  0x000000000058749c in rte_mempool_op_populate_helper (mp=0x13febd600, 
    flags=0, max_objs=128, vaddr=0x13fdf2e00, iova=238905404928, 
    len=577920, obj_cb=0x584ac8 <mempool_add_elem>, obj_cb_arg=0x0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool_ops_default.c:130
#3  0x00000000005870f0 in rte_mempool_op_populate_default (mp=0x13febd600, 
    max_objs=128, vaddr=0x13fdf2e00, iova=238905404928, len=577920, 
    obj_cb=0x584ac8 <mempool_add_elem>, obj_cb_arg=0x0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool_ops_default.c:143
#4  0x0000000000586d9c in rte_mempool_ops_populate (mp=0x13febd600, 
    max_objs=128, vaddr=0x13fdf2e00, iova=238905404928, len=577920, 
    obj_cb=0x584ac8 <mempool_add_elem>, obj_cb_arg=0x0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool_ops.c:134
#5  0x00000000005850d8 in rte_mempool_populate_iova (mp=0x13febd600, 
---Type <return> to continue, or q <return> to quit---
    vaddr=0x13fdf2e00 "", iova=238905404928, len=577920, 
    free_cb=0x584d9c <rte_mempool_memchunk_mz_free>, opaque=0x1000127f0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:339
#6  0x0000000000585348 in rte_mempool_populate_virt (mp=0x13febd600, 
    addr=0x13fdf2e00 "", len=577920, pg_sz=536870912, 
    free_cb=0x584d9c <rte_mempool_memchunk_mz_free>, opaque=0x1000127f0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:409
#7  0x0000000000585668 in rte_mempool_populate_default (mp=0x13febd600)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:580
#8  0x0000000000545258 in rte_pktmbuf_pool_create_by_ops (
    name=0x13ff9a7a0 "hinic-0000:05:00.0", n=128, cache_size=0, 
    priv_size=0, data_room_size=4096, socket_id=0, ops_name=0x0)
    at /data1/dpdk-19.11/lib/librte_mbuf/rte_mbuf.c:150
#9  0x00000000005452f4 in rte_pktmbuf_pool_create (
    name=0x13ff9a7a0 "hinic-0000:05:00.0", n=128, cache_size=0, 
    priv_size=0, data_room_size=4096, socket_id=0)
    at /data1/dpdk-19.11/lib/librte_mbuf/rte_mbuf.c:168
#10 0x000000000078308c in hinic_copy_mempool_init (nic_dev=0x13ff9a500)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:2572
---Type <return> to continue, or q <return> to quit---
#11 0x0000000000783710 in hinic_nic_dev_create (
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:2755
#12 0x0000000000783b94 in hinic_func_init (
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3009
#13 0x0000000000783f5c in hinic_dev_init (
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3105
#14 0x000000000077e1c8 in rte_eth_dev_pci_generic_probe (
    pci_dev=0x116eac0, private_data_size=1320, 
    dev_init=0x783e78 <hinic_dev_init>)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_ethdev_pci.h:164
#15 0x0000000000784028 in hinic_pci_probe (
    pci_drv=0xe23260 <rte_hinic_pmd>, pci_dev=0x116eac0)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3147
#16 0x00000000005d9eec in rte_pci_probe_one_driver (
    dr=0xe23260 <rte_hinic_pmd>, dev=0x116eac0)
---Type <return> to continue, or q <return> to quit---
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:199
#17 0x00000000005da0e4 in pci_probe_all_drivers (dev=0x116eac0)
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:274
#18 0x00000000005da1b0 in rte_pci_probe ()
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:309
#19 0x00000000005a77b8 in rte_bus_probe ()
    at /data1/dpdk-19.11/lib/librte_eal/common/eal_common_bus.c:72
#20 0x000000000058cb78 in rte_eal_init (argc=3, argv=0xfffffffff528)
    at /data1/dpdk-19.11/lib/librte_eal/linux/eal/eal.c:1258
#21 0x0000000000466f70 in main (argc=3, argv=0xfffffffff528)
    at /data1/dpdk-19.11/demo/mp_ring/main.c:75
(gdb) 
(gdb)
mempool_add_elem
Breakpoint 1, mempool_add_elem (mp=0x13febd600, opaque=0x0, 
    obj=0x13fdf4000, iova=238905409536)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:152
152             hdr = RTE_PTR_SUB(obj, sizeof(*hdr));
(gdb) bt
#0  mempool_add_elem (mp=0x13febd600, opaque=0x0, obj=0x13fdf4000, 
    iova=238905409536)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:152
#1  0x000000000058748c in rte_mempool_op_populate_helper (mp=0x13febd600, 
    flags=0, max_objs=128, vaddr=0x13fdf2e00, iova=238905404928, 
    len=577920, obj_cb=0x584ac8 <mempool_add_elem>, obj_cb_arg=0x0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool_ops_default.c:128
#2  0x00000000005870f0 in rte_mempool_op_populate_default (mp=0x13febd600, 
    max_objs=128, vaddr=0x13fdf2e00, iova=238905404928, len=577920, 
    obj_cb=0x584ac8 <mempool_add_elem>, obj_cb_arg=0x0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool_ops_default.c:143
#3  0x0000000000586d9c in rte_mempool_ops_populate (mp=0x13febd600, 
    max_objs=128, vaddr=0x13fdf2e00, iova=238905404928, len=577920, 
    obj_cb=0x584ac8 <mempool_add_elem>, obj_cb_arg=0x0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool_ops.c:134
#4  0x00000000005850d8 in rte_mempool_populate_iova (mp=0x13febd600, 
    vaddr=0x13fdf2e00 "", iova=238905404928, len=577920, 
    free_cb=0x584d9c <rte_mempool_memchunk_mz_free>, opaque=0x1000127f0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:339
---Type <return> to continue, or q <return> to quit---
#5  0x0000000000585348 in rte_mempool_populate_virt (mp=0x13febd600, 
    addr=0x13fdf2e00 "", len=577920, pg_sz=536870912, 
    free_cb=0x584d9c <rte_mempool_memchunk_mz_free>, opaque=0x1000127f0)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:409
#6  0x0000000000585668 in rte_mempool_populate_default (mp=0x13febd600)
    at /data1/dpdk-19.11/lib/librte_mempool/rte_mempool.c:580
#7  0x0000000000545258 in rte_pktmbuf_pool_create_by_ops (
    name=0x13ff9a7a0 "hinic-0000:05:00.0", n=128, cache_size=0, 
    priv_size=0, data_room_size=4096, socket_id=0, ops_name=0x0)
    at /data1/dpdk-19.11/lib/librte_mbuf/rte_mbuf.c:150
#8  0x00000000005452f4 in rte_pktmbuf_pool_create (
    name=0x13ff9a7a0 "hinic-0000:05:00.0", n=128, cache_size=0, 
    priv_size=0, data_room_size=4096, socket_id=0)
    at /data1/dpdk-19.11/lib/librte_mbuf/rte_mbuf.c:168
#9  0x000000000078308c in hinic_copy_mempool_init (nic_dev=0x13ff9a500)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:2572
#10 0x0000000000783710 in hinic_nic_dev_create (
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:2755
---Type <return> to continue, or q <return> to quit---
#11 0x0000000000783b94 in hinic_func_init (
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3009
#12 0x0000000000783f5c in hinic_dev_init (
    eth_dev=0x1001780 <rte_eth_devices>)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3105
#13 0x000000000077e1c8 in rte_eth_dev_pci_generic_probe (
    pci_dev=0x116eac0, private_data_size=1320, 
    dev_init=0x783e78 <hinic_dev_init>)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_ethdev_pci.h:164
#14 0x0000000000784028 in hinic_pci_probe (
    pci_drv=0xe23260 <rte_hinic_pmd>, pci_dev=0x116eac0)
    at /data1/dpdk-19.11/drivers/net/hinic/hinic_pmd_ethdev.c:3147
#15 0x00000000005d9eec in rte_pci_probe_one_driver (
    dr=0xe23260 <rte_hinic_pmd>, dev=0x116eac0)
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:199
#16 0x00000000005da0e4 in pci_probe_all_drivers (dev=0x116eac0)
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:274
---Type <return> to continue, or q <return> to quit---
#17 0x00000000005da1b0 in rte_pci_probe ()
    at /data1/dpdk-19.11/drivers/bus/pci/pci_common.c:309
#18 0x00000000005a77b8 in rte_bus_probe ()
    at /data1/dpdk-19.11/lib/librte_eal/common/eal_common_bus.c:72
#19 0x000000000058cb78 in rte_eal_init (argc=3, argv=0xfffffffff528)
    at /data1/dpdk-19.11/lib/librte_eal/linux/eal/eal.c:1258
#20 0x0000000000466f70 in main (argc=3, argv=0xfffffffff528)
    at /data1/dpdk-19.11/demo/mp_ring/main.c:75
common_ring_mc_dequeue 
(gdb) bt
#0  common_ring_mc_dequeue (mp=0x13faeac80, obj_table=0x13faead90, n=33)
    at /data1/dpdk-19.11/drivers/mempool/ring/rte_mempool_ring.c:31
#1  0x0000000000464e04 in rte_mempool_ops_dequeue_bulk (mp=0x13faeac80, 
    obj_table=0x13faead90, n=33)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_mempool.h:739
#2  0x0000000000465e18 in __mempool_generic_get (cache=0x13faead80, n=1, 
    obj_table=0xfffffffff158, mp=0x13faeac80)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_mempool.h:1443
#3  rte_mempool_generic_get (cache=0x13faead80, n=1, 
    obj_table=0xfffffffff158, mp=0x13faeac80)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_mempool.h:1506
#4  rte_mempool_get_bulk (n=1, obj_table=0xfffffffff158, mp=0x13faeac80)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_mempool.h:1539
#5  rte_mempool_get (obj_p=0xfffffffff158, mp=0x13faeac80)
    at /data1/dpdk-19.11/arm64-armv8a-linuxapp-gcc/include/rte_mempool.h:156---Type <return> to continue, or q <return> to quit---
5
#6  enqueue_sample_data (ring=0x13febc200)
    at /data1/dpdk-19.11/demo/mp_ring/main.c:42
#7  0x0000000000467098 in main (argc=3, argv=0xfffffffff528)
    at /data1/dpdk-19.11/demo/mp_ring/main.c:98
原文地址:https://www.cnblogs.com/dream397/p/13668131.html