rv1126 CMA内存管理机制

rv1126 CMA内存管理机制 2023-12-13 17:31:47 1296

1 CMA概述

CMA的全称叫做contiguous memory allocator,它是为了便于进行连续物理内存申请的一块区域,一般我们把这块区域定义为reserved-memory。

2 CMA空间大小修改方式

修改CMA空间大小方法,例如:由原来的8M修改为64M:

1.CMA默认空间大小是在内核kernel里面定义的,打开menuconfig看到如下:

将Size in Mega Bytes的值由8改成64,这个值的单位是1MiB,改之后如下:

也就是相当于如下修改:

diff --git a/arch/arm/configs/rv1126_firefly_defconfig b/arch/arm/configs/rv1126_firefly_defconfig
index bb6e0678e380..cfd9ce69b0a9 100644
--- a/arch/arm/configs/rv1126_firefly_defconfig
+++ b/arch/arm/configs/rv1126_firefly_defconfig
@@ -98,7 +98,7 @@ CONFIG_DEVTMPFS=y
 CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_ALLOW_DEV_COREDUMP is not set
 CONFIG_DMA_CMA=y
-CONFIG_CMA_SIZE_MBYTES=8
+CONFIG_CMA_SIZE_MBYTES=64

2.修改内核dtsi

diff --git a/arch/arm/boot/dts/rv1126.dtsi b/arch/arm/boot/dts/rv1126.dtsi
index 03c9b51538db..e4a11929f83f 100644
--- a/arch/arm/boot/dts/rv1126.dtsi
+++ b/arch/arm/boot/dts/rv1126.dtsi
@@ -374,7 +374,7 @@
                        compatible = "shared-dma-pool";
                        inactive;
                        reusable;
-                       size = <0x800000>;
+                       size = <0x4000000>;
                        linux,cma-default;
                };

修改之后,重新编译内核并烧录到板子上测试,注意:上面的配置文件和dtsi文件要根据自己板子的配置来定,里面修改的配置项名是一样的。

3查看CMA空间大小

通过开机log可以查看实际分配的CMA空间大小:

[root@RV1126_RV1109:/]# dmesg|grep -i reserve
[    0.000000] Reserved memory: created CMA memory pool at 0x39c00000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Reserved memory: created CMA memory pool at 0x29c00000, size 256 MiB
[    0.000000] OF: reserved mem: initialized node isp, compatible id shared-dma-pool
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000] Memory: 681408K/1046240K available (10240K kernel code, 426K rwdata, 2644K rodata, 1024K init, 956K bss, 37152K reserved, 327680K cma-reserved, 0K highmem)
[    0.057514] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.481906] rkcifhw ffae0000.rkcif: assigned reserved memory node isp
[    0.488660] rkisp_hw ffb50000.rkisp: assigned reserved memory node isp
[root@RV1126_RV1109:/]#

从log中第一条可以看出,CMA空间大小已经变为64MB。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 2 1 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区