随笔分类 -  linux mm

摘要:__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 阅读(1460) 评论(0) 推荐(0)
摘要:内存管理子系统的架构如图1.1所示,分为用户空间、内核空间和硬件3个层面。 图1.1 内存管理架构 1.用户空间 应用程序使用malloc()申请内存,使用free()释放内存。 malloc()和free()是glibc库的内存分配器ptmalloc提供的接口,ptmalloc使用系统调用brk或 阅读全文
posted @ 2020-11-01 14:52 aspirs 阅读(3153) 评论(0) 推荐(0)
摘要:相关背景: 文章开始前,先聊聊相关的背景知识,我们知道64位处理器的虚拟地址已经支持到了64bit,但是64位处理器的物理地址总线实际位宽并没有达到64bit,常用的地址线宽有39bit和48bit,最新的ARMv8.2架构也已经可以支持到52bit了。那为什么没有支持到64bit呢?以常用的48b 阅读全文
posted @ 2020-11-01 14:19 aspirs 阅读(3369) 评论(0) 推荐(0)
摘要:1、复合页的定义: 复合页(Compound Page)就是将物理上连续的两个或多个页看成一个独立的大页,它可以用来创建hugetlbfs中使用的大页(hugepage), 也可以用来创建透明大页(transparent huge page)子系统。但是它不能用在页缓存(page cache)中,这 阅读全文
posted @ 2020-10-29 22:19 aspirs 阅读(1104) 评论(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 阅读(2553) 评论(0) 推荐(1)