Linux内存从0到1学习笔记(8.5,CMA内存分配)
CMA是通过cma_alloc分配的。cma_alloc() --> alloc_contig_range(..., MIGRATE_CMA,...),向刚才释放给buddy system的MIGRATE_CMA类型页面,重新“收集”过来。
linux_mainline-5.17.0/mm/cma.c416 /**
417 * cma_alloc() - allocate pages from contiguous area
418 * @cma: Contiguous memory region for which the allocation is performed.
419 * @count: Requested number of pages.
420 * @align: Requested alignment of pages (in PAGE_SIZE order).
421 * @no_warn: Avoid printing message about failed allocation
422 *
423 * This function allocates part of contiguous memory on specific
424 * contiguous memory area.
425 */
426 struct page *cma_alloc(struct cma *cma, unsigned long count,
427 unsigned int align, bool no_warn)
428 {
429 unsigned long mask, offset;
430 unsigned long pfn = -1;
431 unsigned long start = 0;
432 unsigned long bitmap_maxno, bitmap_no, bitmap_count;
433 unsigned long i;
434 struct page *page = N
Linux内存从0到1学习笔记(8.5,CMA内存分配)相关推荐
- Linux内存从0到1学习笔记(9.1,内存优化调试之kswapd0触发原理)
写在前面 Linux内核中有一个非常重要的内核线程kswapd,它负责在内存不足时回收页面.kswapd内核线程初始化时会为系统中每个内存结点创建一个名为"kswapd%"内核线程 ...
- Linux内存从0到1学习笔记(4,TLB)
一.TLB简介 Kernel初始化的时候,会在初始化内存中创建页表:而处理器读取指令和数据的时候需要首先通过MMU查表得到物理地址,然后在访问物理地址读取指令或数据.MMU查表过程汇中需要4次访问内存 ...
- Linux内存从0到1学习笔记(11.2 内存优化方案之内存压缩zram)
写在前面 zram是Linux内核提供的一种虚拟内存压缩功能,通过在将一部分内存模拟成块设备,并将压缩后的内存写到这部分模拟的块设备中,直到必须使用硬盘上的交换空间,zram 本质是就是一个块设备. ...
- Linux内存从0到1学习笔记(6.7,物理内存初始化之CMA初始化)
写在前面 CMA (contiguous memory allocator)连续内存分配器,被开发用于分配大的.物理连续的内存块,其底层还是依赖内核伙伴系统这样的内存管理机制.通过这套机制,在设备驱动 ...
- Linux内存从0到1学习笔记(6.6,物理内存初始化之预留内存)
写在前面 前面的章节中有提到过,memblock分配器会将内存划分为动态管理的内存(保存在memblock的memory type的数组)和静态预留的内存(保存在memblock的reserved t ...
- Linux与C++11多线程编程(学习笔记)
多线程编程与资源同步 在Windows下,主线程退出后,子线程也会被关闭; 在Linux下,主线程退出后,系统不会关闭子线程,这样就产生了僵尸进程 3.2.1创建线程 Linux 线程的创建 #inc ...
- 【C#8.0 and .NET Core 3.0 高级编程学习笔记】
@C#8.0 and .NET Core 3.0 高级编程学习笔记 前言 为了能精细地完成对C#语言的学习,我决定选择一本书,精读它,理解它,记录它.我想选择什么书并不是最重要的,最重要的是持之以恒的 ...
- JVM学习笔记(四)------内存调优
首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提 ...
- 2017-2-15从0开始前端学习笔记(HTML)-图片-表格-表单
2017-2-15从0开始前端学习笔记-图片-表格-表单 标签 图片 图片<img src="#" alt="文本说明 不能加载图片时显示" title= ...
最新文章
- Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17
- 【Win32汇编】数组累加
- Javascript 本地图片预览
- java ejb jsp 架构_JavaEE架构
- HVV之WIFI蜜罐反制红队
- php 5.4.5,PHP 5.4.5 公布
- T-SQL查询高级--理解SQL SERVER中非聚集索引的覆盖,连接,交叉和过滤
- 【Unity】12.2 导航网格寻路简单示例
- 2020年中考英语计算机考试,2020年中考英语听说测试考生问答
- 555-大数据查重-位图算法
- scss 转换成css,如何将scss转换为css
- matlab通信系统仿真设计课程设计,基于matlab的FM通信系统仿真设计与实现_课程设计报告...
- linux离线软件包下载,Linux离线安装Docker
- 铁电存储器F-RAM
- windowsXP日常应用技巧及经验总结(转载)【实用】
- 快嘴阿里旺旺超强营销王 2007 绿色
- 【文末福利】半导体封装率先国产化,400+封装厂商最新名单汇总
- java automapper 使用_AutoMapper实际项目运用
- 【Pygame小游戏】炸裂全场、超级炸弹人“爆炸”登场,这是你的童年嘛?
- 正则表达式是如何让你的网页卡住的