前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux 内核 内存管理】memblock 分配器 ① ( memblock 分配器简介 | memblock 结构体成员分析 | 物理内存类型 与 内存类型 )

【Linux 内核 内存管理】memblock 分配器 ① ( memblock 分配器简介 | memblock 结构体成员分析 | 物理内存类型 与 内存类型 )

作者头像
韩曙亮
发布2023-03-30 14:55:19
8280
发布2023-03-30 14:55:19
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

ARM64 架构体系中 , 不能使用 bootmem 引导内存分配器 , 使用的是 memblock 分配器 ;

一、memblock 分配器


memblock 分配器 定义在 Linux 内核源码的 linux-4.12\include\linux\memblock.h#48 位置 ;

代码语言:javascript
复制
struct memblock {
	bool bottom_up;  /* is bottom up direction? */
	phys_addr_t current_limit;
	struct memblock_type memory;
	struct memblock_type reserved;
#ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP
	struct memblock_type physmem;
#endif
};

源码路径 : linux-4.12\include\linux\memblock.h#48

在这里插入图片描述
在这里插入图片描述

二、memblock 结构体分析


1、bottom_up 成员

bottom_up 成员表示 内存分配方式 ,

  • TRUE , 表示 从 " 低地址向上分配 " ,
  • FALSE , 表示 从 " 高地址向下分配 " ;
代码语言:javascript
复制
	bool bottom_up;  /* is bottom up direction? */

2、current_limit 成员

current_limit 成员表示 可分配内存的 最大物理地址 ;

代码语言:javascript
复制
	phys_addr_t current_limit;

3、memory 成员

memory 成员 表示 内存类型 , 该内存 包括 已分配 和 未分配 的内存 ;

代码语言:javascript
复制
	struct memblock_type memory;

4、reserved 成员

reserved 成员 表示 预留类型 , 该内存只包含 已分配内存 ;

代码语言:javascript
复制
	struct memblock_type reserved;

5、physmem 成员

physmem 成员 表示 物理内存类型 ;

代码语言:javascript
复制
#ifdef CONFIG_HAVE_MEMBLOCK_PHYS_MAP
	struct memblock_type physmem;
#endif

三、物理内存类型 与 内存类型


物理内存类型 与 内存类型 :

  • 包含关系 : 物理内存类型 包含 内存类型 ;
  • 内存类型 : 在 内核 引导启动时 , 只能使用 mem 内核参数 指定可用内存大小范围 , 该范围之外的内存不可使用 , 即内核无法使用所有的内存 ;
  • 物理类型 : 包含所有的内存范围 ;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、memblock 分配器
  • 二、memblock 结构体分析
    • 1、bottom_up 成员
      • 2、current_limit 成员
        • 3、memory 成员
          • 4、reserved 成员
            • 5、physmem 成员
            • 三、物理内存类型 与 内存类型
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档