dpdk 程序收发包问题排查的一般流程

dpdk 程序收发包问题排查

接口不收包问题排查

1.确认网卡类型与异常接口

2.收集 ethtool -i x/x、ifconfig x/x、ethtool x/x、ethtool -d x/x、ethtool -S x/x 信息

3.确认接口连线是否正常,接口是否 up,接口处于 down 状态不能说明收包存在异常

4.确认对端是否在发流,对端没有发流则不能说明存在异常

5.dmesg 信息中是否有下面类似的信息:

    dmar: DMAR:[DMA Read] Request device [01:00.0] fault addr 37ae5000 DMAR:[fault reason 02] Present bit in context entry is clear 

device pci 号是 dpdk 程序使用的网卡接口的 pci 号,符合这个问题的特征是从一开始就不能收包,而且是必现的,有这个前提则修改 grug.cfg 文件,内核 cmdline 中添加 intel_iommu=off 配置后重试。

6.判断 ethtool -d dump 的寄存器信息中是否有异常如控制寄存器全 F,有异常则判定为硬件问题,可绑定官方驱动进一步排查

7.判断接口的混淆模式是否开启,当接口 up 部分失败时,混淆模式不会被开启,这时网卡会丢掉没有发给自己的报文

8.使用 dpdk_proc_info 判断接口的 RX-nombuf 字段是否一直增加,当存在 mbuf 泄露时,申请 mbuf 失败则无法收包

9.多次执行 ethtool -d dump 寄存器,查看网卡 TAIL 与 HEAD 指针的变化情况,当 HEAD 值 > TAIL 值时,队列 hung 住,无法收包

10.使用 gdb dump 收包队列信息、接收描述符信息查找异常点

11.hung 住的问题需要注意问题出现的环境,是打了一段时间的流后出现的,还是杀 dpdk 程序出现的

12.确认是杀 dpdk 程序出现的则检查程序参数,打了一段时间的流后则重点排查是否异常流量导致队列 hung 住

接口不发包问题排查

1.确认网卡类型与异常接口

2.收集 ethtool -i x/x、ifconfig x/x、ethtool x/x、ethtool -d x/x、ethtool -S x/x 信息

3.确认接口连线是否正常,接口是否 up,接口处于 down 状态不能发包是正常情况

4.确认接口有流量转出,tx_drop 等字段在增加

5.dmesg 信息中是否有下面类似的信息:

    dmar: DMAR:[DMA Read] Request device [01:00.0] fault addr 37ae5000 DMAR:[fault reason 02] Present bit in context entry is clear 

device pci 号是 dpdk 程序使用的网卡接口的 pci 号,符合这个问题的特征是从一开始就不能收包,而且是必现的,有这个前提则修改 grug.conf 文件,内核 cmdline 中添加 intel_iommu=off 配置后重试。

6.判断 ethtool -d dump 的寄存器信息中是否有异常如控制寄存器全 F,有异常则判定为硬件问题,可绑定官方驱动进一步排查

9.多次执行 ethtool -d dump 寄存器,查看网卡 tx TAIL 与 HEAD 指针的变化情况,当 HEAD 值 > TAIL 值时,队列 hung 住,无法发包

10.使用 gdb dump 发包队列信息、发送描述符信息查找异常点

11.hung 住的问题需要注意问题出现的环境,是打了一段时间的流后出现的,还是杀 dpdk 程序出现的

12.确认是杀 dpdk 程序出现的则检查程序参数,打了一段时间的流后则重点排查是否异常流量导致队列 hung 住

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值