
内存管理
文章平均质量分 76
lunhui2016
这个作者很懒,什么都没留下…
展开
-
kmalloc使用不当导致内存分配失败问题
#1. 介绍本文记录分析驱动模块kmalloc接口的flags参数使用不当,导致分配内存失败的问题,主要记录了分析过程和给出的解决方法。#1.1 背景介绍在对spi nand flash进行读写老化,因此在用户态通过rwcheck工具对flash进行读写老化,在读写老化过程中,高概率出现内核oom现象,具体板级信息说明如下:内存大小:128MCPU:双核A7#2. log分析在读写测试时,oom log如下所示:remove : /mnt/UDISK/rwcheck.tmp.36 ...原创 2021-05-15 23:56:00 · 3140 阅读 · 2 评论 -
kmalloc最大能申请多少内存?
1. 概述本文主要分析kmalloc接口申请内存的大小情况,用于记录kmalloc分配内存的过程。内核版本:Linux 4.92.分析记录针对kmalloc最大能申请多少内存,网上众说纷纭,意见各不相同,因此最终决定自己针对源码分析,记录如下:首先看kmalloc()函数实现,在include/linux/slab.h中,代码如下:#ifdef CONFIG_SLAB/* * The largest kmalloc size supported by the SLAB allocators原创 2021-03-02 23:50:43 · 4270 阅读 · 1 评论 -
ION内存管理器介绍
ION与CMA学习1. ION介绍ION是google在Android4.0为了解决内存碎片化管理而引入的通用内存管理器,用来支持不同的内存分配机制,如CARVOUT(PMEM),物理连续内存(kmalloc),虚拟地址连续但物理地址不连续内存(vmalloc),IOMMU等。2. ION框架[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0CxQF3tE-1609049784161)(./figures/framework.png)]名词解释:ion clien原创 2020-12-27 14:55:31 · 7409 阅读 · 0 评论 -
struct page的flags成员和常用函数说明
1.概述本文主要解析struct page的flags成员中相关bit的含义以及其重要的标志位说明,简单说明一下Linux内核常见的PageXXX()/SetPageXXX()/ClearPageXXX()函数的作用和实现。内核版本:linux-4.92.struct page结构struct page { /* 第一个双字大小的区块 */ unsigned long flags; ...原创 2020-02-22 15:44:39 · 2623 阅读 · 0 评论