仅对英特尔可见 — GUID: idk1571194744555
Ixiasoft
1. 关于本文档
2. 系统要求
3. 硬件安装
4. 安装OPAE软件
5. OPAE工具
6. 样例测试:本地环回(Native Loopback)
7. 安装Intel XL710驱动程序
8. 配置以太网接口
9. 使用Data Plane Development Kit (DPDK)测试网络环回
10. 正常关机
11. 单粒子翻转(Single Event Upset (SEU))
12. Intel Acceleration Stack用户指南: Intel® FPGA PAC N3000的文档修订历史
A. 故障排除
B. 通过BMC的Production版本和 Intel® Arria® 10映像对 Intel® FPGA PAC N3000进行升级
C. 配置4.19 Kernel
D. fpgabist样例输出
仅对英特尔可见 — GUID: idk1571194744555
Ixiasoft
11.2. SEU的DPDK处理
当出现SEU错误时,在DPDK IFPGA Rawdev驱动程序(支持FPGA管理)中生成一个中断。中断处理程序在文件$RTE_SDK/drivers/raw/ifpga/ifpga_rawdev.c中定义为:
static void fme_interrupt_handler(void *param) { struct opae_manager *mgr = (struct opae_manager *)param; IFPGA_RAWDEV_PMD_INFO("%s interrupt occurred\n", __func__); fme_err_handle_error0(mgr); fme_err_handle_nonfaterror(mgr); fme_err_handle_catfatal_error(mgr); }
函数fme_err_handle_catfatal_error(mgr)通过rte_panic()功能调用引起恐慌来处理SEU错误。此中断处理程序的实现作为参考代码提供,可以自定义。
当发生SEU事件时,使用以下命令在运行DPDK应用程序时会收到一个恐慌(panic)消息:
$ sudo ./x86_64-native-linuxapp-gcc/app/testpmd -l 0,1,2,3,4,5,6,7 -n 4 \ --vdev 'ifpga_rawdev_cfg0,ifpga=15:00.0,port=0' -- -i --no-numa
图 25. 恐慌消息(Panic Message)
要从由参考SEU事件中断处理程序引起的SEU恐慌中恢复,请执行以下步骤:
- 从vfio驱动程序解除绑定:
sudo rmmod vfio-pci
- 重新绑定到OPAE驱动程序:
modprobe intel-fpga-pci echo 0000:BB:DD.F > /sys/bus/pci/drivers/intel-fpga-pci/bind
- 重新配置FPGA:
- 解压缩N3000_supplemental_files.zip,此zip文件作为Acceleration Stack Installer的一部分提供:
$ unzip N3000_supplemental_files.zip
$ cd N3000_supplemental_files/
- 查找PCIe Root Port:
$ chmod +x find_RP.sh
样例输出:0000:ae:00.0 0000:af:00.0 0000:b0:09.0 0000:b2:00.0 -> intel-fpga-dev.0
列表中的第一个条目是PCIe Root端口。最后一个条目是 Intel® FPGA PAC N3000。 - 记录RP AER值:
$ sudo setpci -s ae:00.0 ECAP_AER+0x08.L 00210000
$ sudo setpci -s ae:00.0 ECAP_AER+0x14.L 000031c1
注: AER值可能与上述响应不同。 - 禁止AER:
$ sudo setpci -s <RP BDF> ECAP_AER+0x08.L=0xffffffff
$ sudo setpci -s <RP BDF> ECAP_AER+0x14.L=0xffffffff
- 触发重配置FPGA:
$ sudo rsu fpga b2:00.0
- 使能AER,使用从步骤3b得到的值:
$ sudo setpci -s <RP BDF> ECAP_AER+0x08.L=0x00210000
$ sudo setpci -s <RP BDF> ECAP_AER+0x14.L=0x000031c1
- 解压缩N3000_supplemental_files.zip,此zip文件作为Acceleration Stack Installer的一部分提供:
- 安装vfio-pci驱动程序。
$ sudo modprobe vfio-pci
- 将所有端口绑定到vfio-pci驱动程序,重新启动DPDK应用程序。