2026年4月22日

内存管理-5-page->flags

摘要: 一、简介 1. page->flags 定义 struct page 的 flags 是一个位图。真正“业务语义位”主要来自 enum pageflags。同一个物理位在不同页面类型下可能被复用(别名),这是 page->flags 最容易误解的点。 enum pageflags { //page- 阅读全文

posted @ 2026-04-22 21:07 Hello-World3 阅读(4) 评论(0) 推荐(0)

内存管理-5-mm_struct->flags

摘要: 一、mm->flags 简介 基于msm-5.4 1. 标志定义 //linux/sched/coredump.h #define SUID_DUMP_DISABLE 0 /* No setuid dumping */ #define SUID_DUMP_USER 1 /* Dump as user 阅读全文

posted @ 2026-04-22 17:09 Hello-World3 阅读(2) 评论(0) 推荐(0)

内存管理-5-vm_area_struct->vm_flags

摘要: 一、vma->flags 简介 vma->vm_flags 标志,控制的是一个 VMA 在内核里的行为属性。里面的每个标志都是位掩码。可以把它理解成:同样都是一段虚拟地址区间,不同 flag 决定了这段区间能不能扩展、是否参与 core dump、是否是 I/O 映射、fork 时怎么继承、缺页时怎 阅读全文

posted @ 2026-04-22 16:01 Hello-World3 阅读(3) 评论(0) 推荐(0)

内存管理-66-默认关闭内核配置汇总

摘要: 一、CONFIG_SPECULATIVE_PAGE_FAULT 性能考量。 CONFIG_SPECULATIVE_PAGE_FAULT 的核心作用是:在低竞争条件下,尝试无锁处理页面错误,避免长时间持有 mmap_lock,以降低足迹锁竞争和上下文切换开销。 1. 它解决的问题 传统页面错误处理必须 阅读全文

posted @ 2026-04-22 11:06 Hello-World3 阅读(2) 评论(0) 推荐(0)

内存管理-45-zram-3-writeback

摘要: 一、简介 zram 是一个基于内存的块设备, 通常用作压缩swap分区。页面被换出时不写到磁盘, 而是压缩后存在内存中,节省1/O并加速swap。进程页面换出 --> zram压缩存储(在RAM中) --> 进程缺页时解压换回。 但是 zram 在内存压力下是有困境的,zram 本质还是占内存。当系 阅读全文

posted @ 2026-04-22 09:50 Hello-World3 阅读(4) 评论(0) 推荐(0)

2026年4月21日

seq_file笔记—3—说明与极简Demo

摘要: 一、seqfile简介 seq_operations 是 Linux 内核里给 /proc 或 debugfs 做“可迭代输出”的标准接口,通常和 seq_file 一起用。它解决了三个老问题:分页读取、长输出断点续读、以及 lseek 重新定位后继续读。 1. 解决了什么问题 (1) 传统 rea 阅读全文

posted @ 2026-04-21 22:04 Hello-World3 阅读(5) 评论(0) 推荐(0)

内存管理-31-每进程内存统计-5-/proc/pid/maps

摘要: 一、简介 1. 打印内容 8295:/ # cat /proc/584/maps 62217e2000-62218e8000 r--p 00000000 fc:00 166440964 /system/bin/surfaceflinger 62218e8000-6221d75000 r-xp 001 阅读全文

posted @ 2026-04-21 21:29 Hello-World3 阅读(1) 评论(0) 推荐(0)

2026年4月18日

内存管理-63-VMA-2-vmacache

摘要: 基于msm-5.4 一、vmacache简介 1. 实现文件 mm/vmacache.c include/linux/vmacache.h 默认编译,没有配置宏。 2. 它要解决的问题 把海量重复的、局部性很强的 VMA 查询挡在红黑树查询之前。内核里大量路径都会查 VMA,例如: (1) page 阅读全文

posted @ 2026-04-18 14:56 Hello-World3 阅读(4) 评论(0) 推荐(0)

2026年4月17日

内存管理-65-内存诊断-1-malloc debug

摘要: 一、README.md翻译 注: 本文翻译自A12的 android/bionic/libc/malloc_debug/README.md 1. Malloc Debug Malloc debug 是一种用于调试 native 内存问题的方法。它可以帮助检测内存破坏、内存泄漏以及 use-after 阅读全文

posted @ 2026-04-17 16:26 Hello-World3 阅读(4) 评论(0) 推荐(0)

2026年4月15日

内存管理-63-VMA-1-VMA的创建与销毁

摘要: 基于msm-5.4 一、VMA创建路径汇总 1. mmap()系统调用-用户态请求映射 syscall_mmap_pgoff() [fs/exec.c] ↓ ksys_mmap_pgoff() [mm/mmap.c] ↓ vm_mmap_pgoff() ↓ do_mmap() [mm/mmap.c] 阅读全文

posted @ 2026-04-15 13:51 Hello-World3 阅读(5) 评论(0) 推荐(0)

导航