CMA预留内存

CMA预留内存,第1张

平时看/proc/meminfo中,总能看到CMA的身影,且好像总是被用光了。他是做什么的呢,为啥作为预留内存能用的干干净净呢~? 一起看下!

预留了一片物理内存区域:

结构体定义: msm-4.19/mm/cma.h

从dtsi文件中解析,像高通就放在android/vendor/xxxx/proprietary/devicetree-4.19/xxxx/kona.dtsi

这是和预留内存区别的地方,预留内存是纯NHLOS,是不计算在memtotal中的,但是cma是可以算在memtotal中,被使用的,用于可移动页面的分配和管理。

对每个cma字段执行cma_activate_area

__free_pages将页面添加到buddy system中,调整zone管理的页面总数adjust_managed_page_count

page结构体其实就是物理页了,和真正的页帧号只是偏移量的差距。要和虚拟进程的页面区别开

释放就真的简单很多,直接看注释就行

DMA可以直接在内存和外设进行数据搬移,而CPU访问内存时要经过MMU。DMA访问不到CPU内部的cache,所以会出现cache不一致的问题。因为CPU读写内存时,如果在cache中命中,就不会再访问内存。

当CPU 写memory时,cache有两种算法:write_back ,write_through。一般都采用write_back。cache的硬件,使用LRU算法,把cache中的数据替换到磁盘。

cache一致性问题,主要靠以上两类api来解决这个问题。

CPU通过MMU访问DMA区域,在页表项中可以配置这片区域是否带cache。

现代的SoC,DMA引擎可以自动维护cache的同步。

CMA是一个多义词。

CMA即美国注册管理会计师,英文译名为 (Certified Management Accountant)是美国管理会计师协会(IMA)旗下的注册管理会计师认证(CMA认证),被誉为美国财会领域的三大黄金认证之一,在全球范围内被企业财务高管所认可。

CMA即Country Music Awards,全美乡村音乐协会奖,是美国有着50年历史的乡村音乐奖。

Creative Mind Association,即北京市第八十中学创新思维协会。

CMA 法国达飞轮船 (航运船公司名)

UC Chinese Mutual-Aid Association (CMA) ,即华人互助会。 前身为 Asian Volunteer Organization (AVO) ,是一个由UC学生创建并服务于辛辛那提大学华人社区的组织 。

CMA的全称是contiguous memory allocator,是智能连续内存分配技术是Linux Kernel内存管理系统的扩展。

中国气象局简称为CMA,英文译名为“China Meteorological Administration”中国气象局是国务院直属事业单位。

中国登山协会简称"中国登协"。英文译名为"CHINESE MOUNTAINEERING ASSOCIATION",缩写为"CMA"。

检验检测机构资质认定标志,由China Inspection Body and Laboratory Mandatory Approval的英文缩写CMA形成的图案和资质认定证书编号组成。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8387966.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存