news 2026/10/31 11:45:06

dpdk-testpmd在超过128核双numa场景启动失败问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
dpdk-testpmd在超过128核双numa场景启动失败问题

问题描述:

dpdk-testpmd在超过128核双numa场景中,启动失败问题,问题日志如下,扫描内存的时候,无法使用numa1的内存。

...EAL:Detected lcore0as core0on socket0EAL:Detected lcore127as core215on socket0EAL:Skipped lcore128as core0on socket1EAL:Maximum logical cores by configuration:128EAL:Detected CPU lcores:128EAL:Detected NUMA nodes:1EAL:huge_pre_init setted2......EAL:Hugepage/dev/hugepages//rtemap_1 is on socket 1EAL:Hugepage/dev/hugepages//rtemap_0 is on socket 0EAL:num of reserve hugepage on socket0:1EAL:num of reserve hugepage on socket1:1EAL:num of reserve hugepage on socket2:0......EAL:Allocating1pages of size1024M on socket0EAL:Trying to obtain current memory policy.EAL:Setting policy MPOL_PREFERREDforsocket0EAL:Restoring previous memory policy:0EAL:Allocating1pages of size1024M on socket1EAL:Trying to obtain current memory policy.EAL:Setting policy MPOL_PREFERREDforsocket1EAL:eal_memalloc_alloc_seg_bulk():couldn't find suitable memseg_list EAL:Restoring previous memory policy:0EAL:FATAL:Cannot init memory EAL:Cannot init memory EAL:Error-exiting with code:1Cause:::invalid EAL arguments

原因分析:

一开始只是关注了error的log,以为是大页分配失败了,没有关注到前面的日志信息。

EAL: Setting policy MPOL_PREFERREDforsocket1EAL: eal_memalloc_alloc_seg_bulk(): couldn'tfindsuitable memseg_list

其实刚开始的日志也非常的重要,这里其实早早的就暴露了问题,dpdk-testpmd启动的时候,只探测了0-127核,跳过了128以及之后的核,最终只扫了numa0,故只能用numa0的内存。

EAL: Detected lcore0as core0on socket0EAL: Detected lcore127as core215on socket0EAL: Skipped lcore128as core0on socket1EAL: Maximum logical cores by configuration:128EAL: Detected CPU lcores:128EAL: Detected NUMA nodes:1EAL: huge_pre_init setted2

分析代码,可以看到cpu count的上限是由 RTE_MAX_LCORE决定的。而它是由config/x86/meson.build 中的 dpdk_conf.set('RTE_MAX_LCORE', 128)这个决定。

./lib/eal/common/eal_common_lcore.c

继续分析config/x86/meson.build代码,如下,可以看到通过修改编译,增加-Dmax_lcores来修改cpu数量来解决。

config/x86/meson.build

commit8ef09fdc506b76d505d90e064d1f73533388b640 Author:Juraj Linkeš<juraj.linkes@pantheon.tech>Date:Tue Aug1712:45:562021+0200build:add optional NUMA and CPU counts detection Add an option to automatically discover the host's NUMA and CPU counts and use those valuesfora non cross-build.Give users the option to override the per-archdefaultvalues or values from cross files by specifying them on the command line with-Dmax_lcores and-Dmax_numa_nodes.Signed-off-by:Juraj Linkeš<juraj.linkes@pantheon.tech>Reviewed-by:Honnappa Nagarahalli<honnappa.nagarahalli@arm.com>Reviewed-by:David Christensen<drc@linux.vnet.ibm.com>Acked-by:Bruce Richardson<bruce.richardson@intel.com>diff--git a/config/x86/meson.build b/config/x86/meson.build index704ba3db56..29f3dea181100644---a/config/x86/meson.build+++b/config/x86/meson.build @@-70,3+70,5@@elseendif dpdk_conf.set('RTE_CACHE_LINE_SIZE',64)+dpdk_conf.set('RTE_MAX_LCORE',128)+dpdk_conf.set('RTE_MAX_NUMA_NODES',32)

解决方案:

编译dpdk-testpmd的时候,增加参数-Dmax_lcores=256,如下解决。
meson build -Dmax_lcores=256

小结:

dpdk在使用的时候,还是和机型绑定在一起的,对于核数和numa数量的增加,都会影响dpdk的使用,需要进行适配。比较好的是,dpdk在开发之初,考虑到了这个问题,通过调整编译参数就可以解决。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 18:02:51

需求接口人与研发接口人的职责分别是什么

需求接口人与研发接口人是连接“业务价值”与“技术实现”的两个核心枢纽。需求接口人&#xff08;通常是产品经理或业务分析师&#xff09;的核心职责是“定义”&#xff0c;即明确“做什么”和“为什么做”&#xff0c;他们对业务价值、需求优先级和用户体验负责。研发接口人…

作者头像 李华
网站建设 2026/10/30 18:02:52

基于大数据的短视频用户兴趣分析的设计与实现(程序+文档+讲解)

课题介绍在短视频平台精细化运营、个性化推荐需求下&#xff0c;传统用户兴趣分析存在 “维度单一、实时性差、精准度不足” 的痛点&#xff0c;基于大数据技术构建的短视频用户兴趣分析体系&#xff0c;整合用户行为数据、内容交互数据、环境数据等多源信息&#xff0c;实现用…

作者头像 李华
网站建设 2026/10/29 23:06:03

【最新2023】各省地区生产总值GDP 人均生产总值(人均GDP) 地区生产总值指数的 省级省份

【最新2023】各省地区生产总值GDP 人均生产总值(人均GDP) 地区生产总值指数的 省级省份 时间范围1999-2023年 人均生产总值指数(人均GDP指数) 包括一下: 人均生产总值(人均GDP) 各省地区生产总值GDP 人均生产总值指数(人均GDP指数) 地区生产总值指数 见图 说明:人均生产总值指…

作者头像 李华
网站建设 2026/10/30 18:02:59

医疗自动标注漏医生隐写症状 后来补NLP规则引擎才救回诊断准确率

&#x1f4dd; 博客主页&#xff1a;jaxzheng的CSDN主页 目录医疗数据科学&#xff1a;当Excel遇上心电图&#xff0c;我差点把医院整崩溃了 一、为什么说我是"数据界的急诊科医生" 二、那些年我在医疗数据里踩过的坑 三、那些让人拍案叫绝的医疗数据应用 四、给想入…

作者头像 李华
网站建设 2026/10/30 10:02:01

C 语言字符串函数超全解析

对于刚接触 C 语言的小伙伴来说&#xff0c;字符串函数就像 “字符处理的万能工具”&#xff0c;但用不好也容易踩坑。这篇内容会从 “核心逻辑→常用函数→避坑指南” 一步步讲&#xff0c;先懂底层、再学用法、最后避坑&#xff0c;保证通俗易懂&#xff5e; 一、先搞懂&…

作者头像 李华
网站建设 2026/10/30 18:02:57

海外仓签收入库环节怎么优化?海外仓入库流程优化方案(附TOPWMS实操)

在海外仓一件代发业务中&#xff0c;海外仓入库环节常被低估&#xff0c;但入库的问题直接影响到后续仓库的一系列操作。货物堆堵、SKU混乱、错发追责等入库乱象&#xff0c;并非单纯的管理疏忽&#xff0c;其根源在于缺乏一套系统化、标准化的流程管控体系。今天将根据我们的东…

作者头像 李华