随笔分类 -  内存管理

内存管理-61-内存回收-1-理论学习
摘要:申请分配页的时候,页分配器首先尝试使用低水线分配页。如果使用低线分配失败,说明内存轻微不足,页分配器将会唤醒每内存节点的页回收内核线程(kswapd)异步回收页,然后尝试使用最低水线分配页。如果使用最低水线分配失败,说明内在严重不足,页分配器将会直接回收页。 物理页根据是否有存储设备支持分为两类。 阅读全文

posted @ 2026-04-01 17:35 Hello-World3 阅读(84) 评论(0) 推荐(0)

内存管理-43-Swap-1-命令行工具实现
摘要:一、mkswap 基于 A13 + msm-5.4 1. 简介 源码位置: /android/external/toybox/toys/other/mkswap.c 该命令对要成为swap后端的设备的首页写一些格式化的内容(也就意味着用于swap的少一页),没有调用swap相关系统调用。 使用: / 阅读全文

posted @ 2026-03-31 11:29 Hello-World3 阅读(85) 评论(0) 推荐(0)

内存管理-45-zram/swap-3-chatGPT
摘要:一、Android中内存Swap交换是如何实现的? Android 里的 Swap 本质是 Linux 内核虚拟内存机制,但实现上和桌面 Linux 最大区别是:主力后端通常是 zram(压缩内存),不是磁盘分区。 1. 整体链路 (1) 进程申请匿名页(heap/stack/mmap anon)( 阅读全文

posted @ 2026-03-30 14:13 Hello-World3 阅读(351) 评论(0) 推荐(0)

内存管理-60-zsmalloc-1-理论
摘要:一、mm/zsmalloc.c 文件的作用 mm/zsmalloc.c 是 Linux 内核里 zsmalloc 分配器 的实现文件,主要作用是给 zram/zswap 这类“压缩后小对象”场景提供高效内存分配。一句话总结:它不是通用 kmalloc 替代品,而是专门为“可变长度压缩块”设计的内存池 阅读全文

posted @ 2026-03-28 11:46 Hello-World3 阅读(74) 评论(0) 推荐(0)

内存管理-59-内存管理相关锁
摘要:1. p->alloc_lock spinlock_t 类型。 保护 ->fs、->files、->mm、->group_info、->comm 和密钥环订阅,并与 wait4() 同步。也用于 procfs。同时锁定 task.io_context 的最终版本。同时保护 ->cpuset 和 -> 阅读全文

posted @ 2026-03-27 17:08 Hello-World3 阅读(14) 评论(0) 推荐(0)

内存管理-57-系统零页
摘要:基于 msm-5.4 一、简介 匿名页面缺页异常处理 do_anonymous_page() 中使用了系统零页,因为对于 malloc() 来说。分配的内存仅仅是进程地址空间中的虚拟地址。若此时用户程序需要读这个 malloc() 分配的虚拟内存,那么系统会返回全 0 的数据。因此Linux内核不必 阅读全文

posted @ 2026-01-13 17:16 Hello-World3 阅读(30) 评论(0) 推荐(0)

内存管理-55-命令行工具-1-page_types
摘要:注: 基于msm-5.4 一、简介 本文主要介绍 tools/vm/page-types.c。 1. page-types.c 的作用 chatGPT: Linux内核中 tools/vm/page-types.c 文件的作用? Linux内核中的 tools/vm/page-types.c 是一个 阅读全文

posted @ 2025-12-02 20:23 Hello-World3 阅读(90) 评论(0) 推荐(0)

内存管理-54-slub-1-文档翻译等
摘要:一、slub.rst 翻译 注: 翻译自 msm-5.4/Documentation/vm/slub.rst 1. SLUB 简明用户指南 SLUB 的基本理念与 SLAB 截然不同。SLAB 需要重新编译内核才能激活所有 slab 缓存的调试选项。SLUB 始终包含完整的调试功能,但默认情况下处于 阅读全文

posted @ 2025-12-02 18:39 Hello-World3 阅读(92) 评论(0) 推荐(0)

内存管理-53-内存热插拔-1-理论与文档翻译
摘要:一、memory-hotplug.rst 注: 翻译自 msm-5.4/Documentation/core-api/memory-hotplug.rst .. _memory_hotplug: 内存热插拔 1. 内存热插拔事件通知 热插拔事件会被发送到通知队列。 ``include/linux/m 阅读全文

posted @ 2025-12-01 20:30 Hello-World3 阅读(42) 评论(0) 推荐(0)

内存管理-52-memory overcommit-1-文档翻译
摘要:一、overcommit-accounting.rst 注: 翻译自 msm-5.4/Documentation/vm/overcommit-accounting.rst 超额分配记账 Linux 内核支持以下超额分配处理模式: 0: 启发式超额分配处理。拒绝明显的地址空间超额分配。适用于典型系统。 阅读全文

posted @ 2025-11-17 14:01 Hello-World3 阅读(51) 评论(0) 推荐(0)

内存管理-51-lmkd-2-文档翻译与理论
摘要:一、lmkd/README.md 注: 基于A12,翻译自 /android/system/memory/lmkd/README.md Android 低内存杀手守护进程 简介 Android 低内存杀手守护进程 (lmkd) 是一个监控运行中的 Android 系统内存状态的进程,它会在内存压力过 阅读全文

posted @ 2025-11-17 11:32 Hello-World3 阅读(213) 评论(0) 推荐(0)

内存管理-38-页标志-2-page_flags.h 展开-5.4
摘要:基于msm-5.4 实现下面 test.c, 然后 gcc -E test.c -o pp.c 然后得到 page_flags_my.h#define CONFIG_MMU#define CONFIG_SWAP //#define BUILD_BUG_ON_INVALID(e) ((void)(si 阅读全文

posted @ 2025-11-05 21:55 Hello-World3 阅读(29) 评论(0) 推荐(0)

内存管理-48-内存相关trace汇总
摘要:基于msm-5.4 一、kmem 中slub的trace trace方法: P=/sys/kernel/tracing; echo kmem > $P/set_event; > $P/trace; echo 1 > $P/tracing_on; cat $P/trace_pipe | tee tra 阅读全文

posted @ 2025-06-14 17:29 Hello-World3 阅读(172) 评论(0) 推荐(0)

内存管理-47-Poison荼毒
摘要:基于msm-5.4 一、简介 主要是利用头文件定义一些宏,若是向使用物理页的Poison需要使能开关 CONFIG_PAGE_POISONING, 它实现比较简单,只有一个较短的C文件。相关文件: include/linux/poison.h mm/page_poison.c。 C文件中对外只有一个 阅读全文

posted @ 2025-06-10 16:21 Hello-World3 阅读(200) 评论(0) 推荐(0)

内存管理-14-内核文档翻译-4-vm.rst(/proc/sys/vm)
摘要:Documentation for /proc/sys/vm/ kernel version 2.6.29 Copyright (c) 1998, 1999, Rik van Riel <riel@nl.linux.org> Copyright (c) 2008 Peter W. Morreale 阅读全文

posted @ 2025-06-03 15:57 Hello-World3 阅读(200) 评论(0) 推荐(0)

内存管理-14-内核文档翻译-3-concepts.rst
摘要:注: 翻译自 kernel-6.1/Documentation/admin-guide/mm/concepts.rst 概念概述 Linux 中的内存管理是一个复杂的系统,多年来不断发展,包含越来越多的功能,以支持从无 MMU 的微控制器到超级计算机的各种系统。没有 MMU 的系统的内存管理称为“n 阅读全文

posted @ 2025-04-24 15:08 Hello-World3 阅读(109) 评论(0) 推荐(0)

内存管理-10-内存相关栈回溯
摘要:1. 缺页异常的栈 rt_spin_lock wake_up_page_bit unlock_page filemap_map_pages handle_mm_fault do_page_fault do_translation_fault do_mem_abort el0_ia el0_sync_ 阅读全文

posted @ 2025-02-19 11:29 Hello-World3 阅读(58) 评论(0) 推荐(0)

内存管理-44-PSI-理论
摘要:基于msm-5.4 一、psi.txt翻译 翻译: msm-5.4/Documentation/accounting/psi.rst PSI - 压力失速信息(Pressure Stall Information) :日期:2018 年 4 月:作者:Johannes Weiner <hannes@ 阅读全文

posted @ 2024-11-28 09:18 Hello-World3 阅读(328) 评论(0) 推荐(0)

内存管理-41-highatomic预留内存
摘要:基于msm-5.4 一、相关结构体 1. struct zone struct zone { unsigned long nr_reserved_highatomic; ... }; 成员介绍: nr_reserved_highatomic: 记录为高优先级原子分配预留的内存页面数量。 二、赋值逻辑 阅读全文

posted @ 2024-11-09 16:22 Hello-World3 阅读(392) 评论(0) 推荐(0)

内存管理-40-watermark内存水位-1-linux-5.4
摘要:基于msm-5.4 模块内调用路径: postcore_initcall //page_alloc.c 【】内核初始化 init_per_zone_wmark_min //page_alloc.c /proc/sys/vm/extra_free_kbytes //【】sysctl节点配置。 /pro 阅读全文

posted @ 2024-11-09 11:48 Hello-World3 阅读(2160) 评论(1) 推荐(0)

导航