随笔分类 -  内存管理

内存管理-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 阅读(27) 评论(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:21 Hello-World3 阅读(26) 评论(0) 推荐(0) 编辑

内存管理-40-watermark内存水位
摘要:基于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 阅读(118) 评论(0) 推荐(0) 编辑

内存管理-38-页标志-1-pageflags
摘要:基于msm-5.4 一、相关结构 1. enum pageflags enum pageflags { //include/linux/page-flags.h PG_locked, PG_referenced, PG_uptodate, PG_dirty, PG_lru, PG_active, P 阅读全文

posted @ 2024-11-05 15:33 Hello-World3 阅读(22) 评论(0) 推荐(0) 编辑

内存管理-31-系统内存统计-6-dumpsys meminfo
摘要:一、dumpsys meminfo命令数据格式 Exynos:/ # dumpsys meminfo Applications Memory Usage (in Kilobytes): Uptime: 9463100 Realtime: 9463100 Total PSS by process: 4 阅读全文

posted @ 2024-10-16 21:15 Hello-World3 阅读(33) 评论(0) 推荐(0) 编辑

内存管理-34-内存回收-shrinker的注册和调用
摘要:基于msm-5.4 一、简介 当存在内存压力时,会调用 shrinker 的 count_objects() 和 scan_objects() 进程内存回收操作。 二、注册逻辑 1. 注册 ashmem_init //ashmem.c register_shrinker(&ashmem_shrink 阅读全文

posted @ 2024-09-06 21:34 Hello-World3 阅读(69) 评论(0) 推荐(0) 编辑

内存管理-14-内核文档翻译-2-memory-allocation.rst 和 gfp_mask-from-fs-io.rst
摘要:一、memory-allocation.rst msm-5.4/Documentation/core-api/memory-allocation.rst 翻译: 内存分配指南 Linux 提供了各种用于内存分配的 API。您可以使用 `kmalloc()` 或 `kmem_cache_alloc() 阅读全文

posted @ 2024-09-02 20:32 Hello-World3 阅读(45) 评论(0) 推荐(0) 编辑

内存管理-33-GFP内存分配标志
摘要:基于msm-5.4 一、GFP分配标志 注: 这些标志为1表示功能是启用的。 1. 最初的纯整数 GFP 位掩码(不要直接使用) //include/linux/gfp.h #define ___GFP_DMA 0x01u #define ___GFP_HIGHMEM 0x02u #define _ 阅读全文

posted @ 2024-09-02 18:31 Hello-World3 阅读(136) 评论(0) 推荐(0) 编辑

内存管理-31-系统内存统计-4-/proc/vmstat
摘要:基于msm-5.4 一、打印内容 1. 打印格式 # cat /proc/vmstat /* 1. 打印全局数组 vm_zone_stat[] 的值,enum zone_stat_item 描述各条目 */ nr_free_pages 617775 nr_zone_inactive_anon 165 阅读全文

posted @ 2024-08-31 11:43 Hello-World3 阅读(54) 评论(0) 推荐(0) 编辑

内存管理-31-系统内存统计-3-/proc/zoneinfo
摘要:基于msm-5.4 一、概述 /proc/zoneinfo 节点包含当前系统所有内存管理区的信息。 1. 打印内容 # cat /proc/zoneinfo Node 0, zone Normal //Normal内存区 /* 第(1)部分,打印的是全局变量 vm_node_stat[i] 的值 * 阅读全文

posted @ 2024-08-27 21:32 Hello-World3 阅读(148) 评论(0) 推荐(0) 编辑

内存管理-31-系统内存统计-2-/proc/buddyinfo 和 /proc/pagetypeinfo
摘要:基于 msm-5.4 一、概述 1. 简介 /proc/buddyinfo 节点包含当前伙伴系统的简要信息,而 /proc/pagetypeinfo 则包含了当前伙伴系统详细信息,包括每个迁移类型和每个链表的成员数量等。 迁移类型最小的单位是页块,在Arm64架构中,页块的默认大小是4M. 但需注意 阅读全文

posted @ 2024-08-27 21:29 Hello-World3 阅读(103) 评论(0) 推荐(0) 编辑

内存管理-31-内存统计-1-初探
摘要:基于msm-5.4 一、概述 Linux内核为了帮助大家从宏观上把握系统内存的使用情况,在几大核心数据结构上都有相应的统计计数,如物理页面使用情况、伙伴系统分配情况、内存管理区的物理页面使用情况等。 1. vm_stat 计数值 内存管理模块定义了三个全局的 vm_stat 计数值 //includ 阅读全文

posted @ 2024-08-27 21:15 Hello-World3 阅读(30) 评论(0) 推荐(0) 编辑

内存管理-31-每进程内存统计-4-/proc/pid/smaps
摘要:基于msm-5.4 一、初探 1. 打印格式 # cat /proc/593/smaps ... 7e5a528000-7e5a626000 r--p 00000000 00:1f 5 /dev/binderfs/hwbinder Size: 1016 kB KernelPageSize: 4 kB 阅读全文

posted @ 2024-08-26 21:57 Hello-World3 阅读(36) 评论(0) 推荐(0) 编辑

导航