解决dpdk reserve的内存返回的虚拟地址和iova地址一样的问题

news/2025/2/27 8:32:27/

1. 背景:

在ubuntu20.04上用dpdk API: 

rte_memzone_reserve_aligned("L1L2_PCIE_MEMORY", 1.5*1024*1024*1024,
                         rte_socket_id(), RTE_MEMZONE_1GB|RTE_MEMZONE_IOVA_CONTIG, 
                         RTE_CACHE_LINE_SIZE);

分配1.5G 内存.

服务器和mvl PCIE卡通过这个内存进行交互.

正常情况下:

服务器使用dpdk返回的虚拟地址,  mvl pcie卡上用dpdk 返回的iova地址, 然后调用DPI 的API 可以实现数据的上传和下载.

期望的虚拟地址和iova地址是不一样的. 但是实际上打印是一样的:

这种情况下表示把虚拟地址作为iova 地址. 二者一样.

那传给mvl pcie卡的其实是一个虚拟地址. 导致mvl 卡把数据push到了未知的地址.

因为这个功能在之前测试过的,两个地址不应该一样, 所以打印日志看下哪不一样: 加参数: --log-level=eal,8

对比之前的日志和现在不行的日志, 如下:

 发现出错时用的iova 模式是VA 模式, 这个情况下就会让iova, va一样. 在服务器上的app 操作的其实是虚拟地址.mvl 卡把数据push到了未知的地址(应该用物理地址但用成了虚拟地址),  这样服务器和mvl pcie卡就不能通信.

开始认为是ubuntu grub下打开了iommu 功能导致的.但是查看了其他服务器也是这样的.

猜想应该是可以配置的. 因为之前看dpdk 源码中是有初始iova模式的.

baidu了下, 发现以下参数可以改变iova模式:

参考DPDK内存管理——iova地址模式(虚拟/ 物理 地址)_light_forest的博客-CSDN博客

加入 --iova-mode=pa 参数后, dpdk分配出来的地址就一样了. 打印如下:

后边再执行pcie 卡上的程序, 两个程序可以正常通信 了.


http://www.ppmy.cn/news/83339.html

相关文章

【周末闲谈】什么是云计算?

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录 前言什么是云计算?🤔🤔🤔大数…

MySQL8.0基础篇

文章目录 一、MySQL概述1、数据库概述1.1 数据库作用1.2 数据库的相关概念 2、MySQL概述2.1 概述2.2 RDBMS与非RDBMS 3、MySQL环境安装3.1 MySQL的下载、安装、配置(win)3.2 MySQL登录3.3 MySQL演示使用3.4 MySQL目录结构与源码 二、SQL查询1、SQL详情1.1 SQL分类1.2 SQL语言的…

一个Python的轻量级搜索工具--Whose

本文将简单介绍 Python 中的一个轻量级搜索工具Whoosh,并给出相应的使用示例代码。 # Whoosh 简介 Whoosh 由 Matt Chaput 创建,它一开始是一个为 Houdini 3D 动画软件包的在线文档提供简单、快速的搜索服务工具,之后便慢慢成为一个成熟的搜…

手写操作系统+手写网络协议栈,太硬核了

内功决定一个程序员的上限,这是每个程序员都知道的道理。程序员要修哪些内功呢:汇编、C语言、C、操作系统内核… 这些修内功的课程,市面上少有人做,做相关课程的人,大多缺实战经验,所以课程偏理论&#xf…

建筑专业应届生零基础想学习数据分析,职业发展前景如何?能学会吗?

建筑应届生零基础想学习数据分析,职业发展前景如何?能学会吗? 当然是能学会的,但如果想要有发展前景,不仅是会数据分析而已,更需要实战能力,能够结合不同的业务进行分析,掌握各种常见…

如何获得铁粉(弯道超车的攻略)

文章目录 一、提供有价值的内容二、保持更新频率三、与读者互动四、优化SEO五、提供专栏订阅服务 CSDN(China Software Developer Network)是中国最大的IT社区和在线学习平台之一,成立于1999年。它是一个面向软件开发者的知识共享社区,提供有关编程语言、…

Shap-E:3D资产的生成式AI大模型

OpenAI 刚刚发布了 Shap-E,这是一种基于文本提示和图像创建 3D 资产的生成模型,能够生成带纹理的网格和神经辐射场 ,从而实现各种 3D 输出。 推荐:用 NSDT设计器 快速搭建可编程3D场景。 在本教程中,我们将引导你在 Go…

国内好用的免费AI处理工具:Chat8(实现类似ChatGPT功能、TCP/IP通讯问题)

目前国外的ChatGPT比较火,朋友推荐了一个chat8,经过使用,觉得还不错,链接如下: https://ai.chat86.co/go/kl/775283,进去后可以直接用手机注册使用,以下是我问其关于TCP/IP的对话过程&#xff0…