上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 70 下一页

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 阅读(2049) 评论(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 阅读(533) 评论(0) 推荐(0)

2024年7月12日

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

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

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

2024年7月10日

内存管理-17-Arm64汇编

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

posted @ 2024-07-10 09:21 Hello-World3 阅读(2727) 评论(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 阅读(142) 评论(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 阅读(1506) 评论(0) 推荐(1)

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 阅读(371) 评论(0) 推荐(0)

2024年7月3日

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

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

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

2024年7月2日

内存管理-13-CMA内存-1-初探

摘要: 基于msm-5.4 关键词 cma_alloc/cma_release MIGRATE_ISOLATE MIGRATE_CMA 一、概述 1. CMA简介 CMA(Contiguous Memory Alloctor)主要用于分配大块连续的物理内存。伙伴系统能分配的最大连续物理内存块是2^10,即一 阅读全文

posted @ 2024-07-02 21:00 Hello-World3 阅读(944) 评论(0) 推荐(0)

内存管理-11-buddy伙伴子系统-2-Per-CPU页帧缓存

摘要: 基于msm-5.4 一、概述 1. 实现背景 buddy子系统管理的物理页面,绝大多数都是放在 zone::free_area[] 中的链表中,少部分放在 zone::lowmem_reserve[] 中。还有少量页面放在zone::__percpu pageset 这个每CPU变量中,每种迁移类型 阅读全文

posted @ 2024-07-02 14:43 Hello-World3 阅读(122) 评论(0) 推荐(0)

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 70 下一页

导航