上一页 1 2 3 4 5 6 7 ··· 74 下一页

2026年4月7日

xarray-2-实现与实验

摘要: 基于msm-5.4 一、简介 1. 实现代码位置 //实现代码位置: ./lib/xarray.c ./include/linux/xarray.h //内核自带测试代码: ./lib/test_xarray.c ./tools/testing/radix-tree/xarray.c ./tools 阅读全文

posted @ 2026-04-07 15:30 Hello-World3 阅读(12) 评论(0) 推荐(0)

xarray-1-理论和xarray.rst翻译

摘要: 一、xarray实现原理简介 XArray 本质上是 Linux 内核里对 radix tree/IDR 一类结构的统一升级版。它表面上提供的是“超大稀疏数组”语义,底层实现则是一棵按位分层的多叉树,加上 RCU、标记位、内部条目和范围条目等机制。 实现本质:XArray 是一棵基数为 64 的稀疏 阅读全文

posted @ 2026-04-07 14:48 Hello-World3 阅读(26) 评论(0) 推荐(0)

2026年4月4日

kernel经典工具函数

摘要: 一、内存分配 1. 分配可变长结构体大小对应的内存 //linux/overflow.h #define struct_size(p, member, n) \ __ab_c_size(n, sizeof(*(p)->member) + __must_be_array((p)->member), s 阅读全文

posted @ 2026-04-04 16:10 Hello-World3 阅读(6) 评论(0) 推荐(0)

2026年4月2日

内存管理-5-物理内存数据结构-4-struct address_space

摘要: 基于msm-5.4 一、简介 在 Linux 内存管理里,struct address_space 可以理解为“一个可缓存、可映射对象在内核中的内存视图描述符”。 最常见的对象是文件 inode,对应 inode.i_mapping。它把这几个关键维度绑在一起:(1) 页缓存管理(哪些页在 page 阅读全文

posted @ 2026-04-02 17:27 Hello-World3 阅读(10) 评论(0) 推荐(0)

内存管理-5-物理内存数据结构-3-struct page

摘要: 基于msm-5.4 一、struct page简介 物理页帧,系统中的每个物理页面都有一个与之关联的 struct page,用于跟踪我们当前正在使用该页面的用途。请注意,我们无法跟踪哪些任务正在使用页面,但如果它是页面缓存页面,rmap 结构可以告诉我们谁在映射它。 如果您使用 alloc_pag 阅读全文

posted @ 2026-04-02 10:41 Hello-World3 阅读(19) 评论(0) 推荐(0)

内存管理-5-物理内存数据结构-2-struct zone

摘要: 基于msm-5.4 一、struct zone简介 描述一个内存区。内存可以按照不同的用途与类型划分为不同的区域,zone结构表示内存区域,系统存在的zone见 enum zone_type 成员。 ZONE_DMA: 表示这片区域用于DMA,一般是给x86使用的,64位上将其取消掉了,arm系统上 阅读全文

posted @ 2026-04-02 10:34 Hello-World3 阅读(11) 评论(0) 推荐(0)

2026年4月1日

内存管理-61-内存回收-1-理论学习

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

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

2026年3月31日

内存管理-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 阅读(30) 评论(0) 推荐(0)

2026年3月30日

内存管理-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 阅读(88) 评论(0) 推荐(0)

2026年3月28日

内存管理-61-内存压缩-1-理论

摘要: 一、压缩算法 页面可以被压缩,是因为程序内存中存在大量重复字节、对齐填充、文本规律、结构冗余等,这些冗余被压缩算法(如 lz4/zstd)识别并用短编码替代;不可压缩的页是那些字节分布接近随机的页(加密数据、压缩流等),它们在 zram 中会以原始尺寸存储。 以 zram 常用算法为例(lz4/lz 阅读全文

posted @ 2026-03-28 12:13 Hello-World3 阅读(51) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 74 下一页

导航