【Linux 内核 内存管理】memblock 分配器 ② ( memblock_type 内存块类型 | memblock_type 结构体成员分析 )
2023-09-14 09:07:26 时间
文章目录
一、memblock_type 内存块类型
memblock
分配器 涉及到 内存块 类型 , 在 Linux 内核中 , 使用 struct memblock_type
结构体 描述 ,
struct memblock_type
结构体 定义在 Linux 内核源码的 linux-4.12\include\linux\memblock.h#40 位置 ;
struct memblock_type {
unsigned long cnt; /* number of regions */
unsigned long max; /* size of the allocated array */
phys_addr_t total_size; /* size of all regions */
struct memblock_region *regions;
char *name;
};
源码路径 : linux-4.12\include\linux\memblock.h#40
二、memblock_type 结构体成员分析
memblock_type
结构体成员分析 :
1、cnt 成员
cnt
成员 表示 当前 管理的 " 内存区域 " 个数 ;
unsigned long cnt; /* number of regions */
2、max 成员
max
成员 表示 当前 管理的 " 内存区域 " 最大个数 ;
unsigned long max; /* size of the allocated array */
3、total_size 成员
total_size
成员 表示 当前 所有内存块 的总大小 ;
phys_addr_t total_size; /* size of all regions */
4、regions 成员
regions
成员 表示 的指针 指向 " 执行内存区域 " ;
struct memblock_region *regions;
5、name 成员
name
成员 表示 " 内存块类型 " 的名称 ;
char *name;
相关文章
- [Linux]控制语句If case
- Linux下如何查看哪个进程占用内存多?
- Linux下查看内存使用情况方法总结
- linux ps命令详解:aux与ef参数的区别;按cpu使用率降序显示;按内存使用率降序显示
- 【收藏】如何查看linux服务器内存使用情况
- Linux中进程内存RSS与cgroup内存的RSS统计 - 差异
- 【Linux 内核 内存管理】物理分配页 ⑨ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | retry 标号代码分析 )
- 【Linux 内核 内存管理】物理分配页 ⑧ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | 获取首选内存区域 | 异步回收内存页 | 最低水线也分配 | 直接分配 )
- 【Linux 内核 内存管理】物理分配页 ② ( __alloc_pages_nodemask 函数参数分析 | __alloc_pages_nodemask 函数分配物理页流程 )
- 【Linux 内核 内存管理】分区伙伴分配器 ③ ( 备用内存区域列表 | ZONELIST_FALLBACK 枚举 | zoneref 结构体 | 备用内存区域借用物理页规则 )
- 【Linux 内核 内存管理】分区伙伴分配器 ① ( 分区伙伴分配器源码数据结构 | free_area 空闲区域数组 | MAX_ORDER 宏定义 | 空闲区域的页最大阶数 )
- 【Linux 内核 内存管理】伙伴分配器 ② ( 伙伴分配器分配内存流程 )
- 【Linux 内核 内存管理】memblock 分配器编程接口 ② ( memblock_add_range 函数分析 | memblock_insert_region 函数分析 )
- 【Linux 内核 内存管理】memblock 分配器 ⑤ ( Linux 内核中定义 memblock 分配器的位置 | ARM64体系架构下 Linux内核初始化 memblock 分配器流程 )
- 【Linux 内核 内存管理】引导内存分配器 bootmem ② ( bootmem_data 结构体源码分析 | bootmem_data 与内存节点 pglist_data 的关联 )
- 【Linux 内核 内存管理】引导内存分配器 bootmem ① ( 引导内存分配器 bootmem 工作机制 | 引导内存分配器 bootmem 的描述 bootmem_data 结构体 )
- 【Linux 内核 内存管理】mmap 系统调用源码分析 ② ( sys_mmap_pgoff 系统调用函数执行流程 | sys_mmap_pgoff 函数源码 )
- 【Linux 内核 内存管理】内存管理系统调用 ③ ( mmap 创建内存映射原理 | 分配虚拟内存页 | 物理地址与虚拟地址进行映射 | 并分配物理内存页 | mmap 库函数与内核系统调用函数 )
- 【Linux 内核 内存管理】内存映射相关数据结构 ⑥ ( 文件映射 虚拟内存区域 | vm_area_struct | vm_operations_struct | 匿名映射 虚拟内存区域 )
- 【Linux 内核 内存管理】内存映射相关数据结构 ④ ( vm_area_struct 结构体成员分析 | vm_ops 成员 | vm_operations_struct 结构体成员分析 )
- 【Linux 内核 内存管理】虚拟地址空间布局架构 ⑥ ( mm_struct 结构体源码 | vm_area_struct 结构体源码 )
- 【Linux 内核 内存管理】虚拟地址空间布局架构 ⑤ ( Linux 内核中对 “ 虚拟地址空间 “ 的描述 | task_struct 结构体源码 )
- 【Linux 内核 内存管理】虚拟地址空间布局架构 ① ( 虚拟地址空间布局架构 | 用户虚拟地址空间划分 )
- 【Linux 内核 内存管理】内存管理架构 ③ ( Linux 内核中的内存管理模块 | 页分配器 | 不连续页分配器 | 内存控制组 | 硬件设备内存管理 | MMU | 页表缓存 | 高速缓存 )
- 【Linux 内核 内存管理】Linux 内核堆内存管理 ② ( 动态分配堆内存方式 | brk 系统调用 | mmap 系统调用 | brk 系统调用源码介绍 )
- 【Linux 内核 内存管理】RCU 机制 ③ ( RCU 模式下添加链表项 list_add_rcu 函数 | RCU 模式下删除链表项 list_del_rcu 函数 )
- Linux为什么虚拟内存大于物理内存?
- 【Linux】常用命令:磁盘、内存、cron、命令超详细介绍