You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建DPDK 21.05时执行ninja编译卡住是什么原因?

DPDK 21.05 编译停滞在octeontx2驱动模块的原因及解决方法

核心原因

停滞对应的event_octeontx2_otx2_evdev.c是Marvell OcteonTX2系列ARM服务器的专用事件驱动模块,x86架构下默认全量编译所有驱动时,该模块编译会出现以下问题:

  • gcc 9.3.0处理该驱动的架构兼容代码时存在优化效率bug,单文件编译耗时会达到正常代码的数十倍,甚至出现编译逻辑死锁
  • 如果你使用的是低配置AWS实例(2核4G及以下规格),默认全核心并行编译时内存占满后会触发系统进程挂起,表现为编译进度长时间无变化
  • meson 0.59.0对DPDK 21.05的驱动依赖链解析存在小缺陷,偶发会出现该驱动的编译任务依赖死锁

解决方案

  • 禁用无用的ARM架构驱动:x86环境完全不需要OcteonTX2系列驱动,重新执行meson配置时添加屏蔽参数即可:
meson build -Ddisable_drivers=event/octeontx2,common/octeontx2,net/octeontx2,mempool/octeontx2

配置完成后重新执行ninja -C build即可正常完成编译

  • 低配置实例调整编译并行数:指定编译并行数避免内存耗尽,比如限制为2线程编译:
ninja -C build -j2
  • 可选优化:将meson版本降级到0.58.x,或gcc版本升级到10.x,这两个版本组合对DPDK 21.05的编译兼容性更好,可避免同类编译卡死问题

内容的提问来源于stack exchange,提问作者Kviz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 03:21:03