
预留了一片物理内存区域:
结构体定义: 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形成的图案和资质认定证书编号组成。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)