目的:
介绍如何解决在FWA-40H2等海光平台上运行dpdk testpmd报错“IO_PAGE_FAULT”的问题
目标读者:
研华技术人员
海光平台用户
适用产品:
FWA-40H2/FWA-60H2等会使用dpdk的海光平台产品
内容:
在FWA-40H2上搭配GID CentOS 7.9, 运行dpdk testpmd提示如下错误,导致网口无法up起来:
与海光确认,可通过以下方式解决:
1、通过grug传递内核参数“iommu=pt”(最优方式)
cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.10.0-1160.25.1.el7.x86_64 root=UUID=0d98011d-f9b0-4cb9-b0de-dac16af9cf2c ro console=ttyS0,115200n8 console=tty0 biosdevname=0 net.ifnames=0 modprobe.blacklist=ipmi_ssif,qat_c62x,qat_dh895xcc,qat_c3xxx,intel_qat,i2c-ismt consoleblank=0 intel_idle.max_cstate=0 intel_pstate=disable apparmor=0 printk.devkmsg=on initcall_blacklist=vmd_drv_init isolcpus=1,2,3,4,5,6,7,8,9 default_hugepagesz=1G hugepagesz=1G hugepages=10 iommu=pt
2、通过grub传递内核参数“amd_iommu=off”
3、BIOS关闭iommu
如下是海光针对此问题的说明:
1、iommu 开启时出现AMD-vi 报"IO_PAGE_FAULT"的问题,源于 kernel 对 ZEN 架构支持的缺陷,此现象偶发,社区在高版本对此进行了修复且高版本内核默认iommu=pt,但并没有低版本 back-ported,对此的解决方案为BIOS下关闭 iommu 或 BIOS开启iommu后在系统中添加内核参数 iommu=pt
2、一般情况下,iommu=pt 对比 amd_iommu=off 或BIOS直接关闭IOMMU是会有利于 kvm/dpdk/spdk 等的性能测试。
此次遇到的问题是在GID CentOS 7.9上发生的,且BIOS默认打开了IOMMU;
如果搭配的OS使用了较高的kernel版本,或默认将iommu设置为pt,则不会有这个问题。
另外,有其他产品部的海光产品在跑客户的SDK时会遇到类似问题,同样可以通过修改BIOS或OS的IOMMU设定解决。
Comments
0 comments
Please sign in to leave a comment.