ARM64内存虚拟化分析(5)内存布局更新

news2024/10/6 16:27:38

 1 添加MR

        创建的MR需要通过函数memory_region_add_subregion()添加到系统中,提交MR,并最终往KVM提交内存的变化。

过程如下:

  1. 将mr设置为subregion的container;
  2. 设置subregion在虚拟机中的物理地址;
  3. 调用memory_region_transactio_begin()开始MR的提交;
  4. 根据优先级将subregion插入到mr->subregion中,若优先级相同,插入到末尾;
  5. 若mr和subregion都使能,更新memory_region_update_pending标志;
  6. 调用memory_region_transactin_commit()完成MR的提交;

2 提交MR

        开始提交MR是通过函数memory_region_transaction_begin()实现的,除了coalesced mmio相关的操作外,仅对memory_region_transaction_depth加1。

        真正提供MR是通过函数memory_region_transaction_commit()实现的,过程如下:

 

  1. 调用flatviews_reset()进行虚拟机内存平坦化(暂不分析);
  2. 分别调用通过MEMORY LISTENER通知各memory listener对应的回调函数,若增加内存情况,会调用region_add回调;若删除内存时,会调用region_del回调。

        当内存布局更新时,包括增加address space,将MR添加到父MR中等,最终都会对memory listener对应的回调进行调用。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FOHEART H1数据手套_Unity3D SDK开发

本教程介绍使用FOHEART H1数据手套在Unity3D中,显示每段骨骼的位置与旋转信息。 需要准备的软硬件: 1、FOHEART H1数据手套 2、MotionVenus客户端 3、Unity3D软件 4、开发包MotionVenus_U3DPlugin_v2.0_H1GloveDev_SDKTest.unitypackage 1、连接数…

HFSS学习笔记

以下所有操作,都是基于2022版本的HFSS。一、HFSS solution模式选择位置:HFSS-Solution type类型表格。二、单位设置位置:Modeler-Units点击后,通常选用单位为:mm三、绘制物体点击红圈1的draw,右侧有些形状可…

MCU-51:单片机实时时钟

目录一、什么是时钟1.1 实时时钟1.2 时序二、DS1302实时时钟2.1 DS1302介绍2.2 引脚定义和应用电路三、代码演示3.1 数字时钟3.2 DS1302可调时钟注意:一定要看一、什么是时钟 1.1 实时时钟 real time clock,真实时间,就是所谓的xx年x月x日x…

我的统计学学习笔记(持续更新)

目录数据:变量和观测统计学描述统计数据的收集数据的可视化数据的规律性特征统计推断参数估计假设检验贝叶斯统计基础知识:概率论数据:变量和观测 变量(column)、观测(row)、测量(assign number to observation)。 统计学 描述统计 数据…

YOLO-V5 系列算法和代码解析(四)—— 网络结构

文章目录辅助工具网络配置文件网络构建网络推理绘制网络结构辅助工具 借助辅助工具可视化网络结构,达到辅助阅读代码,进而辅助手动绘制结构清晰的网络结构,最终理解整个网络架构的目的,为深入学习【yolo-v5】提供有效的保障。 ten…

阿里妈妈内容风控模型预估引擎的探索和建设

作者:徐雄飞、金禄旸、滑庆波、李治 内容作为营销的重要载体,能够促进信息的交流和传播。在营销场景中,广告高曝光的特性放大了风险外漏带来的一系列问题,因此对内容的风控审核就显得至关重要。本文将为大家分享阿里妈妈内容风控模…

DOM节点操作

节点操作 改变元素节点中的内容可以使用两个相关属性:innerHTML innerText 注意字符串不能换行 innerHTML属性能以HTML语法设置节点中的内容 innerText属性只能以纯文本的形式设置节点中的内容 节点创建 document.createElement()方法用于创建一个指定tagname…

android studio编译慢

前言 android studio编译慢一直就是一个问题,很久以前使用eclipse,编译速度很快,在还没开始正式工作的时候就开始使用android studio,那时候还是0.8 很原始,主要那时候还没开始工作,所以编译快慢没感觉&am…

TikTok Shop跨境服务市场上线;俄罗斯速卖通发布延误通知

让我们一起来看看今日都有哪些新鲜事吧!01 TikTok Shop跨境服务市场上线 12月28日消息,服务商是助力商家在TikTok Shop成长非常重要的合作伙伴,TikTok Shop希望通过上线服务市场帮助商家快速了解服务商,筛选符合自身需求的服务商…

【JavaSE成神之路】Java面向对象(上)

哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java的面向对象。 首先我们回顾一下,之前的章节我们学到了哪些东西。 我们学会了写一个类,然后里面弄一个main方法&am…

layer2 实现方式之状态通道

状态通道也算是一种比较热门的扩容方案,状态通道解决方案通过将链下交互和链上清算隔离开,能够在保障一定程度的非中心化和资产安全性的同时,实现速度更快、费用更低的交易。状态通道作为一种链下扩容方案,从一般到特殊分为通用状…

时光飞逝,博客两周年啦

原文链接:时光飞逝,博客两周年啦 博客自 2020年12月10日 运营以来,已经成功走过两年啦(差点成为两年半的博主)。 在这两年中,曾替无数网友解答了各种关于建站的疑难杂症,此处略过 30000 字。 …

linux系统动态库的连接

前言:在应用程序开发过程中,难免会用到第三方库,有的是开源的第三方库,有的是不开源的,还有的是自己写的库。上篇文章总结了应用程序调用静态库《linux中静态库编译与使用》,本文总结了几种在应用程序中快速…

八、esp8266建立基本网络服务器

1、网络服务器 (1)网络服务器有很多类型,它们功能十分丰富。通常承担网络服务器工作的设备都是运算能力比较强大的电脑。 (2)ESP8266虽然也能实现网络服务器的一些功能,但是毕竟它的运算能力是无法与那些昂贵的服务器电脑相比较,因此ESP826…

STM32的升级--ICP/ISP/IAP

ICP/ISP/IAP 区别 ICP(In-Circuit Programing): 通过J-Link/SWD等下载器烧写程序,上位机需要借助其他硬件的参与才能更新固件,可以更新MCU的所有存储区域; ISP(In-System Programing): 通过MCU出厂时固化的一个bootloader升级程序&#xff0…

第四节 空间参考类的属性说明

空间参考类:SpatialReference 说明 空间参考类是arcpy下面的一级类,用于定义空间参考的各类信息,主要是坐标信息。 空间参考Spatial Reference与坐标系最大的区别,在于空间参考除了定义坐标系以外,还要定义一系列地理…

Java BigDecimal总结

文章目录Java BigDecimal总结概述float 和 double的问题创建BigDecimal对象BigDecimal.valueOf()源码分析equals() 和 compareTo()BigDecimal设置精度和舍入模式舍入模式介绍BigDecimal转字符串DecimalFormat 格式化总结Java BigDecimal总结 概述 BigDecimal类在Java的java.m…

一个简单的数学问题

这个东西发提问没人看就发在这里了 一个球体的体积V_Sphere是容易求的: 则我们很容易求出半径为1的圆球的体积为. 众所周知方程【】在三维笛卡尔坐标系中的图像为一个半径为R的圆, 则R取1时这个方程的图像就成了一个半径为1的圆。 那么我们就能推出f(x…

飞行机器人专栏(九)-- 多传感器固定端口分配

目录 ​编辑 1 /dev/设备列表 2 ttyUSB*端口ID 3 端口别名rules动态绑定 4 launch文件配置 1 /dev/设备列表 lsusblsusb -t 2 ttyUSB*端口ID 查看/dev/ttyUSB* 设备端口ID :0403:6014 找到对应USB的设备ID,这里是 0403:…

测试新风向|视频 AI 转流程图初体验

前言: 😄作者简介:小曾同学.com,小伙伴们也可以叫我小曾,一个致力于测试开发的博主⛽️ 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:…