【发布时间】:2019-01-16 21:15:27
【问题描述】:
我正在使用 Mellanox ConnectX-5 100G 开发 DPDK 程序。
我的程序启动了 N 个 worker(每个内核一个),每个 worker 处理自己专用的 TX 和 RX 队列,因此我需要设置 N 个 TX 和 N RX 队列。
我正在使用 flow director 和 rte_flow API 将入口流量发送到不同的队列。
对于每个 RX 队列,我创建一个 mbuf 池:
n = 262144
cache size = 512
priv_size = 0
data_room_size = RTE_MBUF_DEFAULT_BUF_SIZE
对于 Nrte_eth_dev_start 返回:
Unknown error -12
以及以下日志消息:
net_mlx5: port 0 Tx queue 0 QP creation failure
net_mlx5: port 0 Tx queue allocation failed: Cannot allocate memory
我试过了:
- 增加 Hugepages 的数量(最多 64x1G)
- 以不同方式更改池大小
- DPDK 18.05 和 18.11
- 将 TX/RX 描述符的数量从 32768 更改为 16384
但没有成功。
你可以看到我的 port_init 函数here(对于 DPDK 18.11)。
感谢您的帮助!
【问题讨论】:
标签: networking dpdk mellanox