1 2 3 4 5 ··· 74 下一页

2026年4月28日

内存管理-63-VMA-2-VMA相关操作

摘要: 基于msm-5.4 本文介绍VMA的初始化、插入、删除、查找、split、merge、copy等操作。 一、VMA初始化 1. 相关函数 static inline void INIT_VMA(struct vm_area_struct *vma) //linux/mm.h static inlin 阅读全文

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

2026年4月25日

内存管理-66-RMAP

摘要: 基于 msm-5.4 一、RMAP简介 二、相关结构 1. struct anon_vma struct anon_vma { //rmap.h struct anon_vma *root; struct rw_semaphore rwsem; atomic_t refcount; unsigned 阅读全文

posted @ 2026-04-25 15:53 Hello-World3 阅读(4) 评论(0) 推荐(0)

内存管理-66-内存管理锁汇总

摘要: 一、mm中的锁次序 1. rmap.c 中的注释 //Lock ordering in mm: inode->i_mutex (while writing or truncating, not reading or faulting) mm->mmap_sem page->flags PG_lock 阅读全文

posted @ 2026-04-25 14:09 Hello-World3 阅读(3) 评论(0) 推荐(0)

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

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

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

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

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

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

posted @ 2026-04-22 09:50 Hello-World3 阅读(7) 评论(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 阅读(7) 评论(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)

1 2 3 4 5 ··· 74 下一页

导航