首页 数据库 mysql教程 虚拟MMU---客户机页表遍历

虚拟MMU---客户机页表遍历

Jun 07, 2016 pm 03:36 PM
m 客户 虚拟 遍历

客户 机页表的遍历 MMU的功能: 虚拟 机地址转换为物理地址,下面函数模拟此过程。 1.数据结构 struct guest_walker { int level; gfn_t table_gfn[PT_MAX_FULL_LEVELS]; pt_element_t ptes[PT_MAX_FULL_LEVELS]; gpa_t pte_gpa[PT_MAX_FULL_LEVELS]; unsign

客户机页表的遍历

MMU的功能:虚拟机地址转换为物理地址,下面函数模拟此过程。

1.数据结构

 struct guest_walker {
        int level;
        gfn_t table_gfn[PT_MAX_FULL_LEVELS];
        pt_element_t ptes[PT_MAX_FULL_LEVELS];
        gpa_t pte_gpa[PT_MAX_FULL_LEVELS];
        unsigned pt_access;
        unsigned pte_access;
        gfn_t gfn;
        u32 error_code;
};
           +-------+
           |       |
           +-------+
           |   c   |
           |-------|            |       |
           +-------+
           |-------|      
           |-------|       
           +-------+             某级页表
a:页表项基地址
b:index的地址
c:index的地址内容

遍历完成后,数据结构内容为
gfn:客户机页表转换后物理地址页框号
假设PT_MAX_FULL_LEVELS=4
table_gfn【0-3】存放 4级页表项基地址
pte_gpa【0-3】  存放4级页表项中index基地址
ptes【0-3】     存放4级页表项中index基地址内容
pt_access:     gfn的访问权限
pte_access:    gfn的访问权限

2:客户机页表的遍历,也是虚拟MMU
static int FNAME(walk_addr)(struct guest_walker *walker,
                            struct kvm_vcpu *vcpu, gva_t addr,
                            int write_fault, int user_fault, int fetch_fault)
   walker->level = vcpu->arch.mmu.root_level;//64位客户机系统,页表级数为4.
   pte = vcpu->arch.cr3; //页目录基地址
   for (;;) { //从64位客户机页目录开始遍历,最后到页表
                index = PT_INDEX(addr, walker->level);

                table_gfn = gpte_to_gfn(pte);
                pte_gpa = gfn_to_gpa(table_gfn);
                pte_gpa += index * sizeof(pt_element_t);

                walker->table_gfn[walker->level - 1] = table_gfn; //存放页表基地址 
                walker->pte_gpa[walker->level - 1] = pte_gpa;     //存放页表index基地址

                if (kvm_read_guest(vcpu->kvm, pte_gpa, &pte, sizeof(pte)))//获取存放页表index基地址页表项
                        goto not_present;
                 pte_access = pt_access & FNAME(gpte_access)(vcpu, pte);//获取存放页表index基地址页表项权限

                walker->ptes[walker->level - 1] = pte;//存放存放页表index基地址页表项

                if ((walker->level == PT_PAGE_TABLE_LEVEL)//页表的最后一级存放客户机物理页地址
                {
                        int lvl = walker->level;

                        walker->gfn = gpte_to_gfn_lvl(pte, lvl);//转换客户机物理页地址为客户机物理页框号
                        walker->gfn += (addr & PT_LVL_OFFSET_MASK(lvl))
                                        >> PAGE_SHIFT;
                        break;
                }

               pt_access = pte_access;
                --walker->level; //遍历下一级页表
             }
        //页表遍历完成后,获取页表的访问权限,存放到数据结构中
        walker->pt_access = pt_access;
        walker->pte_access = pte_access;
        pgprintk("%s: pte %llx pte_access %x pt_access %x\n",
                 __func__, (u64)pte, pt_access, pte_access);
        return 1;
}



本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Microsoft Wi-Fi 直连虚拟适配器:它有什么作用? Microsoft Wi-Fi 直连虚拟适配器:它有什么作用? Jun 29, 2023 pm 12:33 PM

您可能想知道MicrosoftWi-Fi直接虚拟适配器在您的PC上的作用。最好放心,此网络适配器Microsoft且完全安全。但是,如果适配器弄乱了您的活动,并且您想知道它是否值得保留,本指南将为您提供您需要了解的所有信息。MicrosoftWi-FiDirect虚拟适配器有什么作用?顾名思义,MicrosoftWi-Fi直接虚拟适配器有助于使您的PC成为无线热点。这样,其他计算机可以连接到您的PC以访问互联网。它通过虚拟化无线网络适配器来实现此目的。这样,您的单个物理无线适配器将转换为两个虚拟

25个AI智能体源码现已公开,灵感来自斯坦福的「虚拟小镇」和《西部世界》 25个AI智能体源码现已公开,灵感来自斯坦福的「虚拟小镇」和《西部世界》 Aug 11, 2023 pm 06:49 PM

熟悉《西部世界》的观众都了解,这部剧设定在未来世界的一个巨大高科技成人主题乐园中,机器人们具备与人类相似的行为能力,能够记忆所见所闻,重复核心故事情节。每天,这些机器人都会被重置,回到初始状态在斯坦福论文《GenerativeAgents:InteractiveSimulacraofHumanBehavior》发布后,这种情景不再仅限于影视剧中,AI已经成功复现了这一场景Smallville的「虚拟小镇」概览图论文地址:https://arxiv.org/pdf/2304.03442v1.pdf

Java如何遍历文件夹并获取所有文件名 Java如何遍历文件夹并获取所有文件名 Mar 29, 2024 pm 01:24 PM

Java是一种流行的编程语言,具有强大的文件处理功能。在Java中,遍历文件夹并获取所有文件名是一种常见的操作,可以帮助我们快速定位和处理特定目录下的文件。本文将介绍如何在Java中实现遍历文件夹并获取所有文件名的方法,并提供具体的代码示例。1.使用递归方法遍历文件夹我们可以使用递归方法来遍历文件夹,递归方法是一种自身调用自身的方式,可以有效地遍历文件夹中

AITO旗下问界M9全景智慧旗舰SUV即将登场 AITO旗下问界M9全景智慧旗舰SUV即将登场 Sep 26, 2023 pm 02:41 PM

9月25日消息,华为商城开始接受AITO旗下问界M9汽车的预订。这款车被定位为全景智慧旗舰SUV,具备引人注目的特点。消费者只需支付5000元的意向金,即可抵扣高达10000元的尾款新车将提供两个版本,分别是增程版和纯电版。预计售价在50万元到60万元之间,使得它在高端SUV市场上具有竞争力。预计问界M9将在2023年第四季度正式上市,目前还没有公开其具体配置的信息据了解,M9车型采用了家族化的设计语言。从官方发布的两张图片来看,车辆的侧面线条流畅,并且车门把手采用了隐藏式设计,给整车增添了科技

PHP glob()函数使用示例:遍历指定文件夹中的所有文件 PHP glob()函数使用示例:遍历指定文件夹中的所有文件 Jun 27, 2023 am 09:16 AM

PHPglob()函数使用示例:遍历指定文件夹中的所有文件在PHP开发中,经常需要遍历指定文件夹中的所有文件,以实现文件批量操作或读取。PHP的glob()函数正是用来实现这种需求的。glob()函数可以通过指定一个通配符匹配模式,来获取指定文件夹中符合条件的所有文件的路径信息。在这篇文章中,我们将会演示如何使用glob()函数来遍历指定文件夹中的所有文件

Copilot 集成:在 SharePoint 和 Dynamics 365 客户服务中的合作 Copilot 集成:在 SharePoint 和 Dynamics 365 客户服务中的合作 Aug 03, 2023 pm 09:21 PM

Microsoft今天宣布了Dynamics365客户服务中SharePoint与Copilot集成的早期预览版。这种集成将使客户服务代理能够访问更广泛的知识来源,从而提高生产力并改善客户互动。目前,Dynamics365客户服务中的Copilot利用内部知识库为客户服务代理提供指导。通过建议聊天和草稿电子邮件内容,Copilot已成为提高客户服务团队生产力的关键工具。但是,客户反馈表明该工具需要利用来自外部资源(如SharePoint)的知识。SharePoint协同驾驶集成为了响应这些反馈,

Java Iterator 和 Iterable 的深入比较:优缺点分析 Java Iterator 和 Iterable 的深入比较:优缺点分析 Feb 19, 2024 pm 04:20 PM

概念差异:Iterator:Iterator是一个接口,代表一个从集合中获取值的迭代器。它提供了MoveNext()、Current()和Reset()等方法,允许你遍历集合中的元素,并对当前元素进行操作。Iterable:Iterable也是一个接口,代表一个可迭代的对象。它提供了Iterator()方法,用于返回一个Iterator对象,以便于遍历集合中的元素。使用方式:Iterator:要使用Iterator,需要先获得一个Iterator对象,然后调用MoveNext()方法来移动到下一

2025年币圈虚拟货币交易平台前十名 2025年币圈虚拟货币交易平台前十名 Mar 12, 2025 pm 05:27 PM

2025年币圈虚拟货币交易平台前十名:1. OKX,以高流动性、低费用和丰富产品着称;2. Binance,全球最大交易所之一,用户基础庞大;3. Gate.io,老牌交易所,安全稳定;4. Kraken,专注专业交易者,安全合规;5. Huobi Global,全球知名,技术实力强;6. Coinbase,美国领先交易所,易用合规;7. KuCoin,交易对丰富,费用低廉。

See all articles