随笔分类 -  linux mm

摘要:shrink_page_list(struct list_head *page_list, struct pglist_data *pgdat, struct scan_control *sc, enum ttu_flags ttu_flags, struct reclaim_stat *stat, 阅读全文
posted @ 2020-11-04 22:33 aspirs 阅读(689) 评论(0) 推荐(0) 编辑
摘要:1 内存访问 (1)内存通过CPU的地址总线来寻址定位,然后通过CPU数据总线来读写。 (2)CPU的地址总线的位数是CPU设计时确定的,因此一款CPU所能寻址的范围是一定的,而内存是需要占用CPU的寻址空间的。 (3)内存与CPU的这种总线式连接方式是一种直接连接,优点是效率高访问快,缺点是资源有 阅读全文
posted @ 2020-11-04 13:23 aspirs 阅读(1348) 评论(0) 推荐(0) 编辑
摘要:__virt_to_phys与__phys_to_virt unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order) { struct page *page; /* * __get_free_pages() returns 阅读全文
posted @ 2020-11-01 18:47 aspirs 阅读(1302) 评论(0) 推荐(0) 编辑
摘要:内存管理子系统的架构如图1.1所示,分为用户空间、内核空间和硬件3个层面。 图1.1 内存管理架构 1.用户空间 应用程序使用malloc()申请内存,使用free()释放内存。 malloc()和free()是glibc库的内存分配器ptmalloc提供的接口,ptmalloc使用系统调用brk或 阅读全文
posted @ 2020-11-01 14:52 aspirs 阅读(2894) 评论(0) 推荐(0) 编辑
摘要:相关背景: 文章开始前,先聊聊相关的背景知识,我们知道64位处理器的虚拟地址已经支持到了64bit,但是64位处理器的物理地址总线实际位宽并没有达到64bit,常用的地址线宽有39bit和48bit,最新的ARMv8.2架构也已经可以支持到52bit了。那为什么没有支持到64bit呢?以常用的48b 阅读全文
posted @ 2020-11-01 14:19 aspirs 阅读(3047) 评论(0) 推荐(0) 编辑
摘要:1、复合页的定义: 复合页(Compound Page)就是将物理上连续的两个或多个页看成一个独立的大页,它可以用来创建hugetlbfs中使用的大页(hugepage), 也可以用来创建透明大页(transparent huge page)子系统。但是它不能用在页缓存(page cache)中,这 阅读全文
posted @ 2020-10-29 22:19 aspirs 阅读(1020) 评论(0) 推荐(0) 编辑
摘要:本文包括如下三部分: 基本介绍与输出介绍 第一行基础信息讲解 详细信息讲解 3.1 Size 3.2 Rss 3.3 Pss、Shared/Private_Clean/Dirty 3.4 Referenced 3.5 Anonymous 3.6 ShmemPmdMapped 3.7 Shared/P 阅读全文
posted @ 2020-10-29 14:31 aspirs 阅读(2335) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示