我有一个 48 核的 Linux 工作站,运行光纤接口的 ixgbe 驱动程序。我必须测试一个项目名称 网络地图在上面。
NetMap 是一个针对高速接口的高性能网络框架,最近被移植到 Linux 上。出于某些原因,我必须在机器上尝试一下。
所以我编译它并按照说明运行测试问题,但它不起作用。
我检查了 dmesg,它显示:
[10399.085736] 794.159015 netmap_set_ringid [486] ringid o4o1 set to all 48 HW RINGS
[10399.085742] 794.282011 netmap_obj_malloc [220] netmap_if request size 816 too large
我向 netmap 的作者寻求帮助。他告诉我,我的机器中的核心太多了,如果我告诉 ixgbe 使用较少的核心(2 到 4 个就可以了),它应该可以工作。
我对驱动程序开发不熟悉,也不知道如何通过向 ixgbe 驱动程序传递参数来限制环数。所以我从英特尔网站上查看了规范,但没有找到任何相关信息。所以我来这里寻求更多帮助。
谢谢。
答案1
让 netmap 与大量核心一起工作的一个快速修复方法是将此更改应用于 net/netmap/netmap_mem2.c
-#define NETMAP_IF_MAX_SIZE 256
+#define NETMAP_IF_MAX_SIZE 1024
欢呼 luigi rizzo