Maison base de données tutoriel 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;
}



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Adaptateur virtuel Microsoft Wi-Fi Direct : à quoi ça sert ? Adaptateur virtuel Microsoft Wi-Fi Direct : à quoi ça sert ? Jun 29, 2023 pm 12:33 PM

Vous vous demandez peut-être ce que fait l'adaptateur virtuel Microsoft Wi-Fi Direct sur votre PC. Soyez assuré que cet adaptateur réseau est Microsoft et totalement sécurisé. Mais si l'adaptateur perturbe votre activité et que vous vous demandez s'il vaut la peine de le conserver, ce guide vous donnera tout ce que vous devez savoir. À quoi sert l’adaptateur virtuel Microsoft Wi-Fi Direct ? Comme son nom l'indique, l'adaptateur virtuel Microsoft Wi-Fi Direct contribue à faire de votre PC un point d'accès sans fil. De cette façon, d'autres ordinateurs peuvent se connecter à votre PC pour accéder à Internet. Pour ce faire, il virtualise les adaptateurs réseau sans fil. De cette façon, votre unique adaptateur sans fil physique est converti en deux

Le code source de 25 agents IA est désormais public, inspiré de « Virtual Town » et de « Westworld » de Stanford Le code source de 25 agents IA est désormais public, inspiré de « Virtual Town » et de « Westworld » de Stanford Aug 11, 2023 pm 06:49 PM

Le public familier avec "Westworld" sait que ce spectacle se déroule dans un immense parc à thème pour adultes de haute technologie dans le monde futur. Les robots ont des capacités comportementales similaires à celles des humains, et peuvent se souvenir de ce qu'ils voient et entendent et répéter le scénario principal. Chaque jour, ces robots seront réinitialisés et ramenés à leur état initial. Après la publication de l'article de Stanford « Generative Agents : Interactive Simulacra of Human Behaviour », ce scénario ne se limite plus aux films et aux séries télévisées. L'IA a réussi à le reproduire. scène dans la « ville virtuelle » de Smallville 》Aperçu de l'adresse du papier cartographique : https://arxiv.org/pdf/2304.03442v1.pdf

Java comment parcourir un dossier et obtenir tous les noms de fichiers Java comment parcourir un dossier et obtenir tous les noms de fichiers Mar 29, 2024 pm 01:24 PM

Java est un langage de programmation populaire doté de puissantes capacités de gestion de fichiers. En Java, parcourir un dossier et obtenir tous les noms de fichiers est une opération courante, qui peut nous aider à localiser et traiter rapidement les fichiers dans un répertoire spécifique. Cet article explique comment implémenter une méthode permettant de parcourir un dossier et d'obtenir tous les noms de fichiers en Java, et fournit des exemples de code spécifiques. 1. Utilisez la méthode récursive pour parcourir le dossier. Nous pouvons utiliser la méthode récursive pour parcourir le dossier. La méthode récursive est un moyen de s'appeler, qui peut parcourir efficacement le dossier.

Le SUV phare panoramique intelligent Wenjie M9 d'AITO est sur le point de faire ses débuts Le SUV phare panoramique intelligent Wenjie M9 d'AITO est sur le point de faire ses débuts Sep 26, 2023 pm 02:41 PM

Selon les informations du 25 septembre, Huawei Mall a commencé à accepter des réservations pour la voiture Wenjie M9 d'AITO. Cette voiture se positionne comme un SUV phare intelligent panoramique doté de caractéristiques accrocheuses. Les consommateurs n'ont qu'à payer une caution de 5 000 yuans, qui peut être utilisée pour compenser le paiement final pouvant aller jusqu'à 10 000 yuans. La nouvelle voiture sera disponible en deux versions, à savoir la version à autonomie étendue et la version purement électrique. Le prix devrait se situer entre 500 000 et 600 000 yuans, ce qui le rend compétitif sur le marché des SUV haut de gamme. Le Wenjie M9 devrait être officiellement lancé au quatrième trimestre 2023. Aucune information sur sa configuration spécifique n'a encore été divulguée. Il est entendu que le modèle M9 adopte un langage de conception axé sur la famille. À en juger par les deux photos officielles, les lignes latérales du véhicule sont lisses et les poignées de porte adoptent un design caché, ajoutant de la technologie à l'ensemble du véhicule.

Exemple d'utilisation de la fonction PHP glob() : parcourir tous les fichiers d'un dossier spécifié Exemple d'utilisation de la fonction PHP glob() : parcourir tous les fichiers d'un dossier spécifié Jun 27, 2023 am 09:16 AM

Exemple d'utilisation de la fonction PHPglob() : Parcourir tous les fichiers d'un dossier spécifié Dans le développement PHP, il est souvent nécessaire de parcourir tous les fichiers d'un dossier spécifié pour implémenter une opération par lots ou une lecture de fichiers. La fonction glob() de PHP est utilisée pour répondre à cette exigence. La fonction glob() peut obtenir les informations de chemin de tous les fichiers qui remplissent les conditions dans le dossier spécifié en spécifiant un modèle de correspondance générique. Dans cet article, nous allons montrer comment utiliser la fonction glob() pour parcourir tous les fichiers d'un dossier spécifié.

Intégration Copilot : Collaboration dans SharePoint et Dynamics 365 Customer Service Intégration Copilot : Collaboration dans SharePoint et Dynamics 365 Customer Service Aug 03, 2023 pm 09:21 PM

Microsoft a annoncé aujourd'hui un premier aperçu de l'intégration de SharePoint avec Copilot dans Dynamics 365 Customer Service. Cette intégration donnera aux agents du service client l'accès à un plus large éventail de sources de connaissances, ce qui se traduira par une productivité accrue et de meilleures interactions avec les clients. Actuellement, Copilot dans Dynamics365 Customer Service exploite une base de connaissances interne pour fournir des conseils aux agents du service client. En suggérant des discussions et des brouillons de contenu d'e-mails, Copilot est devenu un outil clé pour augmenter la productivité de votre équipe de service client. Cependant, les commentaires des clients indiquent que l'outil doit exploiter les connaissances provenant de sources externes telles que SharePoint. Intégration de conduite collaborative SharePoint En réponse à ces commentaires,

Comparaison approfondie de Java Iterator et Iterable : analyse des avantages et des inconvénients Comparaison approfondie de Java Iterator et Iterable : analyse des avantages et des inconvénients Feb 19, 2024 pm 04:20 PM

Différences conceptuelles : Itérateur : Iterator est une interface qui représente un itérateur qui obtient les valeurs d'une collection. Il fournit des méthodes telles que MoveNext(), Current() et Reset(), vous permettant de parcourir les éléments de la collection et d'opérer sur l'élément actuel. Iterable : Iterable est également une interface, représentant un objet itérable. Il fournit la méthode Iterator(), qui renvoie un objet Iterator pour faciliter la traversée des éléments de la collection. Utilisation : Iterator : Pour utiliser Iterator, vous devez d'abord obtenir un objet Iterator, puis appeler la méthode MoveNext() pour passer au suivant.

Top 10 des plates-formes de trading de devises virtuelles dans le cercle de crypto-monnaie 2025 Top 10 des plates-formes de trading de devises virtuelles dans le cercle de crypto-monnaie 2025 Mar 12, 2025 pm 05:27 PM

Top 10 des plates-formes de devises virtuelles dans le cercle de la crypto-monnaie 2025: Okx, connu pour sa haute liquidité, ses échanges élevés, avec une énorme base d'utilisateurs; .

See all articles