TWI620124B - 虛擬機器控制結構陰影化技術 - Google Patents

虛擬機器控制結構陰影化技術 Download PDF

Info

Publication number
TWI620124B
TWI620124B TW101150579A TW101150579A TWI620124B TW I620124 B TWI620124 B TW I620124B TW 101150579 A TW101150579 A TW 101150579A TW 101150579 A TW101150579 A TW 101150579A TW I620124 B TWI620124 B TW I620124B
Authority
TW
Taiwan
Prior art keywords
virtual machine
root mode
root
processor
vmcs
Prior art date
Application number
TW101150579A
Other languages
English (en)
Other versions
TW201339971A (zh
Inventor
安德列 安德森
吉伯 尼格
史考特 羅傑斯
勞倫斯 史密斯三世
理查 優里
史帝芬 班尼
Original Assignee
英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201339971A publication Critical patent/TW201339971A/zh
Application granted granted Critical
Publication of TWI620124B publication Critical patent/TWI620124B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本案揭示用於處理虛擬機器控制結構陰影化技術的裝置及方法之實施例。在一個實施例中,裝置包括指令硬體、執行硬體,以及控制邏輯。指令硬體係用以接收指令。第一指令係用以將處理器自根模式轉移至非根模式。非根模式係用以在虛擬機器中執行客用軟體,其中,處理器係用以在偵測到虛擬機器退出事件時即返回至根模式。第二指令係用以存取用來控制虛擬機器之資料結構。執行硬體係用以執行指令。當該第二指令被執行於該非根模式中時,控制邏輯致使該處理器存取陰影資料結構而非存取該資料結構,而不需返回至該根模式來進行該存取。

Description

虛擬機器控制結構陰影化技術 發明領域
本發明係關於資訊處理領域,且更具體而言,係關於虛擬化資訊處理系統中的資源之領域。
發明背景
一般而言,雖然每一個作業系統(「OS」)被設計成具有對系統及其資源之完全的、直接的控制權,但資訊處理系統中的資源虛擬化概念允許一或多個作業系統(每一個,「OS」)之多個實例運行於單一資訊處理系統上。虛擬化通常藉由使用軟體(如,虛擬機器監視程式或「VMM」)來向每一個OS提供「虛擬機器」(「VM」),該虛擬機器具有虛擬資源,包括OS可完全及直接控制的一或多個虛擬處理器,同時VMM維護用於實施虛擬化政策(諸如,在VM中共用及/或分配實體資源)之系統環境(「虛擬化環境」)。運行於VM上的每一個OS及任何其他軟體稱為「客體(guest)」或「客用軟體(guest software)」,而「主機(host)」或「主機軟體(host software)」係運行於虛擬化環境外部的軟體,諸如VMM。
資訊處理系統中之處理器可例如藉由以兩種模式操作而支援虛擬化:「根」模式(“root”mode),其中,軟體直接運行於硬體上,且在任何虛擬化環境之外部;及「非根」模式(“non-root”mode),其中,軟體運行於其所期望的特權級,但在由運行於根模式之VMM代管的虛擬化環境內。在虛擬化環境中,某些事件、操作及狀況(諸如,外部中斷或存取特權暫存器或資源之企圖)可被攔截,亦即,導致處理器退出虛擬化環境以便VMM可操作(例如)來實施虛擬化政策(「VM退出」)。處理器可支援用於建立、進入、退出及維護虛擬化環境之指令,及可包括指示或控制處理器之虛擬化能力的暫存器位元或其他結構。
依據本發明之實施例,係特地提出一種處理器,該處理器包含:指令硬體,該指令硬體用以接收多個指令,該等指令包括:第一指令,該第一指令用以將該處理器自根模式轉移至非根模式以便在至少一個虛擬機器中執行客用軟體,其中,該處理器係用以在偵測到多個虛擬機器退出事件中的任一者時即返回至該根模式,以及第二指令,該第二指令用以存取用來控制該至少一個虛擬機器 的至少一個資料結構;執行硬體,該執行硬體用以執行該第一指令及該第二指令;以及控制邏輯,當該第二指令執行於該非根模式中時,該控制邏輯用以致使該處理器存取陰影資料結構而非存取該至少一個資料結構,而不需返回至該根模式來執行該存取。
100‧‧‧分層虛擬化架構
110‧‧‧裸平台硬體
120‧‧‧處理器
122‧‧‧指令硬體
124‧‧‧執行硬體
126‧‧‧控制邏輯
130‧‧‧記憶體
132‧‧‧虛擬機器控制結構(VMCS)
134‧‧‧陰影VMCS
140‧‧‧虛擬機器監視程式(VMM)
150‧‧‧虛擬機器(VM)
152‧‧‧客體作業系統(OS)
154、155‧‧‧客體應用程式
160、170、180‧‧‧VM
162‧‧‧客體VMM
172、182、‧‧‧客體OS
210‧‧‧裸平台硬體
220‧‧‧VMM
221、241、251、261‧‧‧VMCS
222、232、242、252、262‧‧‧父代指標
223、233、243、253、263‧‧‧子代指標
234、244、254、264‧‧‧事件位元欄位
235、245、255、265‧‧‧VMCS陰影化賦能欄位
236、246、256、266‧‧‧VMCS陰影化地址欄位
240‧‧‧客體VMM
260‧‧‧客體
300、400、500‧‧‧方法
310、312、314、320、322、330、332、340、342、344、346、350、352、354、356‧‧‧方框
410、412、414、420、422、432、440、442、444、446、452、454、456‧‧‧方框
510、512、514、520、522、532、540、542、544、546、550、552、554、556‧‧‧方框
本發明在附圖中藉由實例而非限制來進行例示。
圖1例示分層虛擬化架構,本發明之實施例可於該架構中操作。
圖2例示分層虛擬化架構中的VMM之客體階層。
圖3、圖4及圖5例示根據本發明之實施例的用於VMCS陰影化的方法。
較佳實施例之詳細說明
下文描述用於虛擬機器控制結構陰影化技術的處理器、方法及系統的實施例。在此描述中,可陳述眾多特定細節(諸如,組件及系統組態)以提供對本發明的更徹底的理解。然而,熟習此項技術者應瞭解,本發明可在無此等特定細節的狀況下實踐。此外,未詳細展示一些眾所周知的結構、電路等等以避免不必要地模糊本發明。
虛擬化環境之效能可藉由降低VM退出頻率 而得到改善。本發明之實施例可用於降低在分層、巢套或遞迴虛擬化環境中的VM退出頻率,該虛擬化環境即虛擬機器監視程式或超管理器可在非根模式中在虛擬機器上運行客體且創建、管理及/或以其他方式代管一或多個其他虛擬機器之虛擬化環境。
圖1例示分層虛擬化架構100,本發明之實施例可於該架構中操作。在圖1中,裸平台硬體110可為能夠執行任何OS、VMM或其他軟體之任何資訊處理裝置。 舉例而言,裸平台硬體110可為個人電腦、大型電腦、可攜式電腦、手持型裝置、機上盒或任何其他計算系統之硬體。裸平台硬體110包括處理器120及記憶體130。
處理器120可為任何類型之處理器,包括通用微處理器(諸如,來自英特爾公司的Core®處理器系列、Atom®處理器系列或其他處理器系列中的處理器),或者來自另一公司的另一處理器或數位信號處理器或微控制器。雖然圖1僅展示一個此處理器120,但裸平台硬體110可包括任何數目的處理器,包括任何數目的多核心處理器,其中,每一個多核心處理器皆具有任何數目的執行核心及任何數目的多執行緒處理器,其中,每一個處理器皆具有任何數目的執行緒。
記憶體130可為靜態或動態隨機存取記憶體、基於半導體的唯讀或快閃記憶體、磁性或光學碟片記憶體、可由處理器120讀取的任何其他類型之媒體,或者此等媒體之任何組合。裸平台硬體110之處理器120、記 憶體130及任何其他組件或裝置可根據任何已知方法來彼此耦接或通訊,諸如直接或間接經由一或多個匯流排、點對點、或者其他有線或無線連接來進行。裸平台硬體110亦可包括任何數目之額外裝置或連接。
此外,處理器120包括指令硬體122、執行硬體124及控制邏輯126。指令硬體122可包括任何電路或其他硬體(諸如,解碼器)來接收及/或解碼用於由處理器120執行之指令。執行硬體124可包括任何電路或其他硬體(諸如,算術邏輯單元)來執行處理器120之指令。執行硬體可包括控制邏輯126或受該控制邏輯126控制。控制邏輯126可為微碼、可規劃邏輯、硬編碼邏輯或處理器120內的任何其他形式之控制邏輯。在其他實施例中,控制邏輯126可以任何形式之硬體、軟體或韌體來實施,諸如處理器內或可由處理器存取之任何組件或可由處理器讀取之媒體內(諸如,記憶體130)的處理器抽象層。控制邏輯126可使執行邏輯124執行本發明之方法實施例,諸如以下描述之方法實施例,例如,藉由使處理器120包括回應於虛擬化指令或虛擬化事件而執行一或多個微操作,或以其他方式使處理器120執行本發明之方法實施例,如以下描述。
除裸平台硬體110之外,圖1亦例示VMM 140,該VMM係「根模式」主機或監視程式,因為該VMM於處理器120上以根模式運行。VMM 140可為安裝於裸平台硬體110上或可為該裸平台硬體存取之任何軟 體、韌體或硬體主機,其向客體提供VM(亦即,裸平台硬體110之抽象化)或以其他方式創建VM、管理VM及實施虛擬化政策。在其他實施例中,根模式主機可為任何監視程式、超管理器、OS或能控制裸平台硬體110之其他軟體、韌體或硬體。
客體可為任何OS、任何VMM(包括VMM 140之另一實例)、任何超管理器或任何應用程式或其他軟體。每一個客體期待存取實體資源,根據處理器之架構及VM中存在之平台,諸如裸平台硬體110之處理器及平台暫存器、記憶體及輸入/輸出裝置。圖1展示VM 150、VM 160、VM 170及VM 180,其中,客體OS 152及客體應用程式154及客體應用程式155安裝於VM 150上、客體VMM 162安裝於VM 160上、客體OS 172安裝於VM 170上及客體OS 182安裝於VM 180上。在此實施例中,所有客體運行於非根模式下。雖然圖1展示四個VM及六個客體,但在本發明之範疇內,可創建任何數目之VM及可將任何數目的客體安裝於每一個VM上。
虛擬化架構100係「分層」、「巢套」或「遞迴」的,因為該架構允許一個VMM(例如,VMM 140)來代管另一個VMM(例如,作為客體的VMM 162)。 在分層虛擬化架構100中,VMM 140係包括VM 150及VM 160的虛擬化環境之主機,且在任何虛擬化環境中皆不為客體,因為該VMM係安裝於裸平台硬體110上,在該VMM與裸平台硬體110之間無「中間」監視程式。 「中間」監視程式為監視程式(諸如,VMM 162),該監視程式代管客體(諸如,客體OS 172),但該監視程式本身亦為客體。VMM 162為包括VM 170及VM 180的虛擬化環境之主機,但亦為由VMM 140代管之虛擬化環境中的客體。中介監視程式(如,VMM 162)在文中稱為父代客體,因為該中介監視程式充當另一VM(或VM階層)之父代以及下層VMM之客體兩者(如,VMM 140為VMM 162之父代,而VMM 162為客體172及客體182之父代)。
若在監視程式(諸如,VMM 140)與客體之間不存在中介監視程式,則該監視程式稱為諸如OS 152、客體應用程式154、客體應用程式155及客體VMM 162之客體的「父代」。客體稱為彼監視程式之「子代」。客體可為子代以及父代兩者。舉例而言,客體VMM 162為VMM 140之子代及客體OS 172與客體OS 182之父代。
可由客體存取之資源可分類成「特權」資源或「非特權」資源。對於特權資源而言,主機(如,VMM 140)促進客體期望之功能性,同時保留對資源之最終控制。非特權資源不需要由主機控制及可由客體直接存取。
此外,每一個客體OS預計處置各種事件,諸如異常(如,尋頁錯失及一般保護錯誤)、中斷(如,硬體中斷及軟體中斷)及平台事件(如,初始化及系統管理中斷)。 此等異常事件、中斷事件及平台事件在文中統稱及個別地稱為「事件」。此等事件中的一些為「特權的」,因為該等事件必須由主機處置來確保VM之適當操作、保護主機 防止客體破壞及保護客體防止客體彼此破壞。
在任何給定時間,處理器120可執行來自VMM 140或任何客體之指令,因此VMM 140或客體可為有效的且運行於處理器120上或受處理器120控制。當特權事件發生或客體企圖存取特權資源時,VM退出可發生,從而將控制權自客體轉移至VMM 140。在適當地處置事件或促進對資源的存取之後,VMM 140可將控制權交還給客體。自主機至客體的控制權轉移(包括至初始轉移至新創建之VM)在文中稱為「VM進入」。經執行而將控制權轉移至VM的指令可統稱為「VM進入」指令,且例如,可包括在Core®處理器系列中之處理器的指令集架構中的VMLAUCH及VMRESUME指令。
如上所述,除了VM退出使控制權自客體轉移至根模式主機之外,本發明之實施例亦提供VM退出而使控制權自客體轉移至非根模式主機,諸如中介監視程式。在本發明之實施例中,虛擬化事件(亦即,可使VM退出之任何東西)可分類成「自上而下」或「自下而上」虛擬化事件。
「自上而下」虛擬化事件為其中藉由以有效客體之父代開始及朝向根模式主機進行來執行判定在VM退出時哪個主機接收控制權的一個事件。自上而下虛擬化事件可為經由有效客體之作用而發起之虛擬化事件,包括執行虛擬化指令,諸如在Core®處理器系列中的處理器之指令集架構中的CPUID指令。在一個實施例中,根模式 主機可具有忽略對一或多個虛擬化事件的自上而下虛擬化事件處理之能力。在此實施例中,雖然虛擬化事件將經處置為與所有中間VMM有關的自上而下虛擬化事件,但虛擬化事件可使VM退出至根模式主機。
「自下而上」虛擬化事件為其中在相反方向(如,自根模式主機朝向有效客體之父代)上執行判定在VM退出時哪個主機接收控制權的一個事件。自下而上虛擬化事件可為由下層平台之動作(如,硬體中斷及系統管理中斷)發起之虛擬化事件。在一個實施例中,處理器異常被當做自下而上虛擬化事件。舉例而言,在有效客體執行期間發生之尋頁錯失異常總是以自下而上形式評估。此自下而上處理可應用於所有處理器異常或其子集。
此外,在一個實施例中,VMM具有將事件(如,中斷或異常)注入其客體或以其他方式誘發此等事件之能力。在此實施例中,可藉由在誘發虛擬化事件之VMM之上方開始而非自根模式主機開始來執行判定在VM退出時哪個主機接收控制權。
在圖1之實施例中,處理器120根據儲存於虛擬機器控制結構(「VMCS」)132中之資料來控制VM之操作。VMCS 132為一資料結構,該資料結構可含有客體之狀態、VMM 140之狀態、指示VMM 140如何控制客體之操作的執行控制資訊、關於VM退出及VM進入的資訊、任何其他此資訊。處理器120自VMCS 132讀取資訊來判定VM之執行環境及約束VM之行為。在此實施例 中,VMCS 132儲存於記憶體130中。在一些實施例中,如以下描述,使用多個VMCS支援多個VM。
圖1亦展示在此實施例中之記憶體130中的陰影VMCS 134,該陰影VMCS如以下描述而經創建、維護及存取。陰影VMCS 134可具有與非陰影VMCS之VMCS相同的大小、結構、組織或任何其他特徵。在一些實施例中,可存在多個陰影VMCS,例如,每客體一個。 在以下描述的方法實施例中,陰影VMCS 134為圖2中的VMCS 251之陰影版本;然而,可創建另一個陰影VMCS(未展示)來充當圖2中的VMCS 261之陰影版本。
VMM之「客體階層」為軟體之堆疊,其經安裝以運行於虛擬化環境或由VMM支援的環境內。本發明可以虛擬化架構來體現,在該虛擬化架構中,客體階層包括VMCS之間的指標鏈。此等指標當自子代VMCS指向父代VMCS時稱為「父代指標」,而當自父代VMCS指向子代VMCS時稱為「子代指標」。在VMM之客體階層中,在VMM與有效客體之間可存在一或多個中介監視程式。較接近客體階層經考量的VMM之中介監視程式稱為比相對更接近有效客體之中介監視程式「低」。
圖2例示VMM 220之客體階層,該VMM 220被安裝為裸平台硬體210上之根模式主機。雖然根模式主機可於無控制結構的狀況下操作,但VMCS 221為VMM 220之控制結構。客體230為VMM 220之子代,受VMCS 231控制。因此,父代指標(「PP」)232指向VMCS 221。客體240亦為VMM 220之子代,受VMCS 241控制。因此,父代指標242亦指向VMCS 221。
客體240本身為VMM,其具有兩個子代,客體250及客體260,每一者分別具有VMCS 251及VMCS 261。父代指標252及父代指標262皆指向VMCS 241。
有效或正在運行之客體的VMCS被該客體之父代的VMCS之子代指標指向。因此,圖2展示子代指標243指向VMCS 251以指示客體250為有效的。類似地,具有有效子代指標而非空子代指標之客體的VMCS由該客體之父代的VMCS之子代指標指向。因此,圖2展示子代指標223指向VMCS 241。因此,父代指標鏈經由任何中介監視程式之VMCS而將有效客體之VMCS連結至根模式主機之VMCS,且子代指標鏈經由任何中介監視程式之VMCS而將根模式主機之VMCS連結至有效客體之VMCS。
VMCS 221在文中稱為「根VMCS」。如以上描述,在一實施例中,不存在根VMCS。在包括根VMCS之實施例中,處理硬體可在內部暫存器或其他資料結構中維護指向根VMCS之指標。如上所述,有效客體之VMCS在文中稱為當前控制VMCS。舉例而言,當客體250為有效時,VMCS 251為當前控制VMCS。在一實施例中,處理硬體可在內部暫存器或其他資料結構中維護指向當前控制VMCS之指標。
若VMCS非父代VMCS,則其子代指標(諸 如,子代指標233、253及263)可為空指標。若VMCS不具有父代,例如,若該VMCS為根模式VMCS,則其父代指標(諸如,父代指標222)可為空指標。或者,此等指標可省略。在一些實施例中,空VMCS指標之「空」值可為零。在其他實施例中,其他值可解釋為「空」。舉例而言,在一個實施例中,對於32位元位址,值0xffffffff可解釋為空。
圖2中每一個客體之VMCS包括位元、欄位或其他資料結構(「事件位元」)以指示若特定虛擬化事件發生則客體之父代是否想要控制權。每一個VMCS可包括任何數目之此等位元或欄位來對應於任何數目的虛擬化事件。任何數目之事件位元可組織在一起或以其他方式稱為事件位元欄位。圖2展示事件位元欄位264、254、244及234。
根據各種方法,每一個客體之VMCS可包括或涉及位元、欄位或其他資料結構來賦能及控制VMCS陰影化。舉例而言,控制客體VMM之父代VMCS(如,VMCS 241)可包括單一位元(如,245)以賦能子代VMCS(如,VMCS 251)之陰影化,及可包括欄位(如,246)以指定對應陰影VMCS(如,指向陰影VMCS 134之指標)之位置。換言之,若VMCS陰影化由位元245賦能,若客體VMM 240企圖經由VMWRITE、VMREAD或其他手段存取子代VMCS 251,則存取可引導至陰影VMCS 134而非子代VMCS 251。
作為對單一賦能位元(如,245)之替代或與該單一賦能位元相結合,父代VMCS可包括或涉及(如,以指標而言)一對位元映像,一個位元映像用於讀取而一個用於寫入,其中,每一個位元對應於VMCS之特定欄位以選擇性地(藉由VMCS欄位)賦能或去能子代的VMCS陰影化。
因此,圖2中之VMCS陰影化賦能欄位265、255、245及235以及VMCS陰影位址欄位266、256、246及236可各自表示單一位元、位元欄位、位元映像或任何其他資料結構,且可包括在以下方法實施例之描述涉及的位元、位元映像及/或指標。在不同實施例中,VMCS陰影化賦能欄位在大小、結構、組織或其他特徵上的改變可為VMCS陰影化提供任何期望之粒度層級。
若VMCS陰影化未賦能,則根VMM 220維護在其客體階層之客體的所有VMCS(如,VMCS 231、241、251及261),且中介監視程式(如,客體VMM 240)創建(如,藉由執行在Core®處理器系列中的處理器之指令集架構中的VMPTRLD指令)或維護(如,藉由執行VMWRITE指令)其客體(如,VMCS 251或261)之一的VMCS的任何企圖由根VMM 220攔截及處置。中介監視程式執行VM進入(如,藉由執行VMLAUNCH或VMRESUME指令)之企圖亦由根VMM 220攔截以用於仿真。中介監視程式對其客體之一的VMCS之存取企圖(例如,VMREAD及VMWRITE指令)使VM退出至根VMCS 以仿真存取指令,且此等VM退出中每一者增加用於轉變、用於執行VMM處理程式程式碼的潛時,且歸因於轉變而導致的轉譯後援緩衝器及快取記憶體之內容的改變。 此等VM退出之淨影響可能顯著地降低效能。
因此,如在本發明之方法實施例的以下描述中所陳述,本發明之實施例提供陰影VMCS之創建及維護,該陰影VMCS可在不使VM退出至根VMM的狀況下由中介監視程式存取。控制邏輯126可藉由在不使VM退出的狀況下重定向中介監視程式之存取企圖來提供對陰影VMCS之存取。
圖3、圖4及圖5分別例示用於根據本發明之實施例的VMCS陰影化的方法300、400及500。此等方法之描述涉及圖1及圖2之元件。具體而言,在此等描述中,涉及創建及維護VMCS 251之陰影VMCS 134,以便客體VMM 240可在不使VM退出至根VMM 220的狀況下存取陰影VMCS 134。然而,本發明之實施例可不同於描述之實施例;例如,陰影VMCS亦可針對VMCS 261創建及維護,以便客體VMM 240可在不使VM退出至根VMM 220的狀況下存取彼陰影VMCS。類似地,第一客體VMM可創建處於第一客體VMM之客體階層中的第二客體VMM的陰影VMCS。在描述之實施例中,方法300、400及500開始於根VMM 220已將控制權轉移至客體VMM 240之後,及以客體VMM 240在由VMCS 251控制的VM中執行而結束。
在圖3之方框310,客體VMM 240企圖執行指令(如,VMPTRLD)以指定VMCS(如,VMCS 251)來控制一VM,其中,客體(如,客體250)可於該VM中執行。 在方框312,藉由企圖在VM內執行VMPTRLD指令而使VM退出至根VMM 220。在方框314,根VMM 220為客體VMM 240創建VMCS(如,VMCS 251)。
在方框320,根VMM 220分配用於陰影VMCS(如,記憶體130中之陰影VMCS 134)之記憶體。在方框322,根VMM 220設定VMCS 241中之指示符(如,VMCS陰影化賦能欄位245中之控制位元)來賦能VMCS陰影化,及將VMCS陰影位址欄位246設定至在方框320中分配之陰影VMCS之位址。
在圖3之方法實施例300中,VMCS陰影化賦能欄位255包括兩個位元映像,一個用於VMCS讀取(「VMREAD陰影化位元映像」)而一個用於VMCS寫入(「VMWRITE陰影化位元映像」)。每一個位元映像包括在VMCS 251中之每一個欄位之賦能位元。因此,VMCS陰影化可藉由設定在VMREAD陰影化位元映像中之對應賦能位元來選擇性被賦能來讀取VMCS 251中之任何欄位,以及可藉由設定在VMWRITE陰影化位元映像中之對應賦能位元來選擇性被賦能來寫入VMCS 251中之任何欄位。同一欄位可賦能陰影化來讀取而非寫入,或者用於寫入而非讀取。
在方框330,根VMM 220藉由設定對應於期 望陰影化之每一個欄位的賦能位元而組構VMCS 251中之VMREAD陰影化位元映像及VMWRITE陰影化位元映像。在方框332,根VMM 220使VM進入將控制權交還給客體VMM 240(如,藉由執行VMRESUME指令)。
在方框340,客體VMM 240企圖存取(如,藉由執行VMREAD或VMWRITE指令)VMCS 251中陰影化被賦能之欄位。在方框342,允許客體VMM 240存取陰影VMCS 134中之對應欄位。在方框344,客體VMM 240企圖存取VMCS 251中未賦能陰影化之欄位。在方框346,藉由企圖存取未賦能陰影化之VMCS欄位而使VM退出至根VMM 220。
只要VM退出不發生於方框346之前,在方框340與方框344之間,任何數目之陰影化被賦能之存取可發生,且任何數目的其他指令可由客體VMM 240或在客體VMM 240之客體階層中的任何客體執行。又,可藉由除方框344中之事件之外的事件而使VM退出。
在方框350,根VMM 220更新VMCS 251以反映(,例如由於方框342,由客體VMM 240對陰影VMCS 134之任何寫入。在方框352,根VMM 220為客體VMM 240仿真或以其他方式處置方框344中之存取企圖,以及執行處置VM退出所必需或期望之任何其他動作。在方框354,根VMM 220更新陰影VMCS 134以反映在方框352中處置VM退出期間對VMCS 251之任何改變。在方框356,根VMM 220使VM進入將控制權交還 給客體VMM 240(如,藉由執行VMRESUME指令)。
在其他實施例中,VMCS 251與陰影VMCS 134之同步(如,在方框350至方框354中所描繪),根VMM 220可在不同時間更新VMCS,例如,同步不需要回應於自具有陰影化VMCS之客體的VM退出而發生,但可替代地回應於進入該客體的下一次VM進入而稍後發生。
在圖4之方法實施例400中,所有VMREAD被陰影化且無VMWRITE被陰影化。
在圖4之方框410,客體VMM 240企圖執行指令(如,VMPTRLD)以指定VMCS(如,VMCS 251)來控制一VM,其中,客體(如,客體250)可於該VM中執行。 在方框412,藉由企圖在VM內執行VMPTRLD指令而使VM退出至根VMM 220。在方框414,根VMM 220為客體VMM 240創建VMCS(如,VMCS 251)。
在方框420,根VMM 220分配用於陰影VMCS(如,記憶體130中的陰影VMCS 134)之記憶體。在方框422,根VMM 220設定VMCS 241中之指示符(如,VMCS陰影化賦能欄位245中之控制位元)來賦能VMCS陰影化,及將VMCS陰影位址欄位246設定為在方框420分配的陰影VMCS之位址。在方框432,根VMM 220使VM進入將控制權交還給客體VMM 240(如,藉由執行VMRESUME指令)。
在方框440,客體VMM 240企圖讀取(如,藉 由執行VMREAD指令)VMCS 251中之欄位。在方框442,允許客體VMM 240讀取陰影VMCS 134中之對應欄位。在方框444,客體VMM 240企圖寫入(如,藉由執行VMWRITE指令)VMCS 251中的欄位。在方框446,藉由企圖寫入VMCS欄位而使VM退出至根VMM 220。
只要VM退出不發生於方框446之前,在方框440與方框444之間,任何數目之VMCS讀取可發生且任何數目之其他指令(除VMWRITE之外)可由客體VMM 240或在客體VMM 240之客體階層中的任何客體執行。 此外,可藉由除方框444中的事件之外的事件而使VM退出。
在方框452,根VMM 220為客體VMM 240仿真或以其他方式處置方框344中之VMCS寫入企圖,以及執行處置VM退出所必需或期望之任何其他動作。在方框454,根VMM 220更新陰影VMCS 134以反映在方框452中處置VM退出期間對VMCS 251之任何改變。在方框456,根VMM 220使VM進入將控制權交還給客體VMM 240(如,藉由執行VMRESUME指令)。
在圖5之方法實施例500中,VMCS讀取被陰影化之VMCS欄位及VMCS寫入被陰影化之VMCS欄位係硬編碼的(亦即,未提供可規劃位元對映)。舉例而言,在一個實施例中,所有VMCS讀取被陰影化,對RIP(指令指標暫存器)之VMCS寫入、EFLAGS(程式狀態及控制暫存器),以及客體中斷狀態被陰影化,但其他 VMCS寫入未被陰影化。
在圖5之方框510,客體VMM 240企圖執行指令(如,VMPTRLD)以指定VMCS(如,VMCS 251)來控制一VM,其中,客體(如,客體250)可於該VM中執行。 在方框512,藉由企圖在VM內執行VMPTRLD指令而使VM退出至根VMM 220。在方框514,根VMM 220為客體VMM 240創建VMCS(如,VMCS 251)。
在方框520,根VMM 220分配用於陰影VMCS(如,記憶體130中之陰影VMCS 134)之記憶體。在方框522,根VMM 220設定VMCS 241中之指示符(如,VMCS陰影化賦能欄位245中之控制位元)來賦能VMCS陰影化,及將VMCS陰影位址欄位246設定至在方框520分配的陰影VMCS之位址。在方框532,根VMM 220使VM進入將控制權交還給客體VMM 240(如,藉由執行VMRESUME指令)。
在方框540,客體VMM 240企圖存取(如,藉由執行VMREAD或VMWRITE指令)VMCS 251中陰影化被賦能(硬編碼)之欄位。在方框542,允許客體VMM 240存取陰影VMCS 134中之對應欄位。在方框544,客體VMM 240企圖存取VMCS 251中未賦能陰影化之欄位。 在方框546,藉由企圖存取未賦能陰影化之VMCS欄位而使VM退出至根VMM 220。
只要VM退出不發生於方框546之前,在方框540與方框544之間,任何數目之陰影化被賦能之存取 可發生,且任何數目之其他指令可由客體VMM 240或在客體VMM 240之客體階層中的任何客體執行。此外,可藉由除方框544中的事件之外的事件而使VM退出。
在方框550,根VMM 220更新VMCS 251以反映,例如由於方框542,由客體VMM 240對陰影VMCS 134之任何寫入。在方框552,根VMM 220為客體VMM 240仿真或以其他方式處置方框544中之存取企圖,以及執行處置VM退出所必需或期望之任何其他動作。在方框554,根VMM 220更新陰影VMCS 134以反映在方框552中處置VM退出期間對VMCS 251之任何改變。在方框556,根VMM 220使VM進入將控制權交還給客體VMM 240(如,藉由執行VMRESUME指令)。
在本發明之範疇內,圖3、圖4及圖5中所例示之方法可以不同順序、省略所例示之方框、添加額外方框,或者重排序、省略或額外方框之組合來執行。
在前述描述中,「設定」一詞可已用於指將邏輯「1」值寫入至位元儲存位置,及「清除」可已用於指將邏輯「0」值寫入至位元儲存位置。類似地,設定賦能位元可導致賦能由彼賦能位元控制之功能,及清除賦能位元可導致禁用該功能。然而,本發明之實施例不受此命名法中任一者之限制。舉例而言,「設定」指示符可指將一或多個特定值之一寫入至比一個位元多一或多個位元的位元之儲存位置。類似地,可使用相反約定,其中設定可意味寫入邏輯「0」及/或其中清除一賦能位元以賦能功 能。
以上描述中之一些部分已根據對電腦系統之暫存器或記憶體內的資料位元的操作之演算法及符號表示來呈現。此等演算法描述及表示係熟習資料處理領域之技術者用來將其工作之實質有效傳達至其他熟習此項技術者之手段。此處,演算法通常經設想為導致期望結果之自洽的操作順序。操作係需要實體操縱物理量之物。雖然不一定,但通常此等量呈能夠被儲存、轉移、組合、比較及以其他方式操縱的電氣信號或磁信號之形式。可已證明,主要出於常用之原因,將此等信號稱為位元、值、元素、符號、字元、術語、數字等等有時係便利的。
然而,應瞭解,此等術語及類似術語之所有必須與適當的物理量相關聯,且僅為適用於此等量之便利標記。應瞭解,除非另行特定指出,否則貫穿本發明始終的,使用術語諸如「處理」或「計算」或「判定」等之論述可指電腦系統或類似電子計算裝置之動作及過程,該等電腦系統或類似電子計算裝置操縱電腦系統之暫存器及記憶體內的表示為實體(電子)量的資料,及將該等資料轉換成電腦系統記憶體或暫存器或其他此等資訊儲存體、傳輸或顯示裝置內的類似表示為物理量之其他資料。
因此,已揭示了用於VMCS陰影化之處理器、方法及系統。雖然某些實施例已在附圖中描述及展示,但應理解,此等實施例僅為對寬泛的本發明之說明而非限制,且本發明不限於所展示及描述之特定構造及佈 置,因為研究本發明之一般技藝人士可能想到各種其他修改。在諸如此技術的發展快速且不易預見進一步進步之技術領域中,在不違背本發明之原理或隨附申請專利範圍之範疇的狀況下,由於實現技術進步而促進,所揭示之實施例可在佈置及細節中易於修改。

Claims (20)

  1. 一種處理器,其包含:指令硬體,用以接收多個指令,該多個指令包括:第一指令,用以將該處理器自根模式轉移至非根模式以便在至少一個虛擬機器中執行客用軟體,其中,該處理器係用以在偵測到多個虛擬機器退出事件中的任一者時即返回至該根模式;及第二指令,用以存取用來控制該至少一個虛擬機器的至少一個資料結構;及執行硬體,用以執行該第一指令及該第二指令;以及控制邏輯,當該第二指令被執行於該非根模式中時,該控制邏輯用以致使該處理器存取陰影資料結構之多個欄位的其中一者而非存取該至少一個資料結構,而不需返回至該根模式以便進行該存取,並且虛擬機器控制結構陰影化賦能位元映像中之多個陰影化賦能位元的其中一者被設定,該多個陰影化賦能位元的該其中一者對應於該陰影資料結構之該多個欄位的該其中一者。
  2. 如申請專利範圍第1項之處理器,其中,回應企圖在該非根模式中創建該至少一個資料結構,該控制邏輯係用以致使該處理器返回至該根模式。
  3. 如申請專利範圍第1項之處理器,其中,回應在該非根模式中企圖存取該資料結構中之並未賦能陰影化的欄位,該控制邏輯係用以致使該處理器返回至該根模式,而非存取該陰影資料結構。
  4. 一種方法,其包含下列步驟: 藉由根虛擬機器監視程式來組構用於子代虛擬機器控制結構的虛擬機器控制結構陰影化賦能位元映像;藉由處理器來接收虛擬機器進入指令;藉由該處理器來執行該虛擬機器進入指令以將控制權自根模式中之該根虛擬機器監視程式轉移至非根模式中之客體虛擬機器監視程式;藉由運行於該處理器上之該非根模式中的該客體虛擬機器監視程式而企圖存取該子代虛擬機器控制結構;以及藉由該處理器中之控制邏輯,致使該存取被重定向至陰影虛擬機器控制結構,而不需返回至該根模式以進行該存取。
  5. 如申請專利範圍第4項之方法,其中,該企圖包括企圖存取該子代虛擬機器控制結構以便控制由該客體虛擬機器監視程式所代管之子代虛擬機器。
  6. 如申請專利範圍第4項之方法,進一步包含藉由設定父代虛擬機器控制結構中的陰影化賦能指示符用以控制運行該客體虛擬機器監視程式之父代虛擬機器,由該根虛擬機器監視程式來賦能陰影化。
  7. 如申請專利範圍第4項之方法,其中,該企圖包括企圖執行從該子代虛擬機器控制結構中讀取的指令。
  8. 如申請專利範圍第4項之方法,其中,該企圖包括企圖執行寫入至該子代虛擬機器控制結構的指令。
  9. 如申請專利範圍第4項之方法,其中,該虛擬機器控制結構陰影化賦能位元映像為用於該子代虛擬機器控制 資料結構之虛擬機器控制結構讀取陰影化位元映像。
  10. 如申請專利範圍第9項之方法,其中,該虛擬機器控制結構讀取陰影化位元映像包括多個陰影化賦能位元,該等陰影化賦能位元中的每一者對應於該子代虛擬機器控制結構中的多個欄位的其中一者,且其中,組構包括將對應於該多個子代虛擬機器控制結構欄位的其中一者之該等陰影化賦能位元中的每一者設定為讀取而不會致使虛擬機器退出。
  11. 如申請專利範圍第4項之方法,其中,該虛擬機器控制結構陰影化賦能位元映像為用於該子代虛擬機器控制結構之虛擬機器控制結構寫入陰影化位元映像。
  12. 如申請專利範圍第11項之方法,其中,該虛擬機器控制結構寫入陰影化位元映像包括多個陰影化賦能位元,該等陰影化賦能位元中的每一者對應於該子代虛擬機器控制結構中之多個欄位的其中一者,且其中,組構包括將對應於該等多個子代虛擬機器控制結構欄位的其中一者之該等陰影化賦能位元中的每一者設定為寫入而不會致使虛擬機器退出。
  13. 如申請專利範圍第4項之方法,進一步包含下列步驟:藉由運行於該處理器上之該非根模式中的該客體虛擬機器監視程式而企圖創建子代虛擬機器控制結構;回應於該企圖,藉由該處理器中之控制邏輯而致使控制權自該非根模式轉移至該根模式; 藉由運行於該根模式中之該根虛擬機器監視程式而創建該子代虛擬機器控制結構;以及藉由運行於該根模式中之該根虛擬機器監視程式而創建該陰影虛擬機器控制結構。
  14. 如申請專利範圍第4項之方法,進一步包含下列步驟:藉由運行於該處理器上之該非根模式中的該客體虛擬機器監視程式而企圖存取該子代虛擬機器控制結構中之並未賦能陰影化的欄位;以及回應於該企圖,藉由該處理器中之控制邏輯而致使控制權自該非根模式轉移至該根模式。
  15. 如申請專利範圍第14項之方法,進一步包含下列步驟:藉由運行於該根模式中之該根虛擬機器監視程式來更新該子代虛擬機器控制結構,以反映由運行於該非根模式中之該非根虛擬機器監視程式對該陰影虛擬機器控制結構做出之改變。
  16. 如申請專利範圍第14項之方法,進一步包含下列步驟:藉由運行於該根模式中之該根虛擬機器監視程式來更新該陰影虛擬機器控制結構,以反映由運行於該根模式中之該根虛擬機器監視程式對該子代虛擬機器控制結構做出之改變。
  17. 一種系統,其包含: 記憶體,用以儲存用來控制至少一個虛擬機器的至少一個資料結構及至少一個陰影資料結構;以及處理器,該處理器包括:指令硬體,用以接收多個指令,該多個指令包括:第一指令,用以將該處理器自根模式轉移至非根模式以便在至少一個虛擬機器中執行客用軟體,其中,該處理器在偵測到多個虛擬機器退出事件中的任一者時即返回至該根模式;及第二指令,用以存取至少一個資料結構;執行硬體,用以執行該第一指令及該第二指令;以及控制邏輯,當該第二指令被執行於該非根模式中時,該控制邏輯用以致使該處理器存取該陰影資料結構之多個欄位的其中一者而非存取該至少一個資料結構,而不需返回至該根模式以便進行該存取,並且虛擬機器控制結構陰影化賦能位元映像中之多個陰影化賦能位元的其中一者被設定,該多個陰影化賦能位元的該其中一者對應於該陰影資料結構之該多個欄位的該其中一者。
  18. 如申請專利範圍第17項之系統,其中,該記憶體係用以儲存由運行於該根模式中之根虛擬機器監視程式所創建的第一資料結構,該第一資料結構用以控制第一虛擬機器,其中,客體虛擬機器監視程式係用以運行於該非根模式中。
  19. 如申請專利範圍第18項之系統,其中,該記憶體也係用以儲存由運行於該非根模式中之客體虛擬機器監視程式所創建的第二資料結構,該第二資料結構用以控制由 該客體虛擬機器監視程式所代管的第二虛擬機器。
  20. 如申請專利範圍第19項之系統,其中,該記憶體也係用以儲存由運行於該根模式中之該根模式監視程式所創建的陰影資料結構,該陰影資料結構要由該第一虛擬機器中之運行於該非根模式中的該客體虛擬機器監視程式來予以存取,而不會致使虛擬機器退出該根模式。
TW101150579A 2011-12-30 2012-12-27 虛擬機器控制結構陰影化技術 TWI620124B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2011/068126 WO2013101191A1 (en) 2011-12-30 2011-12-30 Virtual machine control structure shadowing
??PCT/US11/68126 2011-12-30

Publications (2)

Publication Number Publication Date
TW201339971A TW201339971A (zh) 2013-10-01
TWI620124B true TWI620124B (zh) 2018-04-01

Family

ID=48698424

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101150579A TWI620124B (zh) 2011-12-30 2012-12-27 虛擬機器控制結構陰影化技術

Country Status (3)

Country Link
US (1) US20130326519A1 (zh)
TW (1) TWI620124B (zh)
WO (1) WO2013101191A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
EP2795464B1 (en) * 2011-12-22 2019-01-23 Intel Corporation Enabling efficient nested virtualization
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
CN103744641B (zh) * 2014-01-23 2016-08-17 龙芯中科技术有限公司 禁止已翻译指令序列执行的方法、装置和虚拟机
CN107924321B (zh) * 2015-09-25 2022-01-18 英特尔公司 针对虚拟机退出的嵌套虚拟化
WO2017107058A1 (en) * 2015-12-22 2017-06-29 Intel Corporation Apparatus and method for intelligent resource provisioning for shadow structures
US9934061B2 (en) * 2015-12-28 2018-04-03 International Business Machines Corporation Black box techniques for detecting performance and availability issues in virtual machines
US10768962B2 (en) * 2016-12-19 2020-09-08 Vmware, Inc. Emulating mode-based execute control for memory pages in virtualized computing systems
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10831532B2 (en) 2018-10-19 2020-11-10 International Business Machines Corporation Updating a nested virtualization manager using live migration of virtual machines

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070006230A1 (en) * 2005-06-30 2007-01-04 Intel Corporation Method and apparatus for a guest to access a privileged register
US20070198243A1 (en) * 2006-02-08 2007-08-23 Microsoft Corporation Virtual machine transitioning from emulating mode to enlightened mode
US20080307180A1 (en) * 2007-06-06 2008-12-11 Naoya Hattori Virtual machine control program and virtual machine system
US20090037936A1 (en) * 2007-07-31 2009-02-05 Serebrin Benjamin C Placing Virtual Machine Monitor (VMM) Code in Guest Context to Speed Memory Mapped Input/Output Virtualization
US20100115513A1 (en) * 2008-10-30 2010-05-06 Hitachi, Ltd. Virtual machine control method and virtual machine system
US20110047544A1 (en) * 2009-08-23 2011-02-24 International Business Machines Corporation Para-virtualization in a nested virtualization enviroment
US20110072428A1 (en) * 2009-09-22 2011-03-24 International Business Machines Corporation Nested Virtualization Performance In A Computer System

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725895B2 (en) * 2004-03-31 2010-05-25 Intel Corporation Processor control register virtualization to minimize virtual machine exits
US8291410B2 (en) * 2006-12-29 2012-10-16 Intel Corporation Controlling virtual machines based on activity state
US7975267B2 (en) * 2007-03-30 2011-07-05 Bennett Steven M Virtual interrupt processing in a layered virtualization architecture
US8127292B1 (en) * 2007-06-22 2012-02-28 Parallels Holdings, Ltd. Virtualization system with hypervisor embedded in bios or using extensible firmware interface
JP4864817B2 (ja) * 2007-06-22 2012-02-01 株式会社日立製作所 仮想化プログラム及び仮想計算機システム
US8555081B2 (en) * 2007-10-30 2013-10-08 Vmware, Inc. Cryptographic multi-shadowing with integrity verification
JP4530182B2 (ja) * 2008-02-27 2010-08-25 日本電気株式会社 プロセッサ、メモリ装置、処理装置及び命令の処理方法
US8055827B2 (en) * 2009-01-26 2011-11-08 Advanced Micro Devices, Inc. Guest interrupt controllers for each processor to aid interrupt virtualization
US8560758B2 (en) * 2009-08-24 2013-10-15 Red Hat Israel, Ltd. Mechanism for out-of-synch virtual machine memory management optimization
US20110153909A1 (en) * 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
JP5493125B2 (ja) * 2010-02-05 2014-05-14 株式会社日立製作所 仮想化方法及び計算機
US8789042B2 (en) * 2010-09-27 2014-07-22 Mips Technologies, Inc. Microprocessor system for virtual machine execution
US8793528B2 (en) * 2011-11-30 2014-07-29 Oracle International Corporation Dynamic hypervisor relocation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070006230A1 (en) * 2005-06-30 2007-01-04 Intel Corporation Method and apparatus for a guest to access a privileged register
US20070198243A1 (en) * 2006-02-08 2007-08-23 Microsoft Corporation Virtual machine transitioning from emulating mode to enlightened mode
US20080307180A1 (en) * 2007-06-06 2008-12-11 Naoya Hattori Virtual machine control program and virtual machine system
US20090037936A1 (en) * 2007-07-31 2009-02-05 Serebrin Benjamin C Placing Virtual Machine Monitor (VMM) Code in Guest Context to Speed Memory Mapped Input/Output Virtualization
US20100115513A1 (en) * 2008-10-30 2010-05-06 Hitachi, Ltd. Virtual machine control method and virtual machine system
US20110047544A1 (en) * 2009-08-23 2011-02-24 International Business Machines Corporation Para-virtualization in a nested virtualization enviroment
US20110072428A1 (en) * 2009-09-22 2011-03-24 International Business Machines Corporation Nested Virtualization Performance In A Computer System
TW201120752A (en) * 2009-09-22 2011-06-16 Ibm Improving nested virtualization performance in a computer system

Also Published As

Publication number Publication date
WO2013101191A1 (en) 2013-07-04
TW201339971A (zh) 2013-10-01
US20130326519A1 (en) 2013-12-05

Similar Documents

Publication Publication Date Title
TWI620124B (zh) 虛擬機器控制結構陰影化技術
US10901772B2 (en) Virtualization exceptions
US20200341921A1 (en) Virtualizing interrupt prioritization and delivery
US9244712B2 (en) Virtualizing performance counters
JP5936640B2 (ja) 協調設計されたプロセッサへの、隔離された実行環境の作成
JP5675743B2 (ja) 階層化された仮想化アーキテクチャにおける仮想化イベント処理
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
TWI516937B (zh) 用於資料讀取/寫入延伸分頁表違例之處理的決策動作決定技術之方法、裝置及非暫態機器可讀媒體
TWI375914B (en) Apparatus, method and system for detecting spin loops in a virtual machine environment
US8291410B2 (en) Controlling virtual machines based on activity state
US8151264B2 (en) Injecting virtualization events in a layered virtualization architecture
US20180157575A1 (en) Monitoring the operation of a processor
US12086456B2 (en) Switching memory consistency models in accordance with execution privilege level

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees