2024年7月23日

内存管理-21-Arm64架构内存管理-1-初探

摘要: 基于ARMv8/ARMv9 一、内存管理单元 1. TLBI 指令使tlb无效 TLBI <type> <level>{IS} {, <Xt>} TLBI WAE1, X0 使与寄存器X0中指定的地址关联的条目无效 2. 每个异常级别,即EL3、EL2 或 EL1, 都有自己的虚拟地址空间。 3. 阅读全文

posted @ 2024-07-23 13:59 Hello-World3 阅读(4) 评论(0) 推荐(0) 编辑

2024年7月17日

内存管理-20-页表分析-1-初探

摘要: 基于msm-5.4 约定: 3级页表 #define CONFIG_PGTABLE_LEVELS 339bit VA #define CONFIG_ARM64_VA_BITS //3948bit PA #define CONFIG_ARM64_PA_BITS //484K小页 #define CON 阅读全文

posted @ 2024-07-17 10:36 Hello-World3 阅读(1) 评论(0) 推荐(0) 编辑

2024年7月16日

bw_mem 和 lmbench

摘要: 一、bwmem 名称 bw_mem - 时间内存带宽 概要 bw_mem_cp [ -P <并行度> ] [ -W <热身次数> ] [ -N <重复次数> ] 大小 rd|wr|rdwr|cp|fwr|frd|bzero|bcopy [对齐] 描述 bw_mem 分配两倍指定内存量,将其归零,然后 阅读全文

posted @ 2024-07-16 20:22 Hello-World3 阅读(16) 评论(0) 推荐(0) 编辑

2024年7月15日

内存管理-19-vmlinux.lds.S分析

摘要: 基于msm-5.4 一、简介 链接器主要任务是将符号引用解析到符号定义上,将多个目标文件(.o)和库文件合并成为一个可执行文件或者动态链接库,生成符号表,并对程序代码做最后的检查和优化。这个链接脚本在Linux内核里就是 vmlinux.lds.S 文件。 vmlinux.lds.S 编译后会在 o 阅读全文

posted @ 2024-07-15 20:45 Hello-World3 阅读(3) 评论(0) 推荐(0) 编辑

2024年7月12日

内存管理-18-sparsemem内存模型-初探

摘要: 一、简介 Linux中的物理内存被按页框划分,每个页框都会对应一个 struct page 结构体存放元数据,也就是说每块页框大小的内存都要花费 sizeof(struct page) 个字节进行管理。 因此系统会有大量的 struct page,在linux的历史上出现过三种内存模型去管理它们。依 阅读全文

posted @ 2024-07-12 22:47 Hello-World3 阅读(8) 评论(0) 推荐(0) 编辑

2024年7月10日

内存管理-17-Arm64汇编

摘要: 一、指令 1. Arm64汇编 lsr 指令 LSR是ARM架构的位移动指令,用于逻辑右移操作。它将第一个操作数的位向右移动指定位数,并根据需要将符号位(在有符号数操作中)扩展到空出来的位。 语法: LSR{条件}{S} 移位量,寄存器 条件是可选的,指定为如 EQ、NE 等,用来指明只有在特定条件 阅读全文

posted @ 2024-07-10 09:21 Hello-World3 阅读(10) 评论(0) 推荐(0) 编辑

2024年7月6日

内存管理-16-kmalloc机制实现-初探

摘要: 一、概述 slab的接口比较麻烦,kmalloc接口使用简便,其底层是基于slab缓存机制实现的,主要也是从slab缓存中拿内存对象。 //include/linux/slab.h static __always_inline void *kmalloc(size_t size, gfp_t fla 阅读全文

posted @ 2024-07-06 10:26 Hello-World3 阅读(4) 评论(0) 推荐(0) 编辑

内存管理-15-slab、slob和slub分配器-初探

摘要: 一、slab简介 1. 简介 首先,“slab”已成为一个通用名称,指的是使用对象缓存的内存分配策略,可实现内核对象的高效分配和释放。它最初由 Sun 工程师 Jeff Bonwick 记录下来,并在 Solaris 2.4 内核中实现。 Linux 目前为其“slab”分配器提供了三种选择: Sl 阅读全文

posted @ 2024-07-06 10:20 Hello-World3 阅读(17) 评论(0) 推荐(0) 编辑

2024年7月4日

内存管理-14-内核文档翻译-1-reserved-memory.txt

摘要: 本文翻译自:msm-5.4/arch/arm64/boot/dts/vendor/bindings/reserved-memory/reserved-memory.txt *** Reserved内存区域 *** 保留内存被指定为 /reserved-memory 节点下的一个节点。操作系统应将保留 阅读全文

posted @ 2024-07-04 18:22 Hello-World3 阅读(7) 评论(0) 推荐(0) 编辑

2024年7月3日

内存管理-7-memblock子系统-1-初探

摘要: 基于msm-5.4 一、memblock简介 现实的物理内存是被截的一段一段的了,并不是一马平川的。伙伴系统要进行初始化,就需要知道哪些区域是可用的,哪些区域已经被占用了、被保留了,剩余的才可以用于伙伴系统的初始化。因此需要一个早期的内存管理机制,即 memblock 机制. 全局变量: struc 阅读全文

posted @ 2024-07-03 10:20 Hello-World3 阅读(3) 评论(0) 推荐(0) 编辑

导航