我在Ubuntu 16.04.2系统上设置了DPDK 17.08.01。我已经按照涉及HugePages设置的指南进行了操作。我已经设置了2048个HugePages(每个NUMA核心1024个页面),每页为2048 kB。这可以使用命令cat /proc/meminfo
:
HugePages_Total: 2048
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
我相信HugePages_Free
是0
因为我已经开始在DPDK上运行应用程序了。据我所知,他们没有问题尝试分配HugePages
。
我还附加了两个接口所需的相应驱动程序以下是usertools/dpdk-devbind.py --status
的输出:
Network devices using DPDK-compatible driver
============================================
0000:01:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=uio_pci_generic
0000:01:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' drv=igb_uio unused=uio_pci_generic
Network devices using kernel driver
===================================
0000:84:00.0 '82580 Gigabit Network Connection 150e' if=ens2f0 drv=igb unused=igb_uio,uio_pci_generic *Active*
0000:84:00.1 '82580 Gigabit Network Connection 150e' if=ens2f1 drv=igb unused=igb_uio,uio_pci_generic
0000:84:00.2 '82580 Gigabit Network Connection 150e' if=ens2f2 drv=igb unused=igb_uio,uio_pci_generic
0000:84:00.3 '82580 Gigabit Network Connection 150e' if=ens2f3 drv=igb unused=igb_uio,uio_pci_generic
我正在尝试简单的basicfwd
示例应用程序,它只是从一个端口转发到另一个端口。但是,当我输入调试语句时,我看到每个端口只有两个循环,然后应用程序挂起。我假设转发和什么应该继续,直到用户停止它。每个端口都收到两个数据包,但遗憾的是没有传输。
我理解这个问题有点模糊,并且与DPDK
设置有关,但是任何其他有关用于调试的命令的帮助,我应该检查的内容,我将不胜感激,因为我是{{{}}的初学者1}}。我还没能在网上找到任何好的诊断技巧。
答案 0 :(得分:1)
basicfwd
示例没有提供任何统计信息,所以看起来它可能会挂起,但事实上它可能会运行良好。
选项很少:
可以使用gdb --args ./basicfwd
运行应用程序并确认它接收帧,发送帧或挂起。
尝试其他示例应用程序,例如l2fwd
,它们提供一些统计信息。
还请包含日志,调试信息等信息。