DPDK主从进程模式 rte_mempool_put失败
版本:19.11.6
情景:主进程应用rte_mempool_create创建mempool,rte_mempool_get获取数据;从进程应用rte_mempool_put归还数据
问题:从进程rte_mempool_put无法归还数据
原因:DPDK通过rte_mempool_ops_table.ops来存储当前应用支持的mempool,这些mempool是跟编译时连接的librte_mempool库有关系的。如果主从进程连接的库不同,rte_mempool_ops_table.ops列表就不同。但是,DPDK是通过rte_mempool的ops_index成员来表示自己是用的哪个实现,而主从进程相同rte_mempool的ops_index是相同的。如果库不同,就导致rte_mempool的ops_index对应的实现不同。最终导致访问失败。
解决:将主从进程mempool连接库要保持一致。
心得:主从进程编译参数、连接库能保持一致就保持一致,别多事。
DPDK19.11.6 mempool链接库:
librte_mempool.a
librte_mempool_bucket.a
librte_mempool_dpaa.a
librte_mempool_dpaa2.a
librte_mempool_octeontx.a
librte_mempool_octeontx2.a
librte_mempool_ring.a
librte_mempool_stack.a
mempool的实现(以下内容来自chatGPT):
-
ring:ring内存池是DPDK中最常用的内存池实现方式之一。它基于环形缓冲区的概念,提供了高效的数据包收发和处理能力。ring内存池适用于多核环境下的数据包处理应用程序。
-
heap:heap内存池是一种通用的内存池实现方式,它使用动态内存分配来管理内存。heap内存池适用于需要动态分配和释放内存的应用程序。
-
stack\lcore:stack_lcore内存池是一种特殊的内存池实现方式,它与特定的lcore(逻辑核心)相关联。每个lcore都有自己的内存池,用于存储与该lcore相关的数据。stack_lcore内存池适用于需要在多个lcore之间共享数据的应用程序。
-
memzone:memzone内存池是一种用于在共享内存中分配内存的实现方式。它允许多个进程在共享内存中分配和访问内存块,用于实现进程间的通信和数据共享。
-
dpaa(Data Path Acceleration Architecture):dpaa是一种特定于NXP QorIQ处理器的内存池实现方式。它利用了处理器的硬件加速功能,提供了高性能的数据包处理能力。dpaa内存池适用于在NXP QorIQ处理器上运行的DPDK应用程序。
相关文章:
DPDK主从进程模式 rte_mempool_put失败
版本:19.11.6 情景:主进程应用rte_mempool_create创建mempool,rte_mempool_get获取数据;从进程应用rte_mempool_put归还数据 问题:从进程rte_mempool_put无法归还数据 原因:DPDK通过rte_mempool_ops_tab…...
ZooKeeper 的工作原理
ZooKeeper 的工作原理可以概括为以下几个方面: 1. 数据模型 ZooKeeper 使用树形目录节点(znode)来建模关键的数据,每个 znode 可以存储数据内容,也可以作为目录包括子节点。客户端可以在节点上设置监听器。 2. 一致性算法 ZooKeeper 使用 ZAB(ZooKeeper Atomic Broadcast)协议…...
【业务功能篇73】分布式ID解决方案
业界实现方案 1. 基于UUID2. 基于DB数据库多种模式(自增主键、segment)3. 基于Redis4. 基于ZK、ETCD5. 基于SnowFlake6. 美团Leaf(DB-Segment、zkSnowFlake)7. 百度uid-generator() 1.基于UUID生成唯一ID UUID:UUID长度128bit,32个16进制字符,占用存储空…...
Qt安卓开发经验技巧总结V202308
01:01-05 pro中引入安卓拓展模块 QT androidextras 。pro中指定安卓打包目录 ANDROID_PACKAGE_SOURCE_DIR $$PWD/android 指定引入安卓特定目录比如程序图标、变量、颜色、java代码文件、jar库文件等。 AndroidManifest.xml 每个程序唯一的一个全局配置文件&…...
【vue2】前端实现下载后端返回的application/octet-stream文件流
1、下载csv/txt时 此时无须修改接口的响应格式 let filenameRegex /filename[^;\n]*((["]).*?\2|[^;\n]*)/; let matches filenameRegex.exec(data.headers[content-disposition]); let blob new Blob([\uFEFF data.data], {//目前只有csv格式type: text/csv;charse…...
【Java】SM2Utils(国密 SM2 工具类)
基于 bouncycastle 实现 国密 SM2 <!-- 引入 bouncycastle --> <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.70</version> </dependency>import lombok.Sneak…...
『C语言入门』初识C语言
文章目录 前言C语言简介一、Hello World!1.1 编写代码1.2 代码解释1.3 编译和运行1.4 结果 二、数据类型2.1 基本数据类型2.2 复合数据类型2.3 指针类型2.4 枚举类型 三、C语言基础3.1 变量和常量3.2 运算符3.3 控制流语句3.4 注释单行注释多行注释注释的作用 四、 …...
jira创建条目rest实用脚本
最近在搞crash崩溃分析,直接把解析到的信息录入jira系统进行跟踪; 经历了多次碰壁后终于调通,现记录一下 实用json请求脚本如下: {"fields":{"project":{"id":"10945"},"issuety…...
红外/可见光图像配准融合
红外/可见光图像配准融合 根据文献【1】,对于平行光轴的红外可见光双目配置进行图像配准,主要的限制是图像配准只是对特定的目标距离(Dtarget)有效。并排配置的配准误差 δx(以像素表示)的数学表达式为&…...
更高效稳定 | 基于ACM32 MCU的编程直流电源应用方案
随着电子设备的多样化发展,面对不同的应用场景,需要采用特定的供电电源。因此,在电子产品的开发测试过程中,必不可少使用编程直流电源来提供测试电压,协助完成初步的开发测试过程。 编程直流电源概述 编程直流电源结构…...
postgresql创建一个只读账户指定数据库
要在 PostgreSQL 中创建一个只读账户,您可以按照以下步骤进行操作: 1. **登录到 PostgreSQL:** 使用具有足够权限的管理员账户(通常是 "postgres" 用户)连接到 PostgreSQL 数据库。 2. **创建只读账户&…...
CSDN编程题-每日一练(2023-08-25)
CSDN编程题-每日一练(2023-08-25) 一、题目名称:影分身二、题目名称:小鱼的航程(改进版)三、题目名称:排查网络故障 一、题目名称:影分身 时间限制:1000ms内存限制:256M 题目描述&am…...
前端面试:【前端工程化】构建工具Webpack、Parcel和Rollup
嗨,亲爱的前端开发者!在现代Web开发中,前端工程化变得愈发重要。构建工具如Webpack、Parcel和Rollup帮助我们自动化任务、管理依赖、优化性能等。本文将深入探讨这三个前端构建工具,帮助你了解它们的优点和用途。 1. Webpack&…...
大型企业是否有必要进行数字化转型?
在数字化、信息化、智能化蓬勃发展的今天,初创公司可以很轻易的布局规划数字化发展的路径。而对于大型企业而言,其已经形成了较为成熟稳固的业务及组织架构,是否还有必要根据自身行业发展特点寻求数字化转型?(比如制造…...
05有监督学习——神经网络
线性模型 给定n维输入: x [ x 1 , x 1 , … , x n ] T x {[{x_1},{x_1}, \ldots ,{x_n}]^T} x[x1,x1,…,xn]T 线性模型有一个n维权重和一个标量偏差: w [ w 1 , w 1 , … , w n ] T , b w {[{w_1},{w_1}, \ldots ,{w_n}]^T},b w[w1,w1,…,wn]T,b 输…...
JavaWeb_LeadNews_Day7-ElasticSearch, Mongodb
JavaWeb_LeadNews_Day7-ElasticSearch, Mongodb elasticsearch安装配置 app文章搜索创建索引库app文章搜索思路分析具体实现 新增文章创建索引思路分析具体实现 MongoDB安装配置SpringBoot集成MongoDB app文章搜索记录保存搜索记录思路分析具体实现 查询搜索历史删除搜索历史 搜…...
redux中间件理解,常见的中间件,实现原理。
文章目录 一、Redux中间件介绍1、什么是Redux中间件2、使用redux中间件 一、Redux中间件介绍 1、什么是Redux中间件 redux 提供了类似后端 Express 的中间件概念,本质的目的是提供第三方插件的模式,自定义拦截 action -> reducer 的过程。变为 actio…...
麒麟系统上安装 MySQL 8.0.24
我介绍一下在麒麟系统上安装 MySQL 8.0.24 的详细步骤,前提是您已经下载了 mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz 安装包。其实安装很简单,但是有坑,而且问题非常严重!由于麒麟系统相关文章博客较少,导致遇到了…...
vue 展开和收起
效果图 代码块 <div><span v-for"(item,index) in showHandleList" :key"item.index"><span>{{item.emailFrom}}</span></span><span v-if"this.list.length > 4" click"showAll !showAll">{…...
限制立方样条(RCS)中的P for overall和P for nonlinear的计算
最近不少人私信我,说有些SCI文章报了两个P值一个是P for overall,一个是P for nonlinear,就像下图这样,问我P for overall怎么计算。 P for overall我也不清楚是什么,有些博主说这个是总效应的P值,但是我没有找到相关出处。但是怎…...
STM32CubeIDE工程复制粘贴保姆级教程:告别重复配置,5分钟搞定新项目
STM32CubeIDE工程复制粘贴保姆级教程:告别重复配置,5分钟搞定新项目 每次启动新项目时,你是否还在重复那些繁琐的初始化步骤?从零开始配置时钟树、外设参数、中断优先级,不仅耗时费力,还容易出错。对于经验…...
软件实施交付转运维学习第三天:Linux系统命令基础(部分)
从实施到运维的蜕变之路,掌握命令就是掌握Linux的灵魂写在前面作为一名从软件实施交付转向运维的工程师,我深刻体会到:Linux命令不仅仅是简单的指令,更是与操作系统对话的语言。当我们站在实施和运维的交界处,掌握Linu…...
【C语言】memmove()函数实战:如何安全高效地处理内存重叠拷贝
1. 为什么需要memmove()函数? 在C语言中处理内存拷贝时,我们经常会遇到一个棘手的问题:当源内存块和目标内存块存在重叠区域时,使用memcpy()函数可能会导致数据被意外覆盖。想象一下你在整理书架,想把第三层到第五层的…...
告别图形界面!用DM数据库的dlsql命令行工具,5分钟搞定日常数据库运维
命令行利器dlsql:DM数据库高效运维实战指南 在数据库运维的世界里,图形化界面固然直观,但真正的高手往往更青睐命令行工具带来的高效与灵活。DM数据库的dlsql命令行客户端,就是这样一把被许多DBA私藏的"瑞士军刀"。 1. …...
Go AI 生态实战:从单机 RAG 到分布式智能服务架构演进
Go AI 生态实战:从单机 RAG 到分布式智能服务架构演进 摘要:本文面向具备后端与架构背景的技术人员,系统讲透 Go 在 AI 应用落地中的工程化方法。文章不再停留在“调用一个模型接口”的层面,而是从 RAG 原理、服务拆分、索引构建、高并发治理、缓存策略、容错机制、可观测性…...
AI写论文超厉害!4款AI论文生成工具,解决毕业论文写作难题!
还在为撰写期刊论文而烦恼吗?面对成堆的文献、复杂的格式要求以及无休止的修改,许多学术人员常常感到效率低下。这并不奇怪!不过,不必太担心,以下将推荐4款实测有效的AI论文写作工具,它们能帮助你在论文文献…...
从原理图到实测:手把手打造Ti电量计通讯盒EV2400
1. 为什么需要自制EV2400通讯盒 搞锂电池开发的朋友应该都熟悉Ti的电量计芯片,比如bq系列。这些芯片需要通过I2C/SMBus或者HDQ接口与电脑通信,这时候就需要一个通讯盒作为桥梁。官方EV2400虽然好用,但价格实在不亲民,而且功能上可…...
CYBER-VISION零号协议互联网舆情智能监测与分析系统
CYBER-VISION零号协议:构建你的互联网舆情智能监测雷达 最近和几个做市场、公关的朋友聊天,他们都在抱怨同一个问题:每天花大量时间刷新闻、看社交媒体,就为了捕捉行业动态和用户反馈,生怕错过什么重要信息。人工监测…...
路由器、交换机、光猫有什么区别?网络设备基础入门
路由器、交换机、光猫有什么区别?网络设备基础入门前言一、光猫、路由器、交换机分别是干什么的二、三者最核心的区别到底是什么1.它是否直接面对运营商网络?2.它是否负责“让多台设备上网”?3.它是否主要用于扩展有线接口?三、先…...
GinCdn内容分发系统V1.0.9更新内容
GinCdn内容分发系统GinCdn是一款基于Go语言Gin框架自研的轻量高效内容分发系统,专为中小型企业/个人搭建CDN打造,采用主控边缘节点分布式架构,实现智能调度、高效缓存、精准监控的一体化解决方案。无需复杂命令行,小白也能轻松上手…...
