首页 > 系统相关 >记录一个dpdk17版本在centos上编译时出现的bug及解决方法

记录一个dpdk17版本在centos上编译时出现的bug及解决方法

时间:2022-11-15 11:25:52浏览次数:40  
标签:centos 编译 3.10 dpdk17 内核 版本 net bug dpdk

1、首先说明一下编译环境及bug现象:

编译环境是centos7的系统,笔者的该环境上有两个版本的内核,如下。编译的dpdk版本为17.01版本(版本比较旧)。

 

 

 之前使用的centos内核版本为3.10.0-123.20.1,在编译17版本dpdk时可以正常编译,最近切换到内核3.10.0-1062.4.1版本后,编译dpdk时出现了如下的编译错误:

 

 

 2、问题原因及解决方法:

该问题的原因在于内核版本变更后的net_device结构体内指针.ndo_change_mtu的定义发生了变化,导致编译错误。

我们可以对比一下内核3.10.0-123.20.1版本和3.10.0-1062.4.1版本中该结构体的不同,如下:

【内核3.10.0-1062.4.1版本中net_device结构体的定义】

 

 

 【内核3.10.0-123.20.1版本中net_device结构体的定义】

 可以看到,结构体内指针.ndo_change_mtu的名称发生了变化,在内核新版本中变更为了.ndo_change_mtu_rh74。不过dpdk17版本中对于该处并没有做同步修改,导致了编译错误。

解决方法是修改dpdk源码内对于该指针的调用处,编辑dpdk/lib/librte_eal/linuxapp/kni/kni_net.c文件,搜索一下结构体kni_net_netdev_ops,修改其内部的指针调用,将.ndo_change_mtu修改为.ndo_change_mtu_rh74

具体如下:

 

 

 

 之后再次编译dpdk,即可成功。

该问题应该是旧版本dpdk的遗留问题,使用高版本的dpdk编译时应该不会出现该问题(笔者验证过dpdk21版本),此处记录一下。

 

 

 

标签:centos,编译,3.10,dpdk17,内核,版本,net,bug,dpdk
From: https://www.cnblogs.com/olberic/p/16891745.html

相关文章

  • CentOS8.4(Anolis 8.6) Apache 2.4 Web 服务器配置记录(2022.11)
    1.首先安装nginx,因为目前nginx在Web服务市场的占比(26.51%)已经超过Apache(21.40%)。  2.安装nginx步骤(在阿里云虚拟主机CentOS8.4 123.56.43.47中安装)#yum......
  • 安装centos系统
    VMware安装Rockylinux8.5教程1.下载所需要的镜像文件 DownloadRocky|RockyLinux2打开VMware新建虚拟机,选择典型 3.操作系统选择centos84.选择磁盘空间,勾选......
  • bugku-sodirty
    打开网页,点下注册,然后啥都没有尝试用御剑扫描一些发现www.zip打开网页,会下载到网站源码在纷扰中找到一个文件/routes/index.js,用笔记本打开varexpress=require('......
  • python的bug
    python的异常处理机制:                 这些异常可能会存储在文件里pycharm开发环境的调试: ......
  • bug修复 双指针
     https://leetcode.cn/problems/backspace-string-compare/844.BackspaceStringCompareGiventwostringssandt,returntrueiftheyareequalwhenbothar......
  • bug 前后端归属之争
    web应用的开发主要有两种模式:前后端不分离、前后端分离(想要详细了解这两种模式的童鞋请转到此链接:http://testingpai.com/article/1644485366504),其中前后端分离是目前web......
  • centos 8 rc.local不生效的问题
    具体可以操作红帽的官方文档(英文):https://www.jianshu.com/p/96a2075ad784 使rc.local生效的操作如下:chmoda+x/etc/rc.d/rc.localsystemctlenablerc-local......
  • MACM1 VM安装Centos7ARM版
    ......
  • CentOS7.9 搭建Email服务器(Postfix)
    一、Postfix简介在邮件系统中担任MTA的角色,负责在服务器之间传递邮件,并收下其他系统寄到本地系统的邮件Postfix实现了MTA的核心功能:邮件路由,邮件头重写,授权,内容过滤基......
  • bugku-No one knows regex better than me
    难得开靶场所需要的金币,比完成题目给的少题目源码<?phperror_reporting(0);$zero=$_REQUEST['zero'];$first=$_REQUEST['first'];$second=$zero.$first;if(preg_......