Heim Datenbank MySQL-Tutorial 虚拟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;
}



Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Microsoft Wi-Fi Direct Virtual Adapter: Was macht er? Microsoft Wi-Fi Direct Virtual Adapter: Was macht er? Jun 29, 2023 pm 12:33 PM

Sie fragen sich vielleicht, was der Microsoft Wi-Fi Direct Virtual Adapter auf Ihrem PC macht. Seien Sie besser versichert, dass dieser Netzwerkadapter von Microsoft stammt und absolut sicher ist. Wenn der Adapter Ihre Aktivitäten jedoch durcheinander bringt und Sie sich fragen, ob es sich lohnt, ihn aufzubewahren, finden Sie in diesem Leitfaden alles, was Sie wissen müssen. Was macht der virtuelle Microsoft Wi-Fi Direct-Adapter? Wie der Name schon sagt, hilft der Microsoft Wi-Fi Direct Virtual Adapter dabei, Ihren PC zu einem drahtlosen Hotspot zu machen. Auf diese Weise können andere Computer eine Verbindung zu Ihrem PC herstellen, um auf das Internet zuzugreifen. Dies geschieht durch die Virtualisierung drahtloser Netzwerkadapter. Auf diese Weise wird Ihr einzelner physischer WLAN-Adapter in zwei virtuelle umgewandelt

Der Quellcode von 25 KI-Agenten ist jetzt öffentlich, inspiriert von Stanfords „Virtual Town' und „Westworld' Der Quellcode von 25 KI-Agenten ist jetzt öffentlich, inspiriert von Stanfords „Virtual Town' und „Westworld' Aug 11, 2023 pm 06:49 PM

Zuschauer, die mit „Westworld“ vertraut sind, wissen, dass diese Show in einem riesigen High-Tech-Themenpark für Erwachsene in der Zukunftswelt spielt. Die Roboter haben ähnliche Verhaltensfähigkeiten wie Menschen und können sich an das erinnern, was sie sehen und hören, und die Kernhandlung wiederholen. Jeden Tag werden diese Roboter zurückgesetzt und in ihren Ausgangszustand zurückversetzt. Nach der Veröffentlichung des Stanford-Artikels „Generative Agents: Interactive Simulacra of Human Behavior“ ist dieses Szenario nicht mehr auf Filme und Fernsehserien beschränkt Szene in Smallvilles „Virtual Town“ 》Übersichtskarten-Papieradresse: https://arxiv.org/pdf/2304.03442v1.pdf

Java, wie man einen Ordner durchläuft und alle Dateinamen abruft Java, wie man einen Ordner durchläuft und alle Dateinamen abruft Mar 29, 2024 pm 01:24 PM

Java ist eine beliebte Programmiersprache mit leistungsstarken Funktionen zur Dateiverarbeitung. In Java ist das Durchsuchen eines Ordners und das Abrufen aller Dateinamen ein üblicher Vorgang, der uns dabei helfen kann, Dateien in einem bestimmten Verzeichnis schnell zu finden und zu verarbeiten. In diesem Artikel wird erläutert, wie eine Methode zum Durchlaufen eines Ordners und zum Abrufen aller Dateinamen in Java implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. 1. Verwenden Sie die rekursive Methode, um den Ordner zu durchlaufen. Die rekursive Methode ist eine Möglichkeit, sich selbst aufzurufen und den Ordner effektiv zu durchlaufen.

AITOs smartes Flaggschiff-SUV Wenjie M9 mit Panorama-Panorama steht kurz vor seinem Debüt AITOs smartes Flaggschiff-SUV Wenjie M9 mit Panorama-Panorama steht kurz vor seinem Debüt Sep 26, 2023 pm 02:41 PM

Laut Nachrichten vom 25. September hat die Huawei Mall damit begonnen, Reservierungen für das Wenjie M9-Auto von AITO entgegenzunehmen. Dieses Auto ist als Panorama-Smart-Flaggschiff-SUV mit auffälligen Merkmalen positioniert. Verbraucher müssen lediglich eine Anzahlung von 5.000 Yuan leisten, mit der die Restzahlung von bis zu 10.000 Yuan ausgeglichen werden kann. Das neue Auto wird in zwei Versionen erhältlich sein, nämlich der Version mit erweiterter Reichweite und der reinen Elektroversion. Der Preis wird voraussichtlich zwischen 500.000 und 600.000 Yuan liegen, was ihn auf dem High-End-SUV-Markt wettbewerbsfähig macht. Wenjie M9 wird voraussichtlich im vierten Quartal 2023 offiziell auf den Markt kommen. Es wurden noch keine Informationen zu seiner spezifischen Konfiguration bekannt gegeben. Es wird davon ausgegangen, dass das M9-Modell eine familienorientierte Designsprache übernimmt. Den beiden offiziellen Bildern nach zu urteilen sind die Seitenlinien des Fahrzeugs glatt und die Türgriffe haben ein verstecktes Design, was dem gesamten Fahrzeug Technologie verleiht.

Beispiel für die Verwendung der PHP-glob()-Funktion: Alle Dateien in einem angegebenen Ordner durchsuchen Beispiel für die Verwendung der PHP-glob()-Funktion: Alle Dateien in einem angegebenen Ordner durchsuchen Jun 27, 2023 am 09:16 AM

Beispiel für die Verwendung der PHPglob()-Funktion: Alle Dateien in einem bestimmten Ordner durchsuchen Bei der PHP-Entwicklung ist es häufig erforderlich, alle Dateien in einem bestimmten Ordner zu durchsuchen, um einen Stapelvorgang oder das Lesen von Dateien zu implementieren. Um diese Anforderung zu erfüllen, wird die glob()-Funktion von PHP verwendet. Die Funktion glob() kann die Pfadinformationen aller Dateien im angegebenen Ordner abrufen, die die Bedingungen erfüllen, indem sie ein Platzhalter-Übereinstimmungsmuster angibt. In diesem Artikel zeigen wir, wie Sie mit der Funktion glob() alle Dateien in einem bestimmten Ordner durchlaufen

Copilot-Integration: Zusammenarbeit im SharePoint- und Dynamics 365-Kundenservice Copilot-Integration: Zusammenarbeit im SharePoint- und Dynamics 365-Kundenservice Aug 03, 2023 pm 09:21 PM

Microsoft hat heute eine frühe Vorschau der SharePoint-Integration mit Copilot in Dynamics 365 Customer Service angekündigt. Durch diese Integration erhalten Kundendienstmitarbeiter Zugriff auf ein breiteres Spektrum an Wissensquellen, was zu einer höheren Produktivität und verbesserten Kundeninteraktionen führt. Derzeit nutzt Copilot im Dynamics365 Customer Service eine interne Wissensdatenbank, um Kundendienstmitarbeitern Anleitung zu geben. Durch das Vorschlagen von Chat- und Entwurfs-E-Mail-Inhalten ist Copilot zu einem wichtigen Tool zur Steigerung der Produktivität Ihres Kundenservice-Teams geworden. Kundenfeedback zeigt jedoch, dass das Tool Wissen aus externen Quellen wie SharePoint nutzen muss. SharePoint Collaborative Driving Integration Als Reaktion auf dieses Feedback

Eingehender Vergleich von Java Iterator und Iterable: Vor- und Nachteile-Analyse Eingehender Vergleich von Java Iterator und Iterable: Vor- und Nachteile-Analyse Feb 19, 2024 pm 04:20 PM

Konzeptionelle Unterschiede: Iterator: Iterator ist eine Schnittstelle, die einen Iterator darstellt, der Werte aus einer Sammlung erhält. Es bietet Methoden wie MoveNext(), Current() und Reset(), mit denen Sie die Elemente in der Sammlung durchlaufen und das aktuelle Element bearbeiten können. Iterable: Iterable ist ebenfalls eine Schnittstelle, die ein iterierbares Objekt darstellt. Es stellt die Methode Iterator() bereit, die ein Iterator-Objekt zurückgibt, um das Durchlaufen der Elemente in der Sammlung zu erleichtern. Verwendung: Iterator: Um Iterator zu verwenden, müssen Sie zuerst ein Iterator-Objekt abrufen und dann die Methode MoveNext() aufrufen, um zum nächsten zu wechseln

Top 10 Tradingplattformen der virtuellen Währung im Cryptocurrency Circle 2025 Top 10 Tradingplattformen der virtuellen Währung im Cryptocurrency Circle 2025 Mar 12, 2025 pm 05:27 PM

Top 10 Währungsplattformen in der Kryptowährung von 2025: OKX, eine hohe Liquidität, eine geringe Gebühren und eine reichliche Binance; .

See all articles