RK3576 Android14,内存大于4G时UVC应用无法申请内存

ops/2024/12/18 16:13:08/

最近有个项目需要将Linux虚拟成UVC摄像头,开发过程中遇到一个奇怪的事情,通过V4l2框架接口申请内存时,相同的板子,只是内存一个4G一个8G。4G的内存可以申请成功,8G就不行。提示“内存不足”

内存更大反而内存不足?嗯?玄学?

转念一想,是不是UVC所使用的DMA无法使用4G以外的内存地址导致的?

咨询RK官方答复果然:

可能是超过4G使用了swiotlb buf,这个buf大小只有64M,最在连续块只有256K。

swiotlb据我的理解,应该就是在低于4G的内存空间当中预留一部分空间。当设备分配到高于4G的寻址空间的内存时,将内容拷贝到预留的空间内,供DMA访问。

如下修改后正常。

diff --git a/kernel-6.1/include/linux/swiotlb.h b/kernel-6.1/include/linux/swiotlb.h
index 35bc4e281..9f5799d15 100644
--- a/kernel-6.1/include/linux/swiotlb.h
+++ b/kernel-6.1/include/linux/swiotlb.h
@@ -22,7 +22,7 @@ struct scatterlist;* must be a power of 2.  What is the appropriate value ?* The complexity of {map,unmap}_single is linearly dependent on this value.*/
-#define IO_TLB_SEGSIZE    128
+#define IO_TLB_SEGSIZE    1024


http://www.ppmy.cn/ops/142959.html

相关文章

PugiXML,一个高效且简单的 C++ XML 解析库!

嗨,大家好!我是一行。今天要给大家介绍 PugiXML,这可是 C 里处理 XML 数据的得力助手。它能轻松地读取、修改和写入 XML 文件,就像一个专业的 XML 小管家,不管是解析配置文件,还是处理网页数据,…

【Maven】生命周期和插件详解

Maven生命周期 Maven 将项目的生命周期抽象成了 3 套生命周期,每套生命周期又包含多个阶段(phase)。每套中具体包含哪些阶段是 Maven 已经约定好的,但是每个阶段具体需要做什么,是用户可以自己指定的。 Maven 中定义…

【工具】Git 操作大全

文章目录 1. Git 基础操作1.1 初始化 Git 仓库1.2 克隆现有仓库1.3 配置 Git 用户信息1.4 查看 Git 配置信息 2. 文件操作2.1 查看文件状态2.2 添加文件到暂存区2.3 提交文件到本地仓库2.4 查看提交历史2.5 回退到上一个提交 3. 分支操作3.1 创建新分支3.2 切换分支3.3 查看所有…

第六章:反射+设计模式

一、反射 1.反射(Reflection):允许在程序运行状态中,可以获取任意类中的属性和方法,并且可以操作任意对象内部的属性和方法,这种动态获取类的信息及动态操作对象的属性和方法对应的机制称为反射机制。 2.类对象和类的对象(实例) (1) 类的对象…

游戏引擎学习第53天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 现在我们正进行游戏结构的重构,目的是为了更合理地安排游戏的组织方式,模拟玩家周围的实体。我们将这些实体分为两类:一类是当前正在屏幕上显示的实体,另一类是被映射到低频更…

【Pandas】pandas interval_range

Pandas2.2 General Top-level dealing with Interval data 方法描述interval_range([start, end, periods, freq, …])用于生成固定长度的区间序列 pandas.interval_range() pandas.interval_range() 是 Pandas 库中用于生成固定频率的 Interval 对象的函数。这些 Interval…

无管理员权限 LCU auth-token、port 获取(全网首发 go)

一: 提要: 参考项目: https://github.com/Zzaphkiel/Seraphine 想做一个 lol 查战绩的软件,并且满足自己的需求(把混子和大爹都表示出来),做的第一步就是获取 lcu token ,网上清一色…

《探秘开源气味数据库:数字世界里的“气味宝藏”》

《探秘开源气味数据库:数字世界里的“气味宝藏”》 一、开源气味数据库的兴起背景(一)技术发展的推动(二)市场需求的催生 二、常见的开源气味数据库介绍(一)GS-LF 香精香料数据库(二…