为什么 PCI Express* 的多通道 DMA FPGA IP 的 DPDK 轮询模式驱动程序无法在 CentOS 8 中安装?
由于 PCI Express 的多通道 DMA FPGA IP 的 DPDK 轮询模式驱动程序存在问题,在 CentOS 8 中安装时,您可能会观察到以下错误消息。
./include/linux/dev_printk.h:148:24: 错误:此语句可能会失败 [-Werror=implicit-fallthrough=]
dev_printk_index_wrap(_dev_notice, KERN_NOTICE, dev, dev_fmt(fmt), ##__VA_ARGS__)
^
/p0_software/dpdk/dpdk/patches/v20.05-rc1/dpdk/x86_64-native-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.c:447:3:注意:在扩展宏“dev_notice”
dev_notice(&udev->pdev->dev, “PCI INTX mask not supported\n”);
^
/home/cxl_meb/h_mcdma/p0_software/dpdk/dpdk/patches/v20.05-rc1/dpdk/x86_64-native-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.c:449:2:注意:这里
案例 RTE_INTR_MODE_NONE:
^
/p0_software/dpdk/dpdk/patches/v20.05-rc1/dpdk/drivers/vdpa/ifc/base/ifcvf.h:16: error: “VIRTIO_F_IOMMU_
#define VIRTIO_F_IOMMU_PLATFORM 33
要变通解决此问题,请 根据以下步骤修改 DPDK 轮询模式驱动程序的源代码:
- 打开 <workspace>/p0_software/dpdk/dpdk/patches/v20.05-rc1/dpdk/x86_64-native-linuxapp-gcc/build/kernel/linux/igb_uio/igb_uio.c,如果遗漏了,请在函数 ' igbuio_pci_enable_msix_interrupts' 中的每个案例中添加 'break;'。
- 打开 <workspace>/p0_software/dpdk/dpdk/patches/v20.05-rc1/dpdk/drivers/vdpa/ifc/base/ifcvf.h,注释掉 'define VIRTIO_F_IOMMU_PLATFORM 33' 。
- 保存 并 重新编译 驱动程序。