OK6410A 开发板 (八) 37 linux-5.11 OK6410A 内存管理第五阶段

2024-05-27 15:48

本文主要是介绍OK6410A 开发板 (八) 37 linux-5.11 OK6410A 内存管理第五阶段,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

vmalloc
vmalloc_initfor_each_possible_cpu(i) {// vfree_deferred 类型变量的 链表 和 工作任务 free_work// free_work用于vfree执行时延迟异步释放vmalloc内存struct vfree_deferred *p;...// vmap_block_queue 类型变量的链表和锁// vmap_block_queue 是 非连续内存块队列管理结构struct vmap_block_queue *vbq;...}// 将vmalloc_init之前的过程中分配的vmalloc区域插入红黑树vmap_area_root中// 将挂接在vmlist链表的各项__insert_vmap_area()输入到非连续内存块的管理中// vmlist的初始化是通过iotable_init初始化(arm32)// 最终所有的vmalloc的eara都会挂到vmap_area_list链表中for (tmp = vmlist; tmp; tmp = tmp->next) {struct vmap_area *va = kmem_cache_zalloc(vmap_area_cachep, GFP_NOWAIT);va->vm = tmp;...insert_vmap_area(va, &vmap_area_root, &vmap_area_list);}vmap_init_free_space();vmap_initialized = true;
vmap_area  结构体 中 有两个成员1. list , 用来挂 在 vmap_area_list2. rb_node , 用来挂 在 vmap_area_root其他成员
va_start	vmalloc区的虚拟区间起始地址
va_end		vmalloc区的虚拟区间结束地址
flags		类型标识
rb_node		插入红黑树vmap_area_root的节点
list		用于加入链表vmap_area_list的节点
purge_list	用于加入到全局链表vmap_purge_list中
vm			指向对应的vm_struct

这篇关于OK6410A 开发板 (八) 37 linux-5.11 OK6410A 内存管理第五阶段的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007915

相关文章

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、