dpdk 问题排查的第一关:基础环境的排查
发布日期:2021-05-10 10:32:56 浏览次数:16 分类:精选文章

本文共 3857 字,大约阅读时间需要 12 分钟。

DPDK������������������

1. ������������������

��������������� DPDK ���������������������������������������������������������������������������������

1.1 ���������������������

���������������������������������������������������IP���������

# ���������������������������
iptables -L -n
# ������ transitional������ Rt���������������
ip6tables -L -n
# ������������������������������������������
iptables -F
ip6tables -F

1.2 ������������������������

��������������������������������� DPDK ���������

# ������������������
uname -r
# ������������������������
zcat /proc/config.gz | grep -i Linux

2. DPDK ������������������

2.1 ������ uio ������

# ������ uio ������������������
ls /sys/class/uio
# ������ uio ������������
lsmod | grep uio

2.2 ������ igb_uio ��� rte_kni ������

# ������ igb_uio ������
lsmod | grep igb_uio
# ������ rte_kni ������
lsmod | grep rte_kni
# ������������������
ls /sys/module/igb_uio
ls /sys/module/rte_kni

2.3 ��������������� igb_uio

������ dpdk-devbind.py ��������������������������������� igb_uio ���������

dpdk-devbind.py -s

2.4 ������������������

������ /dev/uioX ��������������������������� major_id���

# ������������������
ls -lh /dev/uio*
# ������ uio ������������
grep ' uio$' /proc/devices

2.5 ������ kni ������

# ������ kni ������������
ls -lh /dev/kni
# ������ kni ������������
grep 'kni$' /proc/misc

3. ������������������

3.1 ������������������������������

# ���������������������������n��m���������
cat /proc/meinfo
# ������ hugetlbfs ������������
grep 'huge' /etc/mtab

3.2 ������������������������

��������������� bigpage ������������������

# ������������
echo 1024 > /sys/kernel/mm/hugepages/hugepages-1024/nr_hugepages
# ��������������� bigpage ������
# ������ 2048 KB
echo 2 > /sys/kernel/mm/hugepages/hugepages-2048/nr_hugepages

4. ������������������

������������ dpdk-pci-list.py ���������������������

# ������������PCI������
dpdk-pci-list.py
# ���������������������PCIID
dpdk-pci-id.py 0000:04:00.0

5. ������������

���������������������������������������

#!/bin/bash
# ������������
function check_failed {
echo "$1" >&2
exit 1
}
function check_passed {
echo "[$1] check passed"
}
function check_uio_module {
local uio_major_id
uio_major_id=$(awk '/ uio$/{print $1}' /proc/devices)
if [ -z "$uio_major_id" ]; then
check_failed "uio module not loaded"
fi
check_passed "uio module loaded"
return $uio_major_id
}
function check_specified_module_loaded {
if [ -z "$1" ]; then
echo "Invalid module_name $1" >&2
return
fi
if [ -d "/sys/module/$1" ]; then
check_passed "$1 module loaded"
else
check_failed "$1 module not loaded"
fi
}
function check_uiofile {
local uiofile
local uio_major_id
if [ -z "$1" ]; then
echo "Invalid parameters $1" >&2
return 1
fi
if [ -z "$uiofile" ]; then
check_failed "/dev/uio* file not created"
fi
check_passed "/dev/uioX file exist"
for file in $uiofile; do
local major_id
major_id=$(ls -l $file 2>/dev/null | awk '{print $5}')
if [ "$major_id" != "$uio_major_id" ]; then
check_failed "$file major id $major_id invalid, should be $uio_major_id"
fi
check_passed "check $file major_id checked passed"
done
}
# ��� executable script
uio_device_major_id=$1
check_uio_module $uio_device_major_id
check_specified_module_loaded igb_uio
check_specified_module_loaded rte_kni
check_uiofile $uio_device_major_id

6. ������������������

  • ������������������������������
  • ������������������������������������
  • ������������������������������ /dev/uioX ���������������������
  • ������������������������������

7. ������������

������������������������������������������������������������������������������ DPDK ��������������������������������������������������������� DPDK ������������ ������������������������

上一篇:depmod 生成 modules.dep
下一篇:Makefile 中的 @true 与 @false 命令

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月19日 10时36分49秒