DPDK库崩溃总是指向相同的代码堆栈-eal_intr_handle_interrupts

时间:2019-06-18 14:11:39

标签: debugging gdb dpdk

当DPDK库崩溃时,DPDK应用程序转储的核心始终指向下面的回溯。我有一个多核应用程序。

0  0x00007f22bf35a483 in epoll_wait () from /lib64/libc.so.6
1  0x00007f22bf903de4 in eal_intr_handle_interrupts (totalfds=<optimized out>, pfd=10) at /root/akshay/dpdk-stable-17.11.1/lib/librte_eal/linuxapp/eal/eal_interrupts.c:779
2  eal_intr_thread_main (arg=<optimized out>) at /root/akshay/dpdk-stable-17.11.1/lib/librte_eal/linuxapp/eal/eal_interrupts.c:863
3  0x00007f22bea2fdd5 in start_thread () from /lib64/libpthread.so.0
4  0x00007f22bf359ead in clone () from /lib64/libc.so.6

主要是当崩溃在任何PMD驱动程序代码内时发生的。当我使用GDB启动DPDK应用程序时,我可以看到正确的后退轨迹和崩溃点。在我的情况下是哪个

0  ixgbe_xmit_pkts (tx_queue=0x0, tx_pkts=0x7f17fc9dd398, nb_pkts=1) at /root/subh/dpdk-stable-17.11.1/drivers/net/ixgbe/ixgbe_rxtx.c:69
1  0x00007f1806e3d3be in rte_eth_tx_burst (port_id=0, queue_id=0, tx_pkts=0x7f17fc9dd398, nb_pkts=1) at /root/subh/dpdk-stable-17.11.1/x86_64-native-linuxapp-gcc/include/rte_ethdev.h:3173
2  0x00007f1806e3d415 in rte_eth_tx_buffer_flush (port_id=0, queue_id=0, buffer=0x7f17fc9dd380) at /root/subh/dpdk-stable-17.11.1/x86_64-native-linuxapp-gcc/include/rte_ethdev.h:3356
3  0x00007f1806e3e579 in rte_eth_tx_buffer (tx_pkt=0x7f1802c3eec0, buffer=0x7f17fc9dd380, queue_id=0, port_id=0) at /root/subh/dpdk-stable-17.11.1/x86_64-native-linuxapp-gcc/include/rte_ethdev.h:3406

如果DPDK库崩溃,我们如何确保正确的核心转储发生。

如果我们禁用EAL中断线程而不创建它,将会发生什么。我们甚至可以选择不创建安全中断处理线程。

0 个答案:

没有答案