TW201419156A - 擷取輕型虛擬機器管理員中錯誤條件的方法、系統及設備 - Google Patents

擷取輕型虛擬機器管理員中錯誤條件的方法、系統及設備 Download PDF

Info

Publication number
TW201419156A
TW201419156A TW102120720A TW102120720A TW201419156A TW 201419156 A TW201419156 A TW 201419156A TW 102120720 A TW102120720 A TW 102120720A TW 102120720 A TW102120720 A TW 102120720A TW 201419156 A TW201419156 A TW 201419156A
Authority
TW
Taiwan
Prior art keywords
vmm
error
instance
machine
handler
Prior art date
Application number
TW102120720A
Other languages
English (en)
Other versions
TWI514283B (zh
Inventor
Bing Zhu
Peng Zou
Madhukar Tallam
Lu-Hai Chen
Kai Wang
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201419156A publication Critical patent/TW201419156A/zh
Application granted granted Critical
Publication of TWI514283B publication Critical patent/TWI514283B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明揭示擷取輕型虛擬機器管理員(VMM)中錯誤條件的方法及設備。所揭示的實例方法包括:界定共享記憶體結構於該VMM與虛擬機器(VM)之間;當該VM係由該VMM所產生時,安裝中止處置器在與向量值關聯的VM上;為回應偵測錯誤,轉移VMM狀態資訊至該共享記憶體結構;及引動該VM上的該中止處置器以轉移該共享記憶體結構的內容至非依電性記憶體。

Description

擷取輕型虛擬機器管理員中錯誤條件的方法、系統及設備
本揭露一般關於虛擬化,且,更特別地關於擷取輕型虛擬機器管理員中錯誤條件的方法、系統及設備。
虛擬機器管理員(VMM)便於虛擬機器(VM)利用基本平台的資源。實例VMM可允許一或多個VM以針對每一主動VM保留跨VM安全以及管理記憶體、處理、中斷及/或保護故障之方式而分享此種資源。
100‧‧‧虛擬化系統
102‧‧‧VMM
104‧‧‧VM
106‧‧‧基本平台硬體
108‧‧‧異常處置器
110‧‧‧主端錯誤處置器
112‧‧‧虛擬機器控制資料結構(VMCS)
114‧‧‧VM輸入控制域(VECF)
116‧‧‧客端軟體
118‧‧‧OS中斷說明表(IDT)
120‧‧‧客端中止處置器
122‧‧‧當機通知
124‧‧‧通信介面
126‧‧‧RAM
128‧‧‧硬碟機
202‧‧‧主端儲存管理員
204‧‧‧客端OS監視器
206‧‧‧主端異常監視器
208‧‧‧客端中止處置器安裝程式
210‧‧‧客端OS向量表管理員
212‧‧‧主端狀態收集器
214‧‧‧加密引擎
216‧‧‧異常事件注入器
302‧‧‧客端儲存管理員
304‧‧‧客端狀態收集器
306‧‧‧錯誤通知引擎
308‧‧‧停機管理員
800‧‧‧處理器平台
812‧‧‧處理器
400‧‧‧程式
402‧‧‧方塊
404‧‧‧方塊
406‧‧‧方塊
408‧‧‧方塊
410‧‧‧方塊
412‧‧‧方塊
502‧‧‧方塊
504‧‧‧方塊
506‧‧‧方塊
508‧‧‧方塊
510‧‧‧方塊
512‧‧‧方塊
514‧‧‧方塊
516‧‧‧方塊
518‧‧‧方塊
520‧‧‧方塊
602‧‧‧方塊
604‧‧‧方塊
606‧‧‧方塊
700‧‧‧程式
702‧‧‧方塊
704‧‧‧方塊
706‧‧‧方塊
708‧‧‧方塊
710‧‧‧方塊
712‧‧‧方塊
714‧‧‧方塊
800‧‧‧處理器平台
812‧‧‧處理器
813‧‧‧局部記憶體
814‧‧‧依電性記憶體
816‧‧‧非依電性記憶體
818‧‧‧匯流排
820‧‧‧介面電路
822‧‧‧輸入裝置
824‧‧‧輸出裝置
826‧‧‧網路
828‧‧‧大量儲存裝置
832‧‧‧編碼指令
圖1係與擷取輕型虛擬機器管理員中錯誤條件之本揭露的教示一致之實例系統的簡圖說明。
圖2係圖1的實例系統的實例主端錯誤處置器的簡圖說明。
圖3係圖1的實例系統的實例客端中止處置器的簡圖說明。
圖4至7係代表實例機器可讀指令的流程圖,其可被執行以擷取輕型虛擬機器管理員中錯誤條件。
圖8係可執行圖4至7的指令以實施圖1至3的實例系統及設備之實例處理器平台的簡要說明。
作業系統典型地使用內建機構以檢測非可恢復錯誤,且提供記憶體傾印(memory dump)以在除錯運算期間輔助開發者。記憶體傾印提供指示工作記憶體的記錄狀態及/或電腦程式的暫存器之資訊。而且,記憶體傾印可包括在面上執行電腦程式之基本平台的一般暫存器資訊。在作業系統當機之前,核心傾印收集平台資訊,且將其儲存至非依電性記憶體,後當機(有時稱為事後分析)檢查可發生以揭示引出先前當機之條件。
如果作業系統(OS)以虛擬機器管理員(VMM)所管理之虛擬方式運作,記憶體傾印可能以類似方式發生而不會影響一或多個替代虛擬機器(VM),諸如其它OS。另一方面,如果VMM經歷內部錯誤(例如,消除引用空(NULL)指標、存取非存在實體記憶體、內部偶發邏輯缺陷等),VMM可能不具有執行一或多個記憶體傾印的適當資源。例如,一些VMM被稱為「輕型VMM」,其缺乏檔案系統存取支援。為努力最小 化及/或甚至消除VMM攻擊點,一或多個到VMM的機構可移除,諸如檔案系統存取支援。VMM的一或多個機器的此種移除亦允許VMM消耗相對較小的系統平台設定檔,因此減少平台資源消耗。
文中揭露方法、設備、系統及/或製造的物件便於在輕型VMM執行期間的致命錯誤的事件中之VMM故障診斷。如以下進一步詳述,於致命VMM錯誤的事件中,一或多個事件注入引動客端OS自共享VMM/客端記憶體(例如,依電性隨機存取記憶體(RAM))轉移錯誤資訊至非依電性儲存(例如,硬碟機)。於某些實例中,VMM引動及/或另請求與由VMM管理的一或多個主動客端OS關聯之一或多個內建檔案系統存取服務。在轉移錯誤資訊至非依電性記憶體之後,諸如平台暫存器狀態、記憶影像等,每一客端OS可以更得體方式關閉及/或引動當機通知(例如,“藍色死機螢幕”等)。
圖1解說實例虛擬化系統100,其包括VMM(例如,主端,有時稱為根模式)102、VM(例如,客端OS,其有時稱為非根模式)104及基本平台硬體106。實例平台硬體106可包括,但不限於處理器、磁碟機、網路元件及/或記憶體(例如,RAM、唯讀記憶體(ROM)、FLASH等)。實例VMM 102包括異常處置器108、主端錯誤處置器110、虛擬機器控制資料結構(VMCS)112,其包括任何數量的VM輸入控制欄(VECF)114,如以下進一步詳述。
實例客端104(或其它VM)包括客端軟體116、OS中斷說明表(IDT)118、客端中止處置器120及當機通知122。於操作中,通信介面124便於VMM 102與每一客端,諸如圖1的實例客端104之間的通信。通信介面124可包括,但不限於超管理器呼叫系統,諸如Intel基礎虛擬化系統中的HyperCall或VMCALL。如果實例客端軟體116造成由實例異常處置器108所偵測的異常,該異常係由實例主端錯誤處置器偵測到。於其它實例中,異常可能由VMM 102造成及/或否則由VMM 102遭受。VMM異常包括,但不限於除數為零的試圖、無效記憶體存取嘗試等。如以上所述,一些VMM不具有檔案系統存取支援,其防止對非依電性記憶體的記憶傾印。文中所揭示方法、系統、設備及/或製造的物件收集且儲存共享依電性記憶體中的錯誤資訊,並引動一或多個客端使用本體及/或客製化檔案系統存取機構以轉移共享依電性記憶體的內容至非依電性儲存裝置,諸如磁碟機。平台狀態的非依電性儲存裝置部份地允許除錯用之平台的事後分析。
為回應偵測錯誤(例如,致命錯誤),實例主端錯誤處置器110配置具有平台狀態資訊之依電性共享記憶體。實例依電性共享記憶體可以是實例平台硬體106的RAM 126。實例主端錯誤處置器110亦組構實例VMCS 112啟動一或多個事件注入至一或多個可用客端,諸如圖1的實例客端VM 104。一般而言,藉由使用VM輸入, 有時稱為VMX交易,VMM轉移控制至VM。VM輸入的行為係由VMCS所控制,且可包括VMLAUNCH或VMRESUME指令的執行,以及關聯資料結構係定位於僅對主端VMM而言可看見之特定主端記憶區。可控制VM行為之機構的此種保護加強VMM安全性及/或由VMM所管理之一或多個VM的安全性。雖然以上實例VMM控制機構包括VMX交易,文中所揭示方法、設備、系統及/或製造的物件不限於此。例如,一些處理器使用具有關聯SVM指令之安全虛擬機器(SVM)架構,以管理作業模式控制、記憶體管理、截取、中斷、異常、狀態改變管理、系統管理模式、處理器初始化及/或資料結構運算。
為回應引動一或多個VM輸入,客端104的實例OS IDT 118參照所供應向量值。在客端事件注入期間,由實例主端錯誤處置器110所提供的至少一向量值啟動客端中止處置器120。如以下進一步詳述,當每一新及/或額外VM係由VMM 102啟動時,實例主端錯誤處置器110以至少一額外向量值組態關聯OS IDT。此外,實例主端錯誤處置器110將對應的客端中止處置器120加到與新向量值關聯之客端104。實例客端中止處置器120在被引動時,存取共享依電性記憶體(例如,RAM 126),且使用檔案存取服務以轉移共享依電性記憶體的內容至非依電性記憶體(例如,平台硬體106的硬碟機128)。實際上,實例事件注入允許輕型VMM在平台上實施,同時利用一或多個客端VM的本體及/或客製化檔案存取服務。 此外,在依電性記憶體內容對非依電性記憶體的任何轉移之後及/或期間,實例客端中止處置器120啟動當機通知122(例如,藍色死機螢幕、客製化錯誤訊息等)。
圖2係圖1的實例VMM主端錯誤處置器110的簡圖說明。於圖2的所示實例中,主端錯誤處置器110包括主端儲存管理員202、客端OS監視器204、主端異常監視器206、客端中止處置器安裝程式208、客端OS向量表管理員210、主端狀態收集器212、加密引擎214及異常事件注入器216。於操作中,實例主端儲存管理員202界定及/或另分配共享記憶體以其將使用作為平台用儲存庫及/或客端VM狀態資訊。對共享記憶體的存取特權,諸如圖1的實例RAM 126,可被設定為對由實例VMM 102所管理的一或多個客端VM唯讀的。
實例客端OS監視器204偵測及/或另決定新及/或額外VM何時在虛擬化系統100中啟動。為回應偵測新VM,諸如圖1的實例客端104,實例客端中止處置器安裝程式208在客端104上安裝客端中止處置器120。此外,實例客端OS向量表管理員210組態客端104 OS IDT 118以包括將與所安裝客端中止處置器120關聯的新向量。因此,當主端錯誤處置器110呼叫及/或否則引動適當向量時,所安裝的客端中止處置器120開始執行,如以下進一步詳述。
然而,如果實例客端OS監視器204未偵測及/或否則決定新及/或額外VM於虛擬化系統100中啟動, 實例主端異常監視器206判斷是否已發生錯誤。如果沒有,則實例客端OS監視器204繼續決定新及/或額外VM是否於實例虛擬化系統100中啟動。如果另一方面,錯誤被識別,則實例主端異常監視器206決定何類型的錯誤已發生。例如,就非致命錯誤而言,實例主端狀態收集器212可僅揭示關於VMM的狀態之最少量資訊。通常而言,VMM安全性於虛擬化環境中是重要的,以便使攻擊者可利用的一或多個弱點最小化。潛在攻擊者知道關於VMM暫存器狀態及/或內容的更多資訊,更多機會值得用於非法攻擊在因此所管理的VMM及/或VM。於其它實例中,主端狀態收集器212將儲存詳細VMM狀態資訊,諸如當致命錯誤發生時對共享RAM 126之暫存器值及/或影像。此種詳細資訊可進一步由加密引擎214加密以保全反對攻擊及/或揭露的此種細節。
如果實例虛擬化系統100具有二或更多個執行VM,諸如二個客端OS,則實例VMM錯誤處置器110決定是否啟動事件注入用於所有或一些客端OS。為增加安全性,實例VMM錯誤處置器110可僅選擇一個客端OS作為主要VM及/或另可信賴的VM以處置加密VMM狀態資訊的檔案系統儲存。於其它實例中,VMM錯誤處置器110可繼續針對系統100的所有作業VM事件注入,以收集儘可能多的除錯資訊。實例異常事件注入器216組態VM輸入中斷資訊欄,組態VM輸入異常錯誤碼資訊及/或執行VMRESUME VMX指令以完成自依電性至非依電 性記憶體之檔案系統轉移。如以上所述,VECF控制VM輸入行為,其中實例VM輸入中斷資訊欄含有與表1一致的32位元格式。
於表1所述的實例中,位元7:0決定客端OS IDT中的哪一輸入被用來引動實例客端中止處置器120,位元10:8決定如何執行注入的細節,位元11決定遞送是否將錯誤碼推在客端堆疊上,如果設定成1,位元31允許VM輸入注入事件,以及有效位元被清除在每一VM退出作業上。除了表1的實例VM輸入中斷資訊欄外,實例主端錯誤處置器110亦可修改VM輸入異常錯誤碼及VM輸入指令長度欄,以決定當客端OS處置事件時推在疊上之指令指標暫存器的值。在組態數欄後,實例主端錯誤處 置器110可引動VMRESUME指令以執行VM輸入作業。
圖3係圖1的實例客端中止處置器120的簡圖說明。於圖3所述實例中,客端中止處置器120包括客端儲存管理員302、客端狀態收集器304、錯誤通知引擎306及停機管理員308。於操作中,實例OS IDT 118自含有與實例客端中止處置器120關聯的值之實例主端錯誤處置器110接收向量。在客端中止處置器120的執行之際,實例客端儲存管理員302轉移共享記憶體結構(例如,RAM 126)的內容至非依電性記憶體(例如,硬碟機128)。如以上所述,實例主端錯誤處置器110先前執行VMM 102的狀態檢查且儲存VMM狀態資訊於共享記憶體中。實例客端狀態收集器304收集指示VM狀態之資訊,諸如暫存器值,且實例客端儲存管理員302轉移客端VM狀態資訊至非依電性記憶體。實例錯誤通知引擎306引動一或多個通知螢幕,諸如客製化錯誤螢幕、藍色死機螢幕、及/或核心恐慌螢幕。實例停機管理員308啟動VM客端停機程序以允許客端以儘可能得體方式停止。
雖然實施實例虛擬化系統100、實例VMM主端錯誤處置器110及實例客端中止處置器120以擷取輕型虛擬機器管理員中的錯誤情況的實例方式已被說明於圖1至3中,圖1至3中所示之元件、過程及/或裝置的一或多者可以任何其它方式組合、分開、重配、省略、免除及/或實施。而且,圖1至3的實例虛擬化系統100、實例VMM 102、實例VM 104、實例異常處置器108、實例主 端錯誤處置器110、實例VMCS 112、實例VECF 114、實例OS IDT 118、實例客端中止處置器120、實例當機通知122、實例主端儲存管理員202、實例客端OS監視器204、實例主端異常監視器206、實例客端中止處置器安裝程式208、實例客端OS向量表管理員210、實例主端狀態收集器212、實例加密引擎214、實例異常事件注入器216、實例客端儲存管理員302、實例客端狀態收集器304、實例錯誤通知引擎306及/或實例停機管理員308可藉由硬體、軟體、韌體及/或硬體、軟體及/或韌體的任何組合予以實施。此外,且如以下所述,圖1至3的實例虛擬化系統100、實例VMM 102、實例VM 104、實例異常處置器108、實例主端錯誤處置器110、實例VMCS 112、實例VECF 114、實例OS IDT 118、實例客端中止處置器120、實例當機通知122、實例主端儲存管理員202、實例客端OS監視器204、實例主端異常監視器206、實例客端中止處置器安裝程式208、實例客端OS向量表管理員210、實例主端狀態收集器212、實例加密引擎214、實例異常事件注入器216、實例客端儲存管理員302、實例客端狀態收集器304、實例錯誤通知引擎306及/或實例停機管理員308可藉由硬體、軟體、韌體及/或硬體、軟體及/或韌體的任何組合予以實施。因此,例如,圖1至3的實例虛擬化系統100、實例VMM 102、實例VM 104、實例異常處置器108、實例主端錯誤處置器110、實例VMCS 112、實例VECF 114、實例OS IDT 118、實例客端中止處置器120、實例當機通知122、實例主端儲存管理員202、實例客端OS監視器204、實例主端異常監視器206、實例客端中止處置器安裝程式208、實例客端OS向量表管理員210、實例主端狀態收集器212、實例加密引擎214、實例異常事件注入器216、實例客端儲存管理員302、實例客端狀態收集器304、實例錯誤通知引擎306及/或實例停機管理員308的任一者可藉由一或多個電路、可程式化處理器、特定應用積體電路(ASIC)、可程式化邏輯裝置(PLD)及/或現場可程式邏輯裝置(FPLD)等予以實施。當本專利的設備或系統申請專利範圍中的任一者被解讀為包含純軟體及/或韌體實施時,圖1至3的實例虛擬化系統100、實例VMM 102、實例VM 104、實例異常處置器108、實例主端錯誤處置器110、實例VMCS 112、實例VECF 114、實例OS IDT 118、實例客端中止處置器120、實例當機通知122、實例主端儲存管理員202、實例客端OS監視器204、實例主端異常監視器206、實例客端中止處置器安裝程式208、實例客端OS向量表管理員210、實例主端狀態收集器212、實例加密引擎214、實例異常事件注入器216、實例客端儲存管理員302、實例客端狀態收集器304、實例錯誤通知引擎306及/或實例停機管理員308的任一者係因此明確地界定以包括儲存軟體及/或韌體之實體電腦可讀儲存媒體,諸如記憶體、DVD、CD、藍光等。還進一步,除了或取代圖1至3中所示,圖1的實例系統100 可包括一或多個元件、處理器及/或裝置,及/或可包括所示的元件、處理及/或裝置的任何一個以上或全部。
代表用於實施圖1的系統100、圖1及2的主端錯誤處置器110及圖1及3的客端中止處置器120之實例機器可讀指令的流程圖係顯示於圖4至7中。於此實例中,機器可讀指令包含由處理器執行用的程式,諸如顯示於以下與圖8有關所述的實例電腦800中的處理器812。程式可被實施於儲存於實體電腦可讀儲存媒體上之軟體,諸如CD-ROM、軟碟、硬碟、數位光碟(DVD)、藍光碟或與處理器812關聯之記憶體,然而全部程式及/或其部份可替代地由除了處理器812的裝置所執行及/或實施於韌體或專用硬體。而且,雖然實例程式係參照圖4至7中所述的流程圖予以說明,實施實例系統100、實例錯誤處置器110及實例客端中止處置器120以擷取輕型虛擬機器管理員中的錯誤情況的許多其它方法可替代地被使用。例如,方塊的執行順序可被改變,及/或所述方塊的一些方塊可被改變、消除或組合。
如上所述,圖4至7的實例程序可使用儲存在實體電腦可讀媒體上的編碼指令(例如,電腦可讀指令)予以實施,諸如硬碟機、快閃記憶體、唯讀記憶體(ROM)、光碟(CD)、數位光碟(DVD)、快取、隨機存取記憶體(RAM)及/或任何其它儲存媒體,其中資訊係儲存達任何期間(例如,達延伸時段、永久地、簡短例子,用於暫時緩衝及/或用於資訊的快取)。如文中所 用,實體電腦可讀儲存媒體一詞係明確界定以包括任何類型的電腦可讀儲存並且排除傳播信號。附加地或替代地,圖4至7的實例過程可使用儲存在非暫時性電腦可讀儲存媒體上之編碼指令(例如,電腦可讀指令)予以實施,諸如硬碟機、快閃記憶體、唯讀記憶體、光碟、數位光碟、快取、隨機存取記憶體及/或任何其它儲存媒體,其中資訊係儲存達任何期間(例如,達延伸時段、永久地、簡短例子,用於暫時緩衝及/或用於資訊的快取)。如文中所用,非暫時性電腦可讀媒體一詞係明確界定以包括任何類型的電腦可讀儲存且排除傳播信號。如文中所用,當使用詞語「至少」作為請求項前言中的轉折詞時,它是以與用語「包含」為開放式之相同方式而為開放式。因此,使用「至少」作為轉折詞於其前言中之請求項還可包括除了請求項中明確敘述的元件外之元件。
圖4的程式400開始在實例主端儲存管理員界定一或多個錯誤儲存資料結構之方塊402。於某些實例中,錯誤儲存資料結構包括基本硬體106的RAM,諸如圖1的實例RAM 126。實例主端儲存管理員202可建立特權存取等級以改善安全性顧慮,諸如建立一或多個VM(例如,客端104)之唯讀特權,及/或建立VMM(例如,主端102)的全存取特權。實例客端OS監視器204決定新VM是否已由VMM 102產生(方塊404)。若是,則實例客端中止處置器安裝程式安裝客端中止處置器於新產生的VM中(方塊406)。如上所述,每一VM (例如,客端OS104)包括OS中斷說明表,諸如圖1的實例OS IDT 118。OS IDT 118基於特定向量值的接收通知控制處理器哪個中斷服務常式應予以執行。為組態新產生的VM 104 OS IDT 118,實例客端OS向量表管理員210更新、附加、代替及/或否則使要被儲存於OS IDT 118中(方塊408)的唯一向量可用值。當唯一向量值的請求係在執行期間由OS IDT 118所接收時,對應的客端中止處置器為了執行而被引動。
如果新VM未被識別,可用及/或否則新產生(方塊404),實例主端異常監視器206監視錯誤的例子的主端VMM 102(方塊410)。如果無錯誤被偵測及/或否則識別(方塊410),則控制返回客端OS監視器204以決定新VM是否由VMM 102產生(方塊404)。然而,如果由實例主端異常監視器206所偵測之VMM錯誤(方塊410),實例主端異常監視器206啟動錯誤資訊擷取(方塊412)。
圖5的程式412在開始方塊502,實例主端異常監視器206決定所識別錯誤是否為諸如非可恢復的特殊類型。為最小化及/或消除安全性風險,詳細VMM狀態資訊典型地被防止儲存在VMM架構的操作限制外,如果所識別的錯誤被認為致命及/或否則非可恢復(方塊502),則實例主端狀態收集器212收集與VMM的錯誤碼及暫存器狀態有關之詳細記錄以更佳輔助事後除錯努力(方塊504)。另一方面,如果所識別的錯誤被認為非致命及/或 相對較不嚴重,則實例主端狀態收集器212收集在相對較高等級(方塊506)與錯誤碼有關之記錄。一般而言,在相較於駭客可利用詳細VMM狀態資訊完成之潛在損害時,由實例主端狀態收集器212所收集的錯誤記錄可能是相對無害本質。就其本身而言,僅那些具有相對高嚴重性(例如,嚴重性等級)的錯誤將詳細VMM狀態資訊保存至共享RAM 126適當化。於某些實例中,嚴重性的程度及/或嚴重性的解析度被決定且對臨限及/或錯誤類型的表比較。具有第一解析度的那些錯誤可能與第一類型的VMM狀態資訊集合相關聯,而具有第二解析度(例如,較大程度的錯誤嚴重性)的那些錯誤可能與第二類型的VMM狀態資訊(例如,詳細VMM狀態資訊集合)相關聯。作為額外的保全,實例加密引擎214加密由主端錯誤處置器110儲存於共享記憶體126中(方塊510)之所有內容(方塊508)。
除了圖1的實例VM 104外,實例主端VMM 102還可管理一或多個VM。實例客端OS監視器204決定主端VMM 102是否正在管理多個VM(例如,多個客端OS)(方塊512),以及若是,實例主端錯誤處置器110決定是否包括所有VM作為用於接收異常事件之候選者(方塊514)。例如,當關於VMM 102及所有產生的VM的儘可能多的資訊被收集時,除錯努力可被改善。如上述,雖然VMM 102可揭示一或多個錯誤碼、暫存器狀態及/或記憶體影像,每一執行VM亦可包括一或多個錯誤 碼、暫存器狀態及/或記憶體影像。於某些實例中,VMM主端錯誤處置器110選擇所有運轉VM以接收異常事件(方塊514),且旗號表示主動用於資料收集的所有可用VM(方塊516)。
於其它實例中,諸如涉及提高的安全性顧慮之情況,實例主端錯誤處置器110減少儲存故障的事件中之系統資訊的一些參與者。於此種例子中,主端錯誤處置器110並未授權所有可用VM來參加事件注入(方塊514),且選擇主要VM及/或另所信賴的VM來在重新啟動時引動事後活動(方塊518)。而且,實例主端錯誤處置器110可識別只有被指定的主要VM(例如,圖1的實例VM 104)被授權來接收事件注入且接著執行,直到VMM 102及任何關聯的錯誤資訊的檢查及/或清除已被完成為止(方塊518)。
如果實例VMM 102僅具有單一主動VM(方塊512),或在所期望的VM已被旗號表示以參加事件注入程序之後(方塊516),或在主要VM被選擇之後(方塊518),實例異常事件注入器216被引動(方塊520)。於圖6的所示實例中,異常事件注入器216組構VM輸入中斷資訊欄(方塊602),且組構VM輸入異常錯誤碼(方塊604)。該等欄及/或錯誤碼的每一者可以是實施特定及/或否則定作成VMM型、平台型及/或操作系統微差。當VM輸入欄及/或錯誤碼被組構時,實例異常事件注入器216執行VMRESUME指令以基於插入VM輸 入欄的對應向量值引動客端中止處置器120(方塊606)。如果附加VM已被識別用於接收異常事件,針對被關注的每一識別VM,控制回到方塊602。
圖7的程序700開始於方塊702,其中實例VM 104針對指示應被執行的服務常式之向量監視實例OS IDT 118。如果向量值未被接收及/或如果與實例客端中止處置器120不關聯的向量值被接收,則實例VM 104繼續監視所接收向量值(方塊702)。另一方面,如果與實例客端中止處置器120關聯之向量值被接收(方塊702),則客端中止處置器120被引動用於執行在VM 104上(方塊704)。如上述,主端錯誤處置器110識別VMM 102上的錯誤且採取一或多個動作以擷取於事後除錯分析活動期間可以是有益之錯誤細節。VMM 102的錯誤細節被收集且儲存於共享依電性記憶體126中,以及,於某些實例中,在儲存之前加密。
為允許VMM 102保留於事後分析期間可以是有用的有價值錯誤資訊,雖然允許VMM 102最小化其資源足跡,實例客端儲存管理員302被引動使用系統檔案存取機構以轉移共享資料結構126的內容至一或多個非依電性記憶體,諸如硬碟機128(方塊706)。而且,實例客端狀態收集器304收集與由VMM所管理的VM關聯之狀態及/或錯誤資訊(方塊708),以及實例客端儲存管理員302轉移任何此種所收集資訊至非依電性記憶體128(方塊710)。一或多個錯誤通知係由實例錯誤通知引擎306 所產生(方塊712),諸如視頻顯示及/或音頻提示的錯誤傾印細節影像。當所有想要的錯誤資訊被收集(方塊708)、儲存(方塊710)、且一或多個錯誤通知被產生時(方塊712),實例停機管理員308啟動VM停機程序(例如,客端OS停機請求)(方塊714)。一或多個事後除錯活動可使用來自VMM 102及/或VM 104之錯誤資訊予以實施以努力識別VMM 102的一或多個錯誤之一或多個原因。
圖8係能夠執行圖4至7的指令以實施圖1的系統100、圖1及2的主端錯誤處置器110、及圖1及3的客端中止處置器120之實例處理器平台800的方塊圖。處理器平台800可以是例如,伺服器、個入電腦、網際網路器具、或任何其它類型的計算裝置。
本實例的系統800包括處理器812。例如,處理器812可由來自任何期望類組或製造者之一或多個微處理器或控制器予以實施。
處理器812包括局部記憶體813(例如,快取),且係經由匯流排818而與包括依電性記憶體814及非依電性記憶體816的主要記憶體溝通。依電性記憶體814可由同步動態隨機存取記憶體(SDRAM)、動態隨機存取記憶體(DRAM)、RAMBUS動態隨機存取記憶體(RDRAM)及/或任何其它類型的隨機存取記憶體裝置予以實施。非依電性記憶體816可快閃記憶體及/或任何其它想要的類型的記憶體裝置予以實施。對主要記憶體 814、816的存取係由記憶體控制器予以控制。
處理器平台800亦包括介面電路820。介面電路820可由任何類型的介面標準所實施,諸如Ethernet介面、通用串列匯流排(USB)及/或PCI表式介面。
一或多個輸入裝置822係連接至介面電路820。輸入裝置822允許使用者將資料及命令輸入處理器812。輸入裝置可由例如鍵盤、滑鼠、觸控螢幕、軌跡板(track-pad)、軌跡球、等電點(isopoint)及/或語言辨識系統予以實施。
一或多個輸出裝置824亦連接至介面電路820。輸出裝置824可例如,由顯示裝置(例如,液晶顯示器、陰極射線管顯示器(CRT)、列表機及/或揚聲器)予以實施。介面電路820因此典型地包括圖形驅動程式卡。
介面電路820亦包括諸如數據機或網路介面卡之通信裝置,以便於經由網路826(例如,乙太網路(Ethernet)連接、數位用戶線(DSL)、電話線、同軸纜線、行動電話系統等與外部電腦的資料交換。
處理器平台800亦包括一或多個大量儲存裝置828用於儲存軟體及資料。此種大量儲存裝置828的實例包括軟碟機、硬碟機、光碟機及數位光碟機(DVD)。
圖4至7的編碼指令832可被儲存於大量儲存裝置828中,於依電性記憶體814中,於非依電性記憶體816中,及/或在諸如CD或DVD的可拆印儲存媒體 上。
擷取輕型虛擬機器管理員中錯誤條件之方法、設備、系統及製造物件便於縮小VMM產品中的錯誤細節收集能力。雖然縮小VMM移除一或多個功能性機構以減少駭客可利用的候選陷阱,此種機構移除亦典型地消除當VMM當機時的除錯資料收集機會。引動可用VM檔案系統機構允許VMM保持其最小化足跡而同時便於有用的除錯資料獲得。
方法、設備、系統及製造物件被揭示以擷取輕型虛擬機器管理員中的錯誤條件。一些所揭示的實例方法包括界定共享記憶體結構於虛擬機器管理員(VMM)與虛擬機器(VM)之間,當VMM產生VM時,安裝中止處置器在與向量值關聯的VM上,以回應偵測錯誤,轉移VMM狀態資訊至共享記憶體結構,以及引動VM上的中止處置器以轉移共享記憶體結構的內容至非依電性記憶體。此外,實例方法包括不具有檔案系統存取支援的VMM。其它所揭示的實例方法包括使用隨機存取記憶體(RAM)作為共享記憶體結構,且組構用於VM之具有唯讀存取的RAM。於仍其它實例中,該方法包括組構中斷說明表以儲存向量值。一些實例包括執行記憶體傾印的VMM狀態資訊。其它實例包括具有VMM暫存器狀態資訊的VMM狀態資訊。一些實例方法包括決定錯誤的嚴重性,收集當嚴重性為第一等級時之錯誤資訊的第一解析度,以及收集當嚴重性為第二等級時之錯誤資訊的第二解 析度。仍其它實例方法包括具有客端作業系統的VM,雖然其它實例方法包括經由VMX指令引動中止處置器,其中VMX指令係與輸入中斷資訊欄關聯,以及該等欄被訂製以包括向量值。一些實例方法包括與信賴VM關聯的中止處置器。
用以擷取輕型虛擬機器管理員中錯誤條件的實例設備包括:主端儲存管理員,用以在VMM及虛擬機器(VM)之間界定共享記憶體結構;客端中止處置器,用以當VMM產生VM時,安裝中止處置器在與向量值關聯之VM上;主端中止處置器,用以轉移VMM狀態資訊至共享記憶體結構以回應偵測錯誤;及異常事件注入,引動VM上的客端中止處置器以轉移共享記憶體結構的內容至非依電性記憶體。一些實例設備包括具有隨機存取記憶體(RAM)的共享記憶體結構、及以針對VM之唯讀存取組態RAM之主端錯誤處置器。其它實例設備包括客端作業系統(OS)向量表管理員,用以組態中斷說明表以儲存向量值。仍其它實例設備包括用以決定錯誤的嚴重性之主端異常監視器、及主端狀態收集器,用以當嚴重性為第一等級時,收集錯誤資訊的第一解析度,以及當嚴重性為第二等級時,收集錯誤資訊的第二解析度。
一些所揭示儲存機器可讀指令之實例製造物件係包括,當執行時,致使機器在虛擬機器管理員(VMM)及虛擬機器(VM)之間界定共享記憶體結構,當VMM產生VM時,安裝中止處置器在與向量值關聯之 VM上以回應偵測錯誤,轉移VMM狀態資訊至共享記憶體結構,以及引動VM上的中止處置器以轉移共享記憶體結構的內容至非依電性記憶體。其它實例製造物件致使機器使用隨機存取記憶體(RAM)用於共享記憶體結構,以及以針對VM之唯讀存取組態RAM。某些實例製造物件致使機器組構中斷說明表以儲存向量表,雖然仍其它實例製造的物件致使機器決定錯誤的嚴重性,當嚴重性為第一等級時,收集錯誤資訊的第一解析度,以及當嚴重性為第二等級時,收集錯誤資訊的第二解析度。於某些實例中,製造的物件致使機器經由VMX指令引動中止處置器以及使VMX指令與輸入中斷資訊欄關聯。
雖然某些實例方法、設備及製造的物件已在文中說明,本專利的涵蓋範圍不限於此。相反地,本專利涵蓋公平地落入本專利的請求項的範圍內之所有方法、設備及製造的物件。
110‧‧‧主端錯誤處置器
202‧‧‧主端儲存管理員
204‧‧‧客端OS監視器
206‧‧‧主端異常監視器
208‧‧‧客端中止處置器安裝程式
210‧‧‧客端OS向量表管理員
212‧‧‧主端狀態收集器
214‧‧‧加密引擎
216‧‧‧異常事件注入器

Claims (29)

  1. 一種自虛擬機器管理員(VMM)擷取錯誤資訊的方法,包含:於該VMM與虛擬機器(VM)之間界定共享記憶體結構;當該VM係由該VMM所產生時,在與向量值關聯的該VM上安裝中止處置器;為回應偵測錯誤,轉移VMM狀態資訊至該共享記憶體結構;及引動該VM上的該中止處置器以轉移該共享記憶體結構的內容至非依電性記憶體。
  2. 如申請專利範圍第1項的方法,其中該VMM不包括檔案系統存取支援。
  3. 如申請專利範圍第1項的方法,其中該共享記憶體結構包含隨機存取記憶體(RAM)。
  4. 如申請專利範圍第3項的方法,進一步包含以針對該VM的唯讀存取組態該RAM。
  5. 如申請專利範圍第1項的方法,進一步包含組態中斷說明表以儲存該向量值。
  6. 如申請專利範圍第1項的方法,其中該VMM狀態資訊包含記憶體傾印。
  7. 如申請專利範圍第1項的方法,其中該VMM狀態資訊包含VMM暫存器狀態資訊。
  8. 如申請專利範圍第1項的方法,進一步包含決定該 錯誤的嚴重性。
  9. 如申請專利範圍第8項的方法,進一步包含當該嚴重性為第一等級時,收集該錯誤資訊的第一解析度,以及當該嚴重性為第二等級時,收集該錯誤資訊的第二解析度。
  10. 如申請專利範圍第1項的方法,其中該VM包含客端作業系統。
  11. 如申請專利範圍第1項的方法,進一步包含經由VMX指令引動該中止處置器。
  12. 如申請專利範圍第11項的方法,其中該等VMX指令係與輸入中斷資訊欄相關聯。
  13. 如申請專利範圍第12項的方法,其中該等欄係定作成包括該向量值。
  14. 如申請專利範圍第1項的方法,其中該中止處置器係與可信賴VM相關聯。
  15. 一種自虛擬機器管理員(VMM)擷取錯誤資訊的設備,包含:主端儲存管理員,在該VMM與虛擬機器(VM)之間界定共享記憶體結構;客端中止處置器,當該VM係由該VMM所產生時,在與向量值關聯的該VM上安裝中止處置器;主端錯誤處置器,轉移VMM狀態資訊至該共享記憶體結構以回應偵測錯誤;及異常事件注入器,引動該VM上的該客端中止處置 器,以轉移該共享記憶體結構的內容至非依電性記憶體。
  16. 如申請專利範圍第15項的設備,其中該共享記憶體結構包含隨機存取記憶體(RAM)。
  17. 如申請專利範圍第16項的設備,其中該主端錯誤處置器係用以以針對該VM的唯讀存取組態該RAM。
  18. 如申請專利範圍第15項的設備,進一步包含客端作業系統(OS)向量表管理員,以組態用於儲存該向量值的中斷說明表。
  19. 如申請專利範圍第15項的設備,進一步包含主端異常監視器以決定該錯誤的嚴重性。
  20. 如申請專利範圍第19項的設備,進一步包含主端狀態收集器,當該嚴重性為第一等級時,收集該錯誤資訊的第一解析度,以及當該嚴重性為第二等級時,收集該錯誤資訊的第二解析度。
  21. 一種實體機器可讀儲存媒體,包含儲存在其上的指令,該等指令在被執行時,致使機器至少:於該VMM及虛擬機器(VM)之間界定共享記憶體結構;當該VM係由該VMM所產生時,在與向量值關聯的該VM上安裝中止處置器;為回應偵測錯誤,轉移VMM狀態資訊至該共享記憶體結構;及引動該VM上的該中止處置器以轉移該共享記憶體結構的內容至非依電性記憶體。
  22. 如申請專利範圍第21項的機器可讀儲存媒體,其中該等指令在被執行時,致使該機器使用隨機存取記憶體(RAM)用於該共享記憶體結構。
  23. 如申請專利範圍第22項的機器可讀儲存媒體,其中該等指令在被執行時,致使該機器以針對該VM的唯讀存取組態該RAM。
  24. 如申請專利範圍第21項的機器可讀儲存媒體,其中該等指令在被執行時,致使該機器組態中斷說明表以儲存該向量表。
  25. 如申請專利範圍第21項的機器可讀儲存媒體,其中該等指令在被執行時,致使該機器決定該錯誤的嚴重性。
  26. 如申請專利範圍第25項的機器可讀儲存媒體,其中該等指令在被執行時,致使該機器當該嚴重性為第一等級時,收集該錯誤資訊的第一解析度,以及當該嚴重性為第二等級時,收集該錯誤資訊的第二解析度。
  27. 如申請專利範圍第21項的機器可讀儲存媒體,其中該等指令在被執行時,致使該機器經由VMX指令引動該中止處置器。
  28. 如申請專利範圍第27項的機器可讀儲存媒體,其中該等指令在被執行時,致使該機器使該VMX指令與輸入中斷資訊欄相關聯。
  29. 如申請專利範圍第28項的機器可讀儲存媒體,其中該等指令在被執行時,致使該機器訂製該等欄以包括該向量值。
TW102120720A 2012-06-29 2013-06-11 擷取輕型虛擬機器管理員中錯誤條件的方法、系統及設備 TWI514283B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/077867 WO2014000253A1 (en) 2012-06-29 2012-06-29 Methods, systems and apparatus to capture error conditions in lightweight virtual machine managers

Publications (2)

Publication Number Publication Date
TW201419156A true TW201419156A (zh) 2014-05-16
TWI514283B TWI514283B (zh) 2015-12-21

Family

ID=49779557

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102120720A TWI514283B (zh) 2012-06-29 2013-06-11 擷取輕型虛擬機器管理員中錯誤條件的方法、系統及設備

Country Status (5)

Country Link
US (1) US9436576B2 (zh)
EP (1) EP2867770B1 (zh)
CN (1) CN104321748B (zh)
TW (1) TWI514283B (zh)
WO (1) WO2014000253A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902599B (zh) * 2012-09-17 2016-08-24 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
US9697102B2 (en) * 2012-11-21 2017-07-04 Sap Se Compare concurrent threads executions
JP5874879B2 (ja) * 2012-11-26 2016-03-02 株式会社日立製作所 I/oデバイスの制御方法及び仮想計算機システム
US9569223B2 (en) * 2013-02-13 2017-02-14 Red Hat Israel, Ltd. Mixed shared/non-shared memory transport for virtual machines
CN103559124B (zh) * 2013-10-24 2017-04-12 华为技术有限公司 故障快速检测方法及装置
US9400885B2 (en) 2014-01-10 2016-07-26 Bitdefender IPR Management Ltd. Computer security systems and methods using virtualization exceptions
GB2531770A (en) * 2014-10-30 2016-05-04 Ibm Confidential Extracting System Internal Data
WO2017023270A1 (en) * 2015-07-31 2017-02-09 Hewlett Packard Enterprise Development Lp Data copy to non-volatile memory
US9747123B2 (en) * 2015-09-25 2017-08-29 Intel Corporation Technologies for multi-level virtualization
EP3362903A4 (en) * 2016-01-29 2019-06-05 Hewlett-Packard Enterprise Development LP MONITORING SYSTEM STATUS INFORMATION
US10031823B2 (en) 2016-03-21 2018-07-24 International Business Machines Corporation Dangerous system command detection
US9996440B2 (en) * 2016-06-20 2018-06-12 Vmware, Inc. Fault tolerance using shared memory architecture
US10061722B2 (en) 2016-10-17 2018-08-28 Qualcomm Incorporated Method to handle concurrent fatal events in a multicore execution environment
US10496425B2 (en) * 2017-02-21 2019-12-03 Red Hat, Inc. Systems and methods for providing processor state protections in a virtualized environment
US10169198B2 (en) 2017-04-24 2019-01-01 International Business Machines Corporation Aggregating data for debugging software
US10956188B2 (en) 2019-03-08 2021-03-23 International Business Machines Corporation Transparent interpretation of guest instructions in secure virtual machine environment
US11347529B2 (en) 2019-03-08 2022-05-31 International Business Machines Corporation Inject interrupts and exceptions into secure virtual machine
US11308215B2 (en) 2019-03-08 2022-04-19 International Business Machines Corporation Secure interface control high-level instruction interception for interruption enablement

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US7739684B2 (en) * 2003-11-25 2010-06-15 Intel Corporation Virtual direct memory access crossover
US20060294518A1 (en) * 2005-06-28 2006-12-28 Richmond Michael S Method, apparatus and system for a lightweight virtual machine monitor
US8375386B2 (en) 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US8146082B2 (en) * 2009-03-25 2012-03-27 Vmware, Inc. Migrating virtual machines configured with pass-through devices
CN101872323A (zh) 2009-04-22 2010-10-27 曾凡平 一种基于虚拟机的故障注入测试方法
WO2010133507A1 (en) 2009-05-22 2010-11-25 International Business Machines Corporation Apparatus and method for monitoring a computer system
CN101667144B (zh) * 2009-09-29 2013-02-13 北京航空航天大学 一种基于共享内存的虚拟机通信方法
US8365020B2 (en) 2010-03-18 2013-01-29 Red Hat Israel, Ltd. Mechanism for saving crash dump files of a virtual machine on a designated disk
US8671405B2 (en) * 2010-03-31 2014-03-11 Microsoft Corporation Virtual machine crash file generation techniques

Also Published As

Publication number Publication date
CN104321748A (zh) 2015-01-28
EP2867770A1 (en) 2015-05-06
EP2867770B1 (en) 2020-05-27
EP2867770A4 (en) 2016-02-10
WO2014000253A1 (en) 2014-01-03
US20140006877A1 (en) 2014-01-02
US9436576B2 (en) 2016-09-06
TWI514283B (zh) 2015-12-21
CN104321748B (zh) 2018-02-02

Similar Documents

Publication Publication Date Title
TWI514283B (zh) 擷取輕型虛擬機器管理員中錯誤條件的方法、系統及設備
US9825908B2 (en) System and method to monitor and manage imperfect or compromised software
US10146571B2 (en) Apparatus for hardware accelerated runtime integrity measurement
US8671405B2 (en) Virtual machine crash file generation techniques
US9003239B2 (en) Monitoring and resolving deadlocks, contention, runaway CPU and other virtual machine production issues
US20180276383A1 (en) Automatic detection of software that performs unauthorized privilege escalation
Suneja et al. Exploring vm introspection: Techniques and trade-offs
JP7144642B2 (ja) フォレンジクスのための動作ベースのvmリソースキャプチャ
US20080016572A1 (en) Malicious software detection via memory analysis
JP5951879B2 (ja) オペレーティングシステムに対する悪意ある活動のレポート
US10430261B2 (en) Detecting a guest operating system crash on a virtual computing instance
US10007785B2 (en) Method and apparatus for implementing virtual machine introspection
CN108292342B (zh) 向固件中的侵入的通知
US8429322B2 (en) Hotplug removal of a device in a virtual machine system
US9448888B2 (en) Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
US9785492B1 (en) Technique for hypervisor-based firmware acquisition and analysis
Chan A framework for live forensics
Zhan et al. SAVM: A practical secure external approach for automated in‐VM management
US20240111857A1 (en) Secure execution of a file on a copy device in a virtualized computing environment
US20230101885A1 (en) Reliable device assignment for virtual machine based containers
US20230185663A1 (en) Hardware Memory Error Tolerant Software System

Legal Events

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