dpdk Segmentation fault
时间: 2024-01-12 11:22:11 浏览: 41
根据提供的引用内容,dpdk Segmentation fault 错误可能有以下两个原因:
1. rte_eth_dev_allocate 函数分配 ethdev 结构时,关联的 struct rte_eth_dev_data 数据指针没有被正确清零,导致出现 Segmentation fault 错误。解决方法是在初始化时,确保将 rte_eth_dev_data 数据结构清零。
2. 在 virtio 驱动的 rte_pci_driver 结构中没有设置标志,导致无法识别到接口未绑定到 dpdk 支持的驱动中。常见的物理网卡如 igb、ixgbe、i40e 都设置了这个标志,所以不会出现这个问题。解决方法是在 virtio 驱动的 rte_pci_driver 结构中设置相应的标志。
以下是一个可能的解决方案示例:
```c
// 清零rte_eth_dev_data数据结构
memset(rte_eth_devices, 0, sizeof(struct rte_eth_dev_data) * RTE_MAX_ETHPORTS);
// 设置virtio驱动的标志
struct rte_pci_driver virtio_driver = {
.driver = {
.name = "rte_virtio_pmd",
},
.id_table = pci_id_virtio_map,
.drv_flags = RTE_PCI_DRV_INTR_LSC | RTE_PCI_DRV_INTR_RMV,
// 设置其他参数
};
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)