当前位置: 首页 > article >正文

Linux内存管理(六十四):ION 内存管理器——system heap

源码基于:Linux 5.4

约定:

  • 芯片架构:ARM64
  • 内存架构:UMA
  • CONFIG_ARM64_VA_BITS:39
  • CONFIG_ARM64_PAGE_SHIFT:12
  • CONFIG_PGTABLE_LEVELS :3

0. 前言

ION 是 Google 在 Android 4.0 中引入,目的主要是通过在硬件设备和用户空间之间分配和共享内存,实现设备之间零拷贝共享内存,多用于多媒体,比如 camera、display、graphic等。ION是一个内存管理器,管理不同type的内存堆(heap),而不同的type的内存又通过不同的内存分配器来分配,比如cma、kmalloc、vmalloc等。 

通过《ION 总篇》一文得知用户层会通过 ioctl() 与ION 驱动通信,请求ION 从特定 heap 中分配buffer 用以共享使用。内核会根据用户传入特定的 heap id 匹配对应的heap。

本文中剖析的是 system heap 的初始化和分配流程。

1. 


http://www.kler.cn/a/148394.html

相关文章:

  • React Hooks在现代前端开发中的应用
  • ios swift开发--ios远程推送通知配置
  • 曹操为什么总是亲征
  • NAT网络工作原理和NAT类型
  • 冗余连接2 hard题 代随C#写法
  • 浅谈C#之内存管理
  • VMware虚机重启后静态IP不生效
  • QT linux下应用程序打包
  • uni-app中vue3+setup实现下拉刷新、上拉加载更多效果
  • 角色管理--高级产品经理岗
  • uniapp 导航分类
  • Vue表单的整体处理
  • 成为AI产品经理——模型评估概述
  • GeoTrust证书
  • 96.STL-遍历算法 transform
  • 文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑碳排放分摊的综合能源服务商交易策略》
  • HttpRunner原来还能这么用,大开眼界!!!
  • WPF创建进度条
  • 「计算机网络」Cisco Packet Tracker计算机网络仿真器的使用
  • YOLOv5算法进阶改进(5)— 主干网络中引入SCConv | 即插即用的空间和通道维度重构卷积
  • android项目之调用webview
  • TypeScript学习记录
  • LeetCode51. N-Queens
  • java后端实现登录退出功能,并用过滤器验证
  • android trace文件的抓取与查看方法
  • 【Lidar】基于Python的点云数据下采样+体素显示