上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 74 下一页

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

2024年7月3日

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

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

posted @ 2024-07-03 10:20 Hello-World3 阅读(473) 评论(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 阅读(1087) 评论(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 阅读(169) 评论(0) 推荐(0)

内存管理-11-buddy伙伴子系统-1-初探

摘要: 基于msm-5.4 一、伙伴系统概述 1. 简介 伙伴系统是物理内存的三大管理机制之一,另外两个是slab缓存和per-cpu页帧缓存。##### 管理物理内存实际上就是管理 page 结构,将page添加到不同链表上进行管理。当用户申请内存的时候,从链表上拿一个page返还给用户,然后用户根据pa 阅读全文

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

2024年7月1日

内存管理-0-开篇

摘要: 一、什么是内存管理 1. 基础内存管理可以大致分为5块 (1) 物理内存管理 node、zone、page、buddy-system、slab (2) 虚拟内存管理 虚拟内存分用户空间和内核空间,用户空间又分为很多段(代码段、数据段、栈、堆、mmap映射区、动态共享库等等); 内核空间也是分为很多区 阅读全文

posted @ 2024-07-01 16:24 Hello-World3 阅读(88) 评论(0) 推荐(0)

2024年6月24日

Linux设备树(5)—实现

摘要: 一、DeviceTree简介 1. 将内核当做一个黑盒,那么其输入参数应该包括: (1) 识别platform的信息(2) runtime的配置参数(3) 设备的拓扑结构以及特性 对于嵌入式系统,在系统启动阶段,bootloader会加载内核并将控制权转交给内核,此外,还需要把上述的三个参数信息传递 阅读全文

posted @ 2024-06-24 18:39 Hello-World3 阅读(333) 评论(0) 推荐(0)

2024年6月19日

内存管理-5-物理内存数据结构-6-struct vm_area_struct

摘要: 基于msm-5.4 一、struct vm_area_struct 1. 简介 此结构用来描述一个 VMM 内存区域。每个 VM 区域/任务都有一个这样的区域。VM 区域是进程虚拟内存空间的一部分,它对page-fault处理程序有特殊规则(即共享库、可执行区域等)。 无论是加载一个动态链接库,还是 阅读全文

posted @ 2024-06-19 16:15 Hello-World3 阅读(298) 评论(0) 推荐(0)

上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 74 下一页

导航