TWI453597B - 經由在一輸入輸出虛擬管理分割中之虛擬仲介以管理輸入輸出虛擬配接器的系統及方法 - Google Patents
經由在一輸入輸出虛擬管理分割中之虛擬仲介以管理輸入輸出虛擬配接器的系統及方法 Download PDFInfo
- Publication number
- TWI453597B TWI453597B TW097141044A TW97141044A TWI453597B TW I453597 B TWI453597 B TW I453597B TW 097141044 A TW097141044 A TW 097141044A TW 97141044 A TW97141044 A TW 97141044A TW I453597 B TWI453597 B TW I453597B
- Authority
- TW
- Taiwan
- Prior art keywords
- client
- imp
- endpoint
- segmentation
- virtual
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Description
概言之,本發明係關於一種經改良之資料處理系統及方法。更具體而言,本發明係貫注於一種經由在一IOV管理分割中之一虛擬中介以管理一輸入/輸出虛擬化(IOV)配接器(例如,一週邊組件互連(PCI)IOV配接器)的系統及方法。
大部分現代計算裝置使用利用某些版本或實施方案之週邊組件互連標準之輸入/輸出(I/O)配接器及匯流排,此最初由Intel於20世紀90年代創建。週邊組件互連(PCI)標準指定一用於將週邊裝置附接至一電腦母板之電腦匯流排。PCI Express或PCIe係一PCI電腦匯流排實施方案,其使用現有PCI程式化概念,但以一完全不同且甚快之連續實體層通信協定建立電腦匯流排。實體層並非由一可在複數個裝置中間共享之雙向匯流排組成,而係由確切地連接至兩個裝置之單個單向鏈接組成。
圖1係一圖解說明一併入一根據PCIe技術規範之PCIExpress(PCIe)構造拓撲之系統之例示圖。如圖1中所示,系統100係由一主機處理器(CPU)110及耦接至一根聯合體130之記憶體120組成,根聯合體130又耦接至一PCIe端點140(術語「端點」在PCIe技術規範中用於指代具有PCIe能力之I/O配接器)、一PCI express至PCI橋接器150及一個或多個互連交換器160中之一者或多者。根聯合體130表示一將CPU/記憶體連接至I/O配接器之I/O階層之根。根聯合體130包含一主機橋接器、零個或多個根聯合體積體端點、零個或多個根聯合體事件收集器及一個或多個根埠。每一根埠皆支援一單獨的I/O階層。該等I/O階層可係由一根聯合體130、零個或多個互連交換器160及/或橋接器150(其包括一交換器或PCIe構造)、及一個或多個端點(例如,端點140、170及182-188)組成。至於關於PCI及PCIe之更多資訊,參考可自www.pcisig.com.處之週邊組件互連特殊興趣組(PCI-SIG)網站獲得之PCI及PCIe之技術規範。
除PCI及PCIe技術規範之外,PCI-SIG亦具有經界定之輸入/輸出虛擬化(IOV)標準,其用於界定怎樣設計一可由數個邏輯分割(LPAR)所共享之I/O配接器(IOA)。一LPAR係將一電腦之處理器、記憶體及儲存器劃分成多組資源以使每一組資源皆可藉助其自己的作業系統示例及應用程式獨立地運作。可端視系統之處理器模型及可用資源來創建邏輯分割數目。通常,出於不同的目的(例如,資料庫運作、用戶端/伺服器運作)將分割用於單獨之測試及製造環境或類似環境。每一分割皆可與其他分割通信好像其他分割在一單獨機器中一樣。在支援若干LPAR之現代系統中,可在該等LPAR中間共享某些資源。如上所述,在PCI及PCIe技術規範中,一個此種可共享之資源係使用I/O虛擬化機制之I/O配接器。
雖然PCI-SIG提供一種用於界定怎樣設計一可由數個LPAR所共享之IOA之標準,但此技術規範並不界定怎樣將IOA連接至一主機系統中。此外,該標準並不指定怎樣管理一利用I/O虛擬化之IOA之所共享之功能。此乃因PCI-SIG技術規範係關乎到為根聯合體下之PCIe構造之運作設定標準。換言之,PCI-SIG不為該根聯合體及其以上提供任何標準之定義,此乃因其被視為系統外殼之域。亦即,舉例而言一Intel平臺、一IBM Power平臺及一Sparc平臺中之每一者皆可具有不同的未在PCI-SIG標準中闡明之系統實施方案要求。
說明性實施例提供一種經由在一IOV管理分割中之一虛擬中介以管理一輸入/輸出虛擬化(IOV)配接器的系統及方法。說明性實施例之機制解決一其中輸入/輸出(I/O)構造係由多於一個邏輯分割(LPAR)所共享且每一LPAR皆可能與其他LPAR共享一I/O配接器(IOA)之情形。
特定而言,藉助說明性實施例之機制,給每一LPAR指派其自己的單獨位址空間以存取指派給其之一虛擬功能(VF)並接收直接來自指派給其之該VF之中斷,以使每一LPAR認知其基於正常I/O運作之目的而具有其自己的獨立IOA。可跨越多個LPAR共享一IOA之每一VF(例如,一PCI Express(PCIe)I/O虛擬(IOV)配接器)。說明性實施例之機制提供經由IOV配接器之一實體功能(PF)藉由將彼PF指派給一I/O虛擬化管理分割(IMP)以管理IOV配接器之所共享之資源之設施。更具體而言,出於完全管理VF錯誤處理、VF重設及組態運作之目的,在IMP中運行之程式碼充當VF之一虛擬中介(VI)。另外,出於存取共同VF功能(例如,一網路配接器之VF之網路位址)之目的,IMP充當PF之介面,在本文其將被稱為配接器南側管理。
在一個說明性實施例中,提供一種用於管理輸入/輸出(I/O)虛擬化之方法。該方法可包括:在資料處理系統中創建一個或多個用戶端分割,每一用戶端分割皆具有該資料處理系統之資源之一相關聯之部分;及在該資料處理系統中創建一I/O虛擬化管理分割(IMP)。該方法可進一步包括:創建至少一個通信結構用以在該IMP與該一個或多個用戶端分割之間通信;及由該IMP使用該至少一個通信結構對與該資料處理系統相關聯之一個或多個I/O端點實施I/O虛擬化管理運作。該等I/O虛擬化管理運作可運作用以組態該一個或多個I/O端點之一實體功能或一虛擬功能中之至少一者。
創建一個或多個用戶端分割、創建該IMP及創建該至少一個通信結構可藉助一與該資料處理系統相關聯之超管理器實施。該超管理器可具有對該一個或多個I/O端點中實體功能及虛擬功能之組態空間之存取。該IMP可具有對該一個或多個I/O端點中僅用於指派給該IMP之實體功能之組態空間及用於屬於指派給該IMP之實體功能之虛擬功能之組態空間之存取。
該一個或多個用戶端分割可能不具有對一個或多個I/O端點中指派給該一個或多個用戶端分割之虛擬功能之組態空間之直接存取,而僅可存取該至少一個通信結構經由該IMP存取指派而對該一個或多個用戶端分割之虛擬功能之組態空間。該IMP可准許一用戶端分割存取該一個或多個I/O端點中指派給該用戶端分割之虛擬功能之組態空間,並可阻斷該用戶端分割存取該一個或多個I/O端點中未指派給該用戶端分割之虛擬功能之組態空間。
該方法可進一步包括自一指引該等I/O虛擬化管理運作之實施之硬體管理控制臺(HMC)接收一輸入。來自該HMC之該輸入可係一起始一用於向該資料處理系統新增一新I/O端點之熱插拔運作之命令。在此情形下,實施該等I/O虛擬化管理運作可包括基於該新I/O端點之新增向該一個或多個用戶端分割分配資源及基於該新I/O端點之該新增組態該IMP。實施該等I/O虛擬化管理運作可進一步包括向該一個或多個用戶端分割中之至少一個用戶端分割動態地新增該新I/O端點之至少一個虛擬功能及使用該至少一個通信結構經由該IMP組態該至少一個虛擬功能。
來自該HMC之該輸入可係一起始一用於自該資料處理系統移除一現有I/O端點之熱插拔運作之命令。在此情形下,實施該等I/O虛擬化管理運作可包括:識別具有與欲移除之該I/O端點之一虛擬功能相關聯之資源之該一個或多個用戶端分割中至少一個用戶端分割及移除該虛擬功能及與該虛擬功能相關聯之資源以不讓該至少一個用戶端分割使用。實施該等I/O虛擬化管理運作可進一步包括移除一實體功能及與該實體功能相關聯之資源以不讓該IMP使用,及使欲移除之該I/O端點斷電。
此外,來自該HMC之該輸入可係一動態地重新組態該資料處理系統之命令。在此情形下,實施該等I/O虛擬化管理運作可包括接收一I/O端點之一虛擬功能之一選擇以新增至該一個或多個用戶端分割中之一選定用戶端分割及針對該選定用戶端分割中之選定虛擬功能設立資源。實施該等I/O虛擬化管理運作可進一步包括針對該IMP及該選定用戶端分割中之該選定虛擬功能創建至少一個通信結構及為該選定用戶端分割中之該選定虛擬功能載入一裝置驅動器。
此外,來自該HMC之該輸入可係一動態地重新組態該資料處理系統之命令。在此情形下,實施該等I/O虛擬化管理運作可包括接收一I/O端點之一虛擬功能之一選擇以將其自該一個或多個用戶端分割中之一選定用戶端分割移除及移除該選定虛擬功能以不讓該選定用戶端分割進一步使用。實施該等I/O虛擬化管理運作可進一步包括針對該選定用戶端分割中之選定虛擬功能移除資源及針對該IMP及該選定用戶端分割中之該選定虛擬功能移除該至少一個通信結構之一通信結構。
來自該HMC之該輸入亦可係一改變一與一I/O端點之一選定虛擬功能相關聯之網路位址之命令。在此情形下,實施該等I/O虛擬化管理運作可包括識別一與該選定虛擬功能相關聯之實體功能及向該IMP發送一管理請求。該管理請求可包含用於改變該選定虛擬功能之該網路位址之位址資訊。實施該等I/O虛擬化管理運作可進一步包括基於該管理請求中之該位址資訊經由一與該實體功能相關聯之裝置驅動器改變該選定虛擬功能之該網路位址。
實施該等I/O虛擬化管理運作可包括在該IMP中經由該至少一個通信結構自該一個或多個用戶端分割之一用戶端分割中之一裝置驅動器接收一查詢虛擬功能錯誤狀態命令及自識別一I/O端點之一虛擬功能之一錯誤狀態之該IMP向該裝置驅動器提供錯誤資訊。實施該等I/O虛擬化管理運作可進一步包括記錄藉助該裝置驅動器記錄自該IMP接收之該錯誤資訊、經由該至少一個通信結構自該裝置驅動器向該IMP發送一重設虛擬功能請求以重設具有該錯誤狀態之該虛擬功能及在重設之後組態該虛擬功能。
實施該等I/O虛擬化管理運作亦可包括偵測一用戶端分割失敗及向該至少一個通信結構之與該已失敗用戶端分割中之虛擬功能相關聯之一個或多個通信結構告示一事件。該事件可致使該IMP移除與該已失敗用戶端分割中之該虛擬功能相關聯之該一個或多個通信結構或等待該已失敗用戶端分割重新啟動並接著重新建立與該已失敗用戶端分割之一連接。
實施該等I/O虛擬化管理運作還可包括偵測該IMP之一失敗及向該至少一個通信結構之與用於與一指派給該IMP之實體功能相關聯之虛擬功能之該一個或多個用戶端分割相關聯之一個或多個通信結構告示一事件。實施該等I/O虛擬化管理運作亦可包括恢復該已失敗IMP之運作及恢復該IMP與對應用戶端分割之間之運作。
在其他說明性實施例中,提供一種電腦程式產品,其包括一其上具有一記錄之電腦可讀程式之電腦可記錄媒體。該電腦可讀程式當在一計算裝置上執行時致使該計算裝置實施上文關於方法說明性實施例所概述之各種運作及其組合。
在再一說明性實施例中,提供一種資料處理系統,其可包括:一個或多個用戶端分割,每一用戶端分割皆具有該資料處理系統之資源之一相關聯之部分;一I/O虛擬化管理分割(IMP),其與該一個或多個用戶端分割通信;一個或多個I/O端點,其與該IMP通信;及至少一個通信結構,其與該IMP及該一個或多個用戶端分割相關聯地提供。該IMP可使用該至少一個通信結構對該一個或多個I/O端點實施I/O虛擬化管理運作。該等I/O虛擬化管理運作可經運作以組態該一個或多個I/O端點之一實體功能或一虛擬功能中之至少一者。此外,該資料處理系統之機制可實施上文關於方法說明性實施例所概述之各種運作及其組合。
將在對本發明之例示性實施例之以下詳細描述中描述本發明之該等及其他特徵及優點,或熟習此項技術者根據對本發明之例示性實施例之以下詳細描述將明瞭本發明之該等及其他特徵及優點。
說明性實施例提供經由一IOV管理分割中之一虛擬中介以管理一輸入/輸出虛擬化(IOV)配接器之機制。因此,為理解該等說明性實施例之機制,首先理解怎樣利用一超管理器或其他虛擬化平臺在一系統中實施I/O虛擬化頗為重要。應瞭解,雖然將關於周邊組件互連Express(PCIe)配接器或端點來描述該等說明性實施例,但本發明並不限於此。而是,可在於I/O配接器內支援I/O虛擬化之任一I/O構造中構建該等說明性實施例之機制。此外,應瞭解,雖然將就一其中利用一超管理器之實施方案來描述該等說明性實施例,但本發明並不限於此。相反地,可使用除一超管理器之外之當前已知或稍後開發之其他類型之虛擬化平臺(無論構建於軟體、硬體或軟體及硬體之任一組合中),此並不背離本發明之精神及範疇。
圖2係一圖解說明如此技術中一般已知之系統虛擬化之例示圖。系統虛擬化係對一實體系統之處理器、記憶體、I/O配接器、儲存器及其他資源之劃分,其中每一組資源皆藉助其自己的系統影像示例及應用程式獨立地運作。在此系統虛擬化中,虛擬資源係自若干實體資源組成並充當實體資源(例如,記憶體、磁碟驅動器)及具有相同外部介面及功能之其他具有架構化介面/功能之硬體組件之代理。系統虛擬化通常利用一虛擬化層,該虛擬化層創建虛擬資源並將其映射至實體資源,藉此在虛擬資源之間達成隔離。該虛擬化層通常提供為軟體、韌體及硬體機制中之一者或其一組合。
如圖2中所示,通常在一經虛擬化系統中,一應用程式210與一系統影像(SI)220通信,系統影像(SI)220係一藉助其指派特定虛擬及實體資源之軟體組件,例如一般或特殊目的作業系統。系統影像220與一虛擬系統230相關聯,虛擬系統230係由為運行一單個SI示例(例如,經虛擬化之處理器、記憶體、I/O配接器、儲存器等等)所需之實體或經虛擬化之資源組成。
系統影像220經由使用虛擬系統230來藉助於虛擬化層240存取實體系統資源250。虛擬化層240管理對一SI之資源分配並隔離指派給一SI之資源免遭其他SI存取。此分配及隔離常常係基於由虛擬化層240實施之一資源映射及由虛擬化層240所維持之一個或多個資源映射資料結構來實施。
此虛擬化可用於允許I/O運作及I/O資源之虛擬化。亦即,關於I/O虛擬化(IOV),一單個實體I/O單元可使用虛擬化層240由多於一個SI所共享,該虛擬化層可部分地或完全地構建為一超管理器。該超管理器可係軟體、韌體或類似物,其用於藉由對例如自一SI之組態、I/O及記憶體運作及對一SI之直接記憶體存取(DMA)、完成及中斷運作中之一者或多者進行幹預來支援IOV。
圖3係一圖解說明一使用一虛擬化層來使一PCI根聯合體之I/O虛擬化之第一方法之例示圖。如圖3中所示,一主機處理器組310(其可係一晶片、母板、刀鋒或類似物之一個或多個處理器)可支援應用程式(未顯示)可經由其存取系統資源(例如,PCIe端點370-390)之複數個系統影像320-330。該等系統影像經由虛擬化層340、PCIe根聯合體350及一個或多個PCIe交換器360及/或其他PCIe構造元件與該等經虛擬化之資源通信。
藉助圖3中所圖解說明之方法,虛擬化層340(其可部分地或完全地構建為一超管理器或其他類型之虛擬化平臺)牽涉於所有I/O事物中並實施所有I/O虛擬化功能。舉例而言,虛擬化層340將I/O請求自各種SI之I/O佇列多工至PCIe端點370-390中之一單個佇列上。因此,虛擬化層340充當SI 320-330與實體PCIe端點370-390之間之一代理。
圖4係一圖解說明一使用在本機上所共享之PCI I/O配接器來使一PCI根聯合體之I/O虛擬化之第二方法之例示圖。如圖4中所示,一主機處理器組410(其可係一晶片、母板、刀鋒或類似物之一個或多個處理器)可支援應用程式(未顯示)可經由其存取系統資源(例如,PCIe I/O虛擬化(IOV)端點470-490)之複數個系統影像420-430。系統影像420-430經由經由PCIe根聯合體440及一個或多個PCIe交換器460及/或其他PCIe構造元件與該等經虛擬化之資源通信。
PCIe根聯合體440包含根聯合體虛擬化啟用器(RCVE)442,其可包括藉助具有IOV能力之端點470-490促進I/O運作之虛擬化之一個或多個位址轉譯記保護表資料結構、中斷表資料結構及類似物。舉例而言,位址轉譯及保護表資料結構可由PCIe根聯合體440用於針對經虛擬化之資源在虛擬位址與真實位址之間實施位址轉譯、基於虛擬資源至Si之一映射來控制存取虛擬資源及其他虛擬化運作。舉例而言,該等根聯合體中斷表資料結構係經由PCIe記憶體位址空間存取且用於將中斷映射至與SI相關聯之適當的中斷處理程式。
如同圖3中所示之方法,在圖4之虛擬化結構中亦提供一虛擬化層450。虛擬化層450與可耦接至PCIe交換器460之不具有IOV能力之PCIe端點一起使用。亦即,虛擬化層450(其可部分地或完全地構建為一超管理器或其他虛擬化平臺)以一類似於上文關於圖3先前所述之方式與PCIe端點一起使用,彼等PCIe端點對I/O虛擬化(IOV)不具有本機(亦即,端點內部)支援。
對於具有IOV能力之PCIe端點470-490而言,虛擬化層450主要出於組態事物之目的而使用並不牽涉於記憶體位址空間運作中,例如,自一SI起始之經記憶體映射之輸入/輸出(MMIO)運作或自PCIe端點470-490起始之直接記憶體存取(DMA)運作。相反地,直接實施SI 420-430與端點470-490之間之資料傳遞,而不由虛擬化層450幹預。SI 420-430與端點470-490之間之直接I/O運作藉助於具有IOV能力之PCIe端點470-490之RCVE 442及內建I/O虛擬化記錄(例如,實體及虛擬功能)而變得可行。實施直接I/O運作之能力極大地增加實施I/O運作之速度,但需要PCIe端點470-490支援I/O虛擬化。
圖5係一具有PCIe I/O虛擬化(IOV)能力之端點之一例示圖。如圖5中所示,PCIe IOV端點500包含一PCIe埠510,可經由其實施與一PCIe構造之PCIe交換器及類似物之通信。內部路由520提供通至一組態管理功能530及複數個虛擬功能(VF)540-560之通信路徑。組態管理功能530可係一與虛擬功能540-560相反之實體功能(PF)。一實體「功能」作為PCI技術規範中所使用之術語係由一單個組態空間所表示之一組邏輯。換言之,舉例而言,一實體「功能」係可基於儲存於該功能在一記憶體中相關聯之組態空間中之資料進行組態(例如,可提供於不可分離資源570中)之電路邏輯。
組態管理功能530可用於組態虛擬功能540-560。該等虛擬功能係在一具有I/O虛擬化能力之端點內共享一個或多個實體端點資源(例如,一鏈接)並可提供於PCIe IOV端點500之例如具有其他功能之可共享資源池580中之功能。在無一超管理器之執行時間介入之情形下,該等虛擬功能可直接係自一系統影像之I/O及記憶體運作接收器,且可係對一系統影像(SI)之直接記憶體存取(DMA)、完成及中斷運作之一來源。
因應由PCIe端點所支援之「功能」,該等PCIe端點可具有許多不同類型之組態。舉例而言,端點可支援一單個實體功能(PF)、多個獨立PF或甚至多個相依PF。在支援本機I/O虛擬化之端點中,由該等端點所支援之每一PF皆可與一個或多個虛擬功能(VF)相關聯,其自身可相依於與其他PF相關聯之VF。
該等說明性實施例提供一使用一IOV管理分割以管理一輸入/輸出虛擬化(IOV)配接器(例如,圖5中所示之具有IOV能力之PCIe端點500)之系統及方法。該等說明性實施例之機制解決其中一輸入/輸出(I/O)構造(其可包括一個或多個PCIe交換器,例如圖4中之PCIe交換器460)係由一主機系統之多於一個邏輯分割(LPAR)所共享且其中每一LPAR皆可能與其他LPAR共享一I/O配接器(IOA)(例如,圖4中之一PCIe端點470-490)之情形。
特定而言,藉助該等說明性實施例之機制,給每一LPAR指派其自己的單獨位址空間以存取一指派給其之虛擬功能(VF),並接收直接來自指派給其之該VF之中斷,以出於正常I/O運作目的而使每一LPAR認知其具有其自己的獨立IOA或I/O端點。可跨越多個LPAR共享一IOA之每一VF(例如,一PCI Express(PCIe)I/O虛擬(IOV)配接器或端點)。該等說明性實施例之機制提供經由該IOV配接器/端點(在下文僅稱為一I/O端點)之一實體功能(PF)藉由將彼PF指派給一I/O虛擬化管理分割(IMP)以管理該IOV配接器/端點之所共享之資源之設施。更具體而言,在該IMP中運行之程式碼出於完全管理VF錯誤處理、VF重設及組態運作之目的而充當該等VF之一虛擬中介(VI)。另外,該IMP出於存取共同VF功能(例如,一網路配接器之VF之網路位址)之目的而充當PF之介面,其將在本文稱為I/O端點南側管理。
圖6係一其中根據一個說明性實施例利用具有IOV能力之端點或配接器之系統結構之一例示圖。圖6中所示之機制可結合圖4中所圖解說明之機制來構建。舉例而言,圖6中所示之IMP 603與圖4中之系統影像1 420相關聯地提供,而圖6中之用戶端分割604與圖4之系統影像2 430相關聯地提供。類似地,圖6之I/O構造611可包含圖4中之PCIe交換器460,IOV端點614可類似於圖4中之PCIe端點470-490中之任一者,且端點615及616可係具有IOV能力之端點或不具有IOV能力之端點之端點,例如圖3中之端點370-390。
如圖6中所示,系統601包括:一主機系統626,其可係任一資料處理裝置,例如一伺服器、用戶端計算裝置或類似物;一I/O構造611,其可包含一個或多個通信鏈接及一個或多個交換器;及一個或多個I/O端點614-616,在一個說明性實施例中其可係PCIe I/O端點,其中I/O端點614係一具有IOV能力之端點而其他端點615-616可係具有IOV能力或不具有IOV能力之端點之端點。主機系統626係由如下組件組成:係該資料處理裝置之基本硬體之平臺硬體610、一超管理器625、邏輯分割(LPAR)603及604及對應分割韌體(PFW)623及624。雖然本文中係關於與一超管理器625一起使用來描述該等說明性實施例,但應瞭解,亦可利用其他類型之虛擬化平臺,此並不背離如上文先前所述之本發明之精神及範疇。
在一個說明性實施例中,超管理器625可係在平臺硬體610上執行之程式碼且係該平臺之韌體之一部分。類似地,分割韌體(PFW)623-624亦可係該平臺之韌體之一部分,但顯示其與LPAR 603及604相關聯,此乃因其在邏輯上被視為在LPAR內執行之該LPAR之程式碼之一部分。
LPAR 603及604具有分配之資源及一在該LPAR內執行之作業系統影像或示例。另外,LPAR 603及604亦可執行該LPAR內之其他應用程式、軟體、程式碼或類似物。舉例而言,對於說明性實施例尤其重要的是,LPAR中之一者(例如,LPAR 603)執行致使LPAR 603充當一IOV管理分割(IMP)603之程式碼。其他LPAR 604可起用戶端分割的作用。IMP 603及用戶端分割604經准許以出於IOV管理之目的而經由命令/回應佇列(CRQ)機制607-608彼此通信,下文將更詳細地對此進行描述。雖然圖6中僅顯示一個IMP 603及一個用戶端分割604,但應瞭解,可在一主機系統626中提供多於一個IMP 603及用戶端分割604,此並不背離該等說明性實施例之精神及範疇。
超管理器625具有對IOV端點614之組態空間619、621及對I/O構造611組態空間617之存取。術語「組態空間」在本文中用於指代一自經記憶體映射之I/O(MMIO)位址空間之分配供用於儲存系統601之一特定組件之組態資料之不相交的位址空間。此外,該IMP之作業系統631及裝置驅動器605在實體功能(PF)612被指派給IMP 603時具有對用於其之組態空間619之存取,且具有對屬於指派給IMP 603之PF之虛擬功能(VF)之組態空間621之存取。該用戶端分割之作業系統632及裝置驅動器606不可直接使用該等VF之指派給其之組態空間621中之任一者,且因此必須經由CRQ機制607-608及IMP 603存取該等組態空間621。藉由阻斷用戶端分割存取VF組態空間621,IMP 603中之軟體充當一中介,或更具體而言,充當一虛擬中介(VI)以確信用戶端分割604經准許以存取組態空間621。以此方式,IMP 603向一用戶端分割604提供存取需要適當地運作其VF 613之組態空間621,但不存取可能對其他用戶端分割引起問題之組態空間。亦即,用戶端分割604僅可具有對為其VF 613分配之組態空間之存取。
一硬體管理控制臺(HMC)609上之一管理應用程式640(其可駐存於主機系統626上或在一單獨資料處理裝置(如圖所示)中),且HMC 609自身經由一遠端管理命令(RMC)介面602通信至IMP 603及用戶端分割604且經由相同類型之介面620通信至超管理器625。管理應用程式640(下文與HMC 609一起簡單通稱為HMC 609)充當總指揮以跨越系統601中之各種組件控制功能,並為人類提供一使用者介面642以觀察系統組態且輸入關於其欲將何種資源指派給哪個LPAR 603-604之資訊。管理應用程式640可提供許多不同功能,如下文更詳細地描述該等功能可由使用者調用。另一選擇為,可自動調用該等功能,而無需使用者回應於一觸發此等功能之起始之事件或輸入來進行幹預。
如上所述,用戶端分割604必須與IMP 603通信以存取一具有IOV能力之端點614中之其虛擬功能(VF)613之組態空間621。為針對此通信提供一介面,利用命令/回應佇列(CRQ)機制607及608。該等CRQ機制607及608包括經由其告示並接收命令/回應(C/R)請求之發送及接收佇列。
圖7係一圖解說明一根據一個說明性實施例之一命令/回應佇列(CRQ)結構之例示性實施方案之細節之例示圖。存在許多可構建一CRQ結構之方式,其中圖7僅表示此結構之一個說明性實施例。舉例而言,CRQ 701可構建於圖6之超管理器625中,其中超管理器介面(未顯示)提供給IMP 603及用戶端分割604兩者以允許用於對該等LPAR 603-604之間之請求進行排隊。
如圖7中所示,並繼續參照圖6,CRQ 701係由接收佇列704-705及可能用於每一通信方向之發送佇列702-703組成,其中每一接收佇列用於每一通信方向,亦即,自IMP603至用戶端分割604及自用戶端分割604至IMP 603。IMP 603可藉由將一C/R請求706告示至該IMP之相關聯之發送佇列702而向用戶端分割604發送該C/R請求。另外,超管理器625可告示與接收佇列704上之發送佇列之運作有關之事件713,其與一特定用戶端分割604相關聯。在一事件713或C/R請求706在接收佇列704上排隊且該佇列被先前騰空時,向用戶端分割604發送一中斷707。用戶端分割604在經由其CRQ介面接收到中斷707時可藉由利用一由超管理器625提供之用戶端獲取命令/回應介面708來讀取所有的輸入(引起該中斷之輸入及所新增之任何隨後輸入)。
類似地,沿相反方向,用戶端分割604可將C/R請求709告示至與CRQ結構701中之用戶端分割604相關聯之發送佇列703。超管理器625亦可將事件712告示至與IMP 603相關聯之接收佇列705。在一事件712或C/R請求709在接收佇列705上排隊且該佇列被先前騰空時,向IMP 603發送一中斷710。回應於中斷710,IMP 603可使用超管理器625介面之一用戶端獲取命令/回應介面715自接收佇列705擷取其C/R請求。
應注意,用戶端及IMP「獲取」介面通至接收佇列,而非發送佇列。該等發送佇列係針對發送介面而存在。如由自發送佇列至接收佇列之箭頭所指示,通過一個端告示至發送佇列之事物傳遞至另一端上之接收佇列。發送佇列係可選,此乃因該超管理器可取得請求並將其直接放入接收佇列中,而非採用構建一發送佇列之中間步驟。
圖8A係一圖解說明一根據一個說明性實施例之一組例示性CRQ超管理器事件之定義之例示圖。圖8B係一圖解說明一根據一個說明性實施例之連同所期盼之對應回應一起之一組CRQ用戶端請求之定義之例示圖。因此,圖8A-8B提供可告示至圖7中之CRQ結構701之發送及接收佇列之類型之事件及用戶端請求之實例。該等CRQ事件稱為「夥伴」,此乃因該等CRQ事件可告示至用戶端或IMP相關聯之接收佇列。「夥伴」係經由CRQ結構處於一IMP與一用戶端分割之間一連接中之一方,其非係與事件告示至其之接收佇列相關聯之另一方。
如圖8A中所示,「夥伴分割已連接」事件802係超管理器(例如,圖6中之超管理器625)告知IMP(例如,圖6中之IMP 603)及用戶端分割(例如,圖6中之用戶端分割604):IMP 603與一用戶端分割604之間之連接之兩端皆已準備好。應瞭解,在CRQ結構在超管理器625中初始化時,在IMP 603與用戶端604之間建立「連接」。回應於事件802,用戶端分割604將VF之狀態改變為一「已連接」狀態且用戶端分割604可開始使用該VF。IMP 603亦回應於事件802將分割之記憶體中之VF之狀態改變為一「已連接」狀態。
「夥伴分割已失敗」事件804告知接收此事件之IMP 603或用戶端分割604:連接之另一側或端不再可用且需要恢復,亦即,該連接之另一側已損毀且處於重新啟動過程中。在此情形下,期盼夥伴返回,且期盼分割(亦即,在其接收佇列中接收該事件之IMP或用戶端分割)等待一夥伴分割已連接事件802並接著重新建立該通信鏈接。回應於事件804,用戶端分割604藉由將VF之狀態改變為一「未連接」狀態來做出回應。可繼續使用該VF直至需要一CRQ鏈接,且若該VF之狀態在此時為「未連接」(亦即,同時尚未接收到一「夥伴分割已連接」事件),則進入一錯誤恢復狀態。IMP 603藉由將該VF之狀態改變為一「未連接」狀態來做出回應。
「夥伴分割已終止連接」事件806告知該連接之一個側或端:該連接之另一側或端已出於某種原因而意欲關閉該連接或超管理器625已偵測到一損毀而無所期盼之重新啟動。在任一情形下,「夥伴分割已終止連接」事件806之接收不應期盼夥伴將返回。回應於事件806,用戶端分割604終止VF使用並將一錯誤事件告示至其錯誤記錄。IMP 603藉由請求超管理器625(例如,一超管理器)停用該VF來做出回應。
若所發出任一無效請求812,則圖8B中之用戶端對IMP請求包含來自該IMP之一錯誤回應。此可例如在存在一創建一非有效請求或包含用於該請求之無效參數(如一無效位址)之程式化錯誤時發生。用戶端請求包含一組態請求814,其由用戶端分割604用於使IMP 603代表用戶端分割604對具有IOV能力之端點614之與用戶端分割604關聯之VF及PF之組態空間實施一組態讀取運作。類似地,IMP請求之用戶端進一步包含一組態寫入請求816,其由用戶端分割604用於使IMP 603代表用戶端分割604對具有IOV能力之端點614之與用戶端分割604相關聯之VF及PF之組態空間實施一組態寫入運作。藉助該等請求,IMP 603充當組態請求之一中介且不允許存取具有IOV能力之端點614之VF及PF之組態空間,若這樣做將會危害其他用戶端分割,例如,不與發送該請求之用戶端分割604相關聯之VF及PF。使適當的關聯範圍成為初始組態運作之一部分,其中超管理器將與每一CRQ相關聯之I/O組態結構傳遞至IMP,針對每一CRQ指定什麼係有效組態位址範圍等等。若該存取將危害其他用戶端分割之安全,則由IMP 603返回一錯誤結果。若該存取將不危害其他用戶端分割之安全,則實施讀取/寫入運作且將結果自IMP 603返回至用戶端分割604。
用戶端分割604可進一步發佈一重設VF請求818以使IMP 603例如使用一功能位準重設(FLR)來重設一與用戶端分割604相關聯之VF。
用戶端分割亦具有一組其可發出之錯誤處理請求。「查詢VF之錯誤狀態」請求820請求IMP 603告知用戶端分割604:VF是否已遇到一錯誤。IMP 603回應係返回錯誤狀態,或若不能返回錯誤狀態資訊(例如,因不准許用戶端分割604存取該VF之組態空間),則向用戶端分割604返回一錯誤回應。
「啟用向VF載入/儲存」請求822請求IMP 603允許即使在該VF處於一錯誤狀態時亦不阻斷對該VF之MMIO載入及儲存運作。此允許裝置驅動器606能夠在一錯誤之後向其VF發佈MMIO載入運作,以嘗試自該VF搜集關於已發生什麼之資訊,以及識別哪些運作可重新開始及哪些運作不可重新開始之資訊。IMP 603回應係將VF自MMIO錯誤狀態移除並返回一成功回應,或若不能將VF自MMIO錯誤狀態移除(例如,因不准許用戶端分割604存取該VF之組態空間),則返回一錯誤回應。
「獲取I/O構造錯誤資訊」請求824請求IMP 603允許用戶端分割604不止僅自其VF獲取錯誤資訊,且亦允許其俘獲除錯資料或可允許更好的錯誤隔離之資料。IMP 603回應係搜集構造錯誤暫存器資料並在假定準許用戶端分割604存取此資料之情形下將彼資料返回至用戶端分割604。若不准許用戶端分割604存取此資料,則返回一錯誤回應。
HMC 609亦可指揮一VF自一用戶端分割604之一動態移除。「VF運作因動態移除命令已終止」請求826係一適度終止用戶端分割604至IMP 603通信之方式。回應於來自用戶端分割604之請求826,IMP 603認可請求826並使用CRQ 607停止以與用戶端分割604通信。
最後,可存在如下唯一的驅動器資訊:其需要自用戶端分割中之與VF相關聯且因此稱為「VF驅動器」之裝置驅動器606傳遞至IMP 603中與PF相關聯且因此稱為「PF驅動器」之裝置驅動器605。VF驅動器對PF驅動器通信請求828允許此以一對平臺韌體及超管理器625透明之方式發生。
同樣,圖8A中之事件800可由超管理器625告示至IMP 603及用戶端分割604中之CRQ結構607及608之接收佇列。圖8B之用戶端請求810可由用戶端分割604告示於其CRQ結構608之將經由其CRQ結構607之其接收佇列發送至IMP 603之其發送佇列中。下文將描述使用該等CRQ超管理器事件800及CRQ用戶端命令810之實例。
圖9係一圖解說明一根據一個說明性實施例之對平臺韌體呼叫之一組例示性邏輯分割(LPAR)之定義之例示圖。特定而言,圖9圖解說明可用於構建該等說明性實施例之若干態樣之例示性平臺韌體呼叫900,以及該等呼叫可對哪些分割(用戶端或IMP)應用。舉例而言,該等呼叫可由分割603或604對圖6中相關聯之平臺韌體623或624實施。下文將在對圖11A-19中之各者的描述中給出對平臺韌體呼叫900之使用該等LPAR之實例。
一第一呼叫902(亦即,新增命令(請求)或對夥伴LPAR之CRQ做出回應)係一用於在CRQ 607或608上發送某物(例如,命令/請求或回應)之呼叫。此呼叫可由用戶端分割604及IMP 603使用。一第二呼叫904(亦即,獲取命令(請求)或來自CRQ 607或608之回應)係一用於離開CRQ 607或608之佇列獲取下一經排隊之命令/請求或回應之呼叫。
該組呼叫906-916係由IMP 603出於存取不對用戶端分割604直接可用之設施之目的而使用之呼叫。因此,如圖9中所示,該等呼叫不可由用戶端分割604使用但可由IMP 603使用。該等呼叫906-916用於IMP 603中滿足來自用戶端分割604在CRQ 607上排隊之請求之程式碼中,或用於一般PF控制及恢復中。讀取/寫入I/O組態空間呼叫906由IMP 603用於代表一用戶端分割604對一VF之組態空間實施一讀取或寫入運作。舉例而言,此呼叫可由IMP 603回應於自一具有存取目標VF之准許之用戶端分割604接收圖8B中之一請求814或816而發出。
重設PF呼叫908係PF特定呼叫中之可由IMP 603發出之一者。此呼叫重設PF,且因此亦重設與該PF相關聯之所有VF。在發出此呼叫時,IMP 603必須首先使用停用VF呼叫910來停用與該PF相關聯之所有VF,重設該PF,且接著將所有VF組態恢復為其在PF重設之前之狀態。
停用VF呼叫910告知平臺韌體停用對VF之任何進一步MMIO運作且防止直接記憶體存取(DMA)及來自該VF之中斷與用戶端分割604聯繫。存在許多方式來構建此以確信不發生資料完整性問題。在一個說明性實施例中,可以一如下方式設計硬體:若一用戶端分割604嘗試自其VF實施一MMIO載入運作,則用戶端分割604可接收回所有-1之資料,好像該VF不在此處一樣。期盼裝置驅動器606在不期盼所有全-1之資料時檢查是否存在所有全-1之資料,並使用查詢VF之錯誤狀態CRQ請求820來驗證所有全1是否表示一錯誤狀態。期盼停用VF呼叫910主要用於錯誤恢復情形,且因此可調用VF驅動器(例如,裝置驅動器606)進入其自己的恢復中,如上文所述及下文所進一步描述。
查詢PF及VF錯誤狀態呼叫912係一對平臺韌體之允許IMP獲取為滿足查詢VF之錯誤狀態CRQ用戶端請求820所需之資訊之呼叫。呼叫912亦允許PF驅動器(例如,裝置驅動器605)藉助不對該VF可用之PF來實施等效錯誤恢復。
為針對錯誤恢復獲得平臺錯誤資料,提供為載入及恢復運作啟用PF及VF呼叫914及查詢I/O構造錯誤資訊呼叫916。前者係提供用於構建啟用向VF載入/儲存CRQ用戶端請求820,且後者係構建獲取I/O構造錯誤資訊CRQ用戶端請求824。同樣,該等呼叫可由IMP 603用於PF錯誤恢復。
查詢中斷源呼叫918對所有中斷使用以獲取中斷源以將中斷控制器虛擬化。因此,如圖9中所描繪,查詢中斷源呼叫918可由用戶端分割604及IMP 603兩者使用。設立DMA轉譯呼叫920係用於設立一用於將一I/O位址轉譯為系統位址之轉譯機制。此等位址轉譯機制係為I/O虛擬化所需。設立DMA轉譯呼叫920可由用戶端分割604使用但一般而言不由IMP 603使用,此乃因一般而言PF不需要對該IMP實施DMA運作。
最後,新增/自LPAR移除VF使用呼叫922及新增/自LPAR移除PF使用呼叫924係供用於IOA熱插拔及動態重新組態運作,如下文將描述。新增/自LPAR移除VF使用呼叫922可由用戶端分割604使用但不由IMP 603使用,此乃因根據定義,該等VF不指派給IMP 603且VF之擁有者控制該VF之熱插拔。新增/自LPAR移除PF使用呼叫924可由IMP 603使用但不由用戶端分割604使用。不准許用戶端分割604以任何方式改變PF,且因此不可使用新增/自LPAR移除PF使用呼叫924,此乃因允許用戶端分割604這樣做可對與與PF相關聯之其他用戶端分割相關聯之VF引起一安全問題。
圖10A-10B係圖解說明根據一個說明性實施例之對平臺請求及回應之一組例示性硬體管理控制臺(HMC)之定義之例示圖。特定而言,圖10A-10B圖解說明平臺韌體請求/回應1000之例示性HMC並識別該系統中期盼對其發出此請求之組件以及該組件之所期盼之回應。該等呼叫可例如由圖6中之HMC 609經由介面602及620中之一者或多者發出。舉例而言,若HMC 609發出一以IMP 603或用戶端分割604為目標之呼叫,則HMC 609可經由RMC介面602發出該呼叫。若HMC 609正發出一以超管理器625(例如,一超管理器)為目標之呼叫,則可經由介面620發出該呼叫。下文將關於圖11A-19中之各者更詳細地提供使用平臺請求/回應1000之該等HMC之實例。
如圖10A-10B中所示,可藉由使用查詢I/O構造組態請求1002來查詢超管理器625關於I/O構造組態。此請求1002可例如在初始系統起始時由HMC 609用於獲取所有可能的I/O裝置及其功能,以便可向使用者呈現該等I/O裝置及其功能以對使用者希望組態之各種LPAR進行選擇及指派。
獲取初始LPAR I/O組態請求1004由HMC 609用於告知超管理器625 HMC 609處之使用者已決策組態什麼。此組態不僅包含I/O組態,且亦包含LPAR組態特性,例如所指派之CPU數目及指派給該系統中各種LPAR之記憶體之量。
超管理器625亦可由HMC 609告知何時給一I/O配接器或端點進行通電及斷電。此可經由通電/斷電IOA請求1006來達成。
存在平臺請求1008-1014之數個HMC,其由HMC用於指引向該系統動態新增一PF或VF,亦即,在系統在運作時且在初始組態之後。PF/VF之動態新增請求1008由HMC 609用於告知超管理器625期盼向一LPAR或向多個LPAR新增特定資源。需提前告知超管理器625意欲新增此等資源以便其可為彼等LPAR分配資源。以此方式,在該LPAR請求超管理器625向其LPAR新增一VF或PF時,超管理器625已準備好分配彼等資源。
一旦超管理器625已完成PF/VF之動態新增請求1008,IMP 603及用戶端分割604即可被告知任何新增。一PF之動態新增請求1010告知IMP 603將可新增一新PF。此可例如在向一系統之一I/O配接器或端點之一熱插拔新增時發生,如下文所討論。請求1010告知IMP 603將該PF新增至其構造組態,初始化PF組態空間,載入裝置驅動器並啟用該PF之IOV能力。IMP 603藉助圖9中之新增/自LPAR移除PF使用呼叫924之「新增」能力來向超管理器625傳訊運作之完成。
對一IMP 603之一VF之動態新增/移除請求1012告知IMP 603為一VF新增或移除資源,例如,CRQ機制及為支援一特定VF所需之任何支援結構。以一類似方式,一VF之動態新增請求1014告知一用戶端分割604將可新增一新VF。此可例如在向一系統之一I/O配接器或端點之一熱插拔新增時或在使用者意欲向一用戶端分割604新增一具有未使用之VF之已存在I/O配接器或端點之額外能力時發生。請求1014告知用戶端分割604將VF新增至其構造組態,初始化VF組態空間,載入裝置驅動器並開始使用該VF。用戶端分割604藉助新增/自LPAR移除VF使用呼叫1012之「新增」能力來向超管理器625傳訊運作之完成。
存在平臺請求1016-1020之數個HMC,其可由HMC 609用於指引將一PF或VF自該系統動態移除,亦即,在系統在運作時且在初始組態之後。PF/VF之動態移除請求1016由HMC 609用於告知超管理器625期盼自一LPAR或自多個LPAR移除特定資源。需提前告知超管理器625以便其可在該(等)LPAR傳訊該等移除之後為彼等LPAR去除分配資源。一旦超管理器625已完成PF/VF之動態移除請求1016,IMP 603及用戶端分割604即可被告知任何移除。
一VF之動態移除請求1018接著由HMC 609用於告知一用戶端分割604將需要將一VF自使用且自該LPAR之組態移除。此可例如在自一系統之一I/O配接器或端點之一熱插拔移除時或在使用者意欲自一用戶端分割604移除已存在I/O配接器或端點之一能力時發生,以便例如其可針對彼LPAR之使用重新指派給另一LPAR。此請求告知用戶端分割604停止使用該VF,經由CRQ機制請求重設該VF,移除裝置驅動器並將該VF自該OS之構造組態移除。用戶端分割604藉由新增/自LPAR移除VF使用呼叫922之「移除」能力來向超管理器625傳訊運作之完成。
一PF之動態移除請求1020告知一IMP 603欲移除一PF。在發佈此請求之前,HMC 609必須已將與該PF相關聯之所有VF移離使用用戶端分割604,如上所述。一PF之移除可例如在自一系統之一I/O配接器或端點之一熱插拔移除時發生。請求1020告知IMP 603停止使用該PF,經由重設呼叫908請求重設該PF、移除裝置驅動器並將該PF自該OS之構造組態移除。IMP 603藉由「新增/自LPAR移除PF使用呼叫924之移除」能力來向超管理器625傳訊運作之完成。
IMP 603之一重要功能係提供對I/O配接器或端點之資源之安全存取,該等I/O配接器或端點係跨越多個正使用與一PF相關聯之VF之LPAR共享,或對一VF唯一但其不應可存取而由該PF改變。一網路I/O配接器或端點之此資源之一個實例係與一由該等VF所共享之PF相關聯之網路位址或一對一VF唯一之網路位址。對該等裝置專用資源之管理在本文將稱為I/O配接器或端點之「南側」管理。此係藉助I/O配接器(IOA)或端點南側管理請求1022經由HMC 609來達成,且所有此種管理皆經由HMC 609上之一安全應用程式(例如,一記錄應用程式或其他鑑別應用程式)而頗為安全。在IMP 603針對一IOA接收一IOA南側管理請求1022時,該IMP 603將該請求傳遞至PF之裝置驅動器605,且裝置驅動器605經由一PF介面向該IOA發出裝置專用請求以達成該請求。
可藉由使用查詢先前命令完成及狀態請求1024使平臺請求1000之所有HMC之當前狀態成為原始請求之目標。此允許HMC 609調整一系列HMC請求,並經由一HMC介面向使用者指示一先前請求之一狀態。可發出此請求,此乃因完成某些運作可能相當慢且期盼能夠存取此等請求之當前狀態。
本描述現轉向對上文圖8A-10B中所圖解說明之各種請求及呼叫之使用之一更詳細解釋。圖11A-19係概述該等說明性實施例之機制之各種運作之流程圖。舉例而言,圖11A-19中所概述之該等運作可藉助圖6中所描繪之各種機制來達成,例如,HMC、超管理器、CRQ結構、IMP、用戶端分割、平臺韌體/硬體、I/O端點及類似物。因此,在適當的情形下,將參照圖6之元件作為該等說明性實施例之可參與圖11A-19中所概述之運作之實施之機制之一個實例。
應理解,該等流程圖圖解說明中之每一塊及該等流程圖圖解說明中塊之組合可由電腦程式指令來構建。可將該等電腦程式指令提供給一處理器或其他可程式化資料處理設備以產生一機器,以使得在該處理器或其他可程式化資料處理設備上執行之指令創建用於構建該(等)流程圖塊中所指定之功能之構件。亦可將該等電腦程式指令儲存於一可指引一處理器或其他可程式化資料處理設備以一特定方式起作用之電腦可讀記憶體或儲存媒體中,以使得儲存於該電腦可讀記憶體或儲存媒體中之指令產生一包含構建該(等)流程圖塊中所指定之功能之指令構件之製品。
因此,該等流程圖圖解說明中之塊支援用於實施該等所指定之功能之構件之組合、用於實施該等所指定之功能之步驟之組合及用於實施該等所指定之功能之程式指令構件。亦應理解,該等流程圖圖解說明中之每一塊及該等流程圖圖解說明中塊之組合可藉由實施該等所指定之功能或步驟之基於專用硬體之電腦系統或藉由專用硬體及電腦指令之組合來構建。
此外,提供該等流程圖以顯示在該等說明性實施例內實施之運作。該等流程圖並不意指狀態或暗示關於對特定運作或更特定而言運作次序之限制。該等流程圖之運作可經修改以適於一特定實施方案,此並不背離本發明之精神及範疇。
圖11A-11B係概述一根據一個說明性實施例之一具有經I/O虛擬化之(IOV)配接器之系統之例示性「起始」運作之流程圖。如圖11A-11B中所示,初始1/O構造起始運作1100開始於實施一I/O構造通電(步驟1102)。回應於該I/O構造通電,超管理器625可例如藉由探測I/O構造611之一組態空間來發現耦接至I/O構造611之所有I/O配接器614-616(步驟1104),藉助發現運作來發現I/O配接器614-616之功能(步驟1106),且例如藉由偵測該IOV組態空間來發現哪些所發現之功能為PF 612(步驟1108)。
舉例而言,對於PF,超管理器625可例如藉由讀取每一PF之組態空間中之一初始VF場來進一步探測該組態空間以確定可由每一PF支援之VF之數目(步驟1110)。超管理器625可接著確定系統601中為I/O配接器(IOA)614-616所需之所有系統資源,且在此情形下更具體而言,為VF所需之彼等資源(步驟1112)。資源包含諸如如下項目:將該IOA自該系統中之處理器映射至該記憶體空間中以用於記憶體映射I/O(MMIO)載入及儲存運作所需之I/O位址空間、所需之請求程式識別符(RID)之數目、所需之DMA視窗空間之量及所需之中斷數目及類似物。DMA視窗空間係為根聯合體(RC)中之位址轉譯設施所需之表空間之量。
一旦已做出關於所需之資源之確定,超管理器625即可確定其是否需要因系統601中之資源約束而限制得以啟用之VF之數目(步驟1114)。超管理器625可接著將其已自探測該I/O組態空間收集之所有資訊報告給HMC 609(步驟1116),例如向一使用者呈現。使用者可接著將資源指派給LPAR或指派給可用自由資源池。所報告之資訊可例如包含使用者需要來做出關於什麼在該I/O構造及端點中之決策之資訊,包含例如賣主ID、裝置ID及功能數目等項目。該資訊可進一步包含:由I/O配接器或端點所支援之PF之數目、可為每一PF支援之VF之數目(例如,可由PF之初始VF及因如由超管理器625以上述方式計算之系統限制對可支援VF之數目之計算確定)及類似物。
現在輪到HMC 609處之使用者確定其意欲怎樣分配所有系統資源。注意,此可藉助HMC 609中運行之自動化指令碼而非人類或用於將系統資源指派或分配給系統601之邏輯分割之任一其他自動化機制實施。因此在例示性實施例中,HMC 609向使用者呈現I/O構造及所收集之端點資訊(步驟1118)且使用者指定將怎樣分配資源(1120)。此分配不僅包含I/O,且亦將包含其他系統資源,例如處理器及記憶體。一旦使用者已指派資源,即將此報告給超管理器625(步驟1122)。
對於VF,若由使用者所指定之(所指派之及自由池兩者)VF之數目小於對應PF之初始VF,則超管理器625可將該PF之一VF數目組態空間參數設定為所期盼之值,並可經由一如由PCI IOV技術規範所界定之VF啟用位元啟用該等PF之I/O虛擬化(步驟1124)。超管理器625可接著設立每一分割之資源(包含MMIO定址、DMA定址、中斷及其他資源)(步驟1126)並可創建為IMP 603所需之分割(步驟1128)。超管理器625可針對IMP 603及用戶端分割604進一步創建CRQ 607及608並可在用戶端CRQ 608與適當的IMP CRQ 607之間創建鏈接(步驟1130)。用戶端分割與IMP分割關聯度對應於哪些VF 613與哪些PF 612相關聯。亦即,該等CRQ之鏈接係如圖6中所示,其中將VF 613之PF 612指派給IMP 603且將與PF 612相關聯之VF 613指派給用戶端分割604。
超管理器625可接著針對IMP 603及用戶端分割604引導分割韌體623及624並可將I/O組態結構傳遞至IMP 603及用戶端分割604以供彼等LPAR中之OS使用(步驟1132)。超管理器625在將VF 613指派給用戶端分割604時可阻斷任一I/O組態自用戶端分割604存取其VF 613(步驟1134)。超管理器625可引導該IMP分割之OS並接著可等待一來自IMP 603之PF 612已經初始化之指示(步驟1136)。IMP 603可例如經由圖9中之新增至/自LPAR移除PF而使用韌體呼叫924之「新增」功能來給予此指示。
一旦一VF 613之IMP 603已初始化PF 612,即可載入VF613之OS(步驟1138)。用戶端分割604可為其VF 613載入裝置驅動器606(步驟1140)。一旦已為一VF 613載入一裝置驅動器606,該驅動器便需要例如藉由經由組態讀取CRQ請求814及組態寫入CRQ請求816透過CRQ機制請求組態存取來組態其VF 613(步驟1142)。裝置驅動器606可接著開始使用其VF 613。接著,該運作終止。
一旦系統起動並運作,即期盼能夠向該系統動態地新增新I/O配接器或端點。圖12A-12B係概述一根據一個說明性實施例之用於向一系統新增一IOV配接器之一例示性熱插拔運作之流程圖。如圖12A-12B中所示,熱插拔新增運作1200開始於由使用者在HMC控制臺609啟動一熱插拔應用程式(步驟1204),如此會提供一使用者介面來指引使用者進行該熱插拔運作。自該熱插拔應用程式中,該使用者或該應用程式可選擇I/O構造611中之一空的I/O槽,而將新I/O配接器或端點(例如,I/O端點614)插入至其中(步驟1206)。該使用者可接著插入新I/O配接器(IOA)或端點(步驟1208)且HMC 609會報告該IOA已被插入(步驟1210)。熟悉此項技術者將認識到,I/O匯流排之熱插拔應用程式(例如,PCIe)可藉由將一新IOA插入至一未使用之槽中並使該系統自動調用該熱插拔應用程式之方式來自動調用。HMC 609可接著向超管理器625發送一訊息使該IOA供電並可獲取其組態資訊(步驟1212),且該運作繼續至步驟1214。
以一類似於超管理器625在初始構造起始運作1100中搜集資訊之方式,超管理器625可發現IOA(步驟1214),可發現該IOA上之功能(步驟1216)並可發現哪些功能為PF(步驟1218)。對於PF,超管理器625可發現可由每一PF所支援之VF之數目(步驟1220),可確定系統資源需要(步驟1222),確定系統資源限制(步驟1224)並可將IOA組態資訊報告給HMC 609(步驟1226)。
HMC 609可向使用者呈現組態資訊(步驟1228)。使用者可指定將哪些資源指派給哪些用戶端分割(步驟1230)且HMC 609可將此資源分配報告給超管理器625(步驟1232)且視需要超管理器625可設定組態空間中之VF數目(步驟1234)。超管理器625可設立每一分割之資源(步驟1236),可針對新IMP 603創建分割(步驟1238),可針對IMP 603創建CRQ 607並可在用戶端CRQ 608與適當的IMP CRQ 607之間創建鏈接(步驟1240)。超管理器625可引導IMP 603並將I/O組態結構傳遞至彼(等)IMP 603(步驟1242),可指引該等IMP OS,並可等待來自該(等)IMP OS之PF 612及CRQ 607已經初始化之信號(步驟1244)。在此點上,除VF 613新增之外已完成IOA新增且超管理器625可傳訊完成對HMC 609之PF 612新增(步驟1246)。
HMC 609現在可向將自新IOA 614接收一VF 613之用戶端分割604發佈一VF之動態新增請求1012。此開始用戶端分割604過程來新增VF(步驟1248)。用戶端分割604中之OS可偵測新VF 613及CRQ 608並可為新VF 613載入裝置驅動器606(步驟1250)。VF 613之裝置驅動器606可例如藉助其自己的對IMP 603之CRQ 608經由圖8中之組態讀取CRQ請求814及組態寫入CRQ請求816來組態其VF 613,並可開始使用其新近組態之VF 613(步驟1252)。接著,該運作終止。
除向該等說明性實施例之系統601之I/O構造611動態地新增I/O配接器或端點之外,能夠允許自I/O構造611動態地移除I/O配接器或端點亦頗為有益。圖13係一概述一根據一個說明性實施例用於自一系統移除一IOV配接器之例示性熱插拔運作之流程圖。如圖13中所示,熱插拔移除運作1300開始於HMC控制臺609處之使用者開始熱插拔應用程式(步驟1304)。使用者可選擇被移除之一I/O配接器(IOA)或端點(例如,I/O端點614)(步驟1306)。
HMC 609確定哪些分割(若有)含有來自欲移除之IOA之PF 612及VF 613資源(步驟1308)。HMC 609可例如藉由使用PF/VF之動態移除請求1014來向超管理器625傳訊資源之即將來臨之移除(步驟1310)。HMC 609可接著向在IOA上含有一VF 613之每一用戶端分割604發送一請求以例如經由一VF之動態移除請求1016來將VF自使用移除(步驟1312)。用戶端分割604可停止使用其與VF之動態移除請求1016相關聯之VF 613(步驟1314)並可例如經由一VF運作因一動態移除而終止CRQ請求826來向IMP 603傳訊終止(步驟1316)。
用戶端分割604可例如經由VF之動態移除呼叫1016來傳訊分割韌體623移除其VF 613以不讓用戶端分割604使用(步驟1318)。超管理器625等待所有正使用之用戶端分割604傳訊其對其VF之釋放(步驟1320)並接著可將該(等)VF移除報告給HMC 609(步驟1322)。
完成VF移除,HMC 609現在可開始移除與IOA 614相關聯之PF 612之過程。HMC 609藉由向在IOA 614上含有一PF 612之每一IMP 603發送一訊息以例如經由PF之動態移除請求1018而將PF 612自使用移除來實施此過程(步驟1324)。IMP 603可接著如所指引停止使用所指定之PF 612(步驟1326)並傳訊分割韌體624將PF 612自其分割之使用移除。IMP 603可接著將相關聯之PF 612資源自其分割移除(步驟1328)。
超管理器625等待所有正使用之IMP 603傳訊其對PF 612之釋放(步驟1330)並可接著將該(等)PF移除報告給HMC 609(步驟1332)。IOA 614現在不再在使用中,且HMC 609可向超管理器625發送一訊息以例如經由通電/斷電IOA請求1006來關斷IOA 614之電力(步驟1334)。超管理器625可接著使IOA 614斷電,可將IOA 614資源自超管理器625移除並可將完成報告給HMC 609(步驟1336)。HMC 609可將完成報告給使用者(步驟1338),而使用者可接著視需要拔去IOA 614,且該運作完成。
1/O虛擬化及VF實施方案之有益特徵中之一者係在系統中具有足夠的資源以在需要載入平衡時動態地四處移位彼等資源之能力。此可藉由具有一可自其選擇VF以新增至一LPAR之可用資源池或藉由將一VF自一未必良好地使用該VF之資源之LPAR移除並將該VF新增至一更好地使用該VF之資源之LPAR來實施。圖14係一概述一根據一個說明性實施例之用於向一邏輯分割(LPAR)動態地新增一虛擬功能(VF)之例示性運作之流程圖。圖14中所概述之運作可用於例如在需要最佳化系統601之運作時將該VF之資源自一個LPAR移位至另一LPAR。
如圖14中所示,VF新增運作1400開始於HMC 609處之使用者開始一動態重新組態(DR)應用程式(步驟1404)。使用者可自一可用VF 613列表選擇來進行新增,並可指定將VF 613新增至哪個用戶端分割(步驟1406)。HMC 609可例如經由PF/VF之動態新增請求1008向超管理器625呈現此資訊(步驟1408)。超管理器625可設立用戶端分割之資源,包含MMIO定址、DMA定址、中斷及類似物(步驟1410)。超管理器625亦可針對IMP603及用戶端分割604創建CRQ607及608及用戶端CRQ608與適當的IMPCRQ607之間之鏈接(步驟1412)。
超管理器625可藉由傳訊所請求之運作之完成來告知HMC609:該運作準備進行(步驟1414)。HMC609可接著請求IMP603例如經由VF之動態新增請求1011來動態地新增CRQ607(步驟1416)。HMC609可接著請求用戶端分割604經由VF之動態新增請求1012來動態地新增VF613(步驟1418)。用戶端分割604可偵測新VF613及CRQ608並可為新VF613載入裝置驅動器606(步驟1420)。VF613之裝置驅動器606可例如經由組態讀取CRQ請求814及組態寫入CRQ請求816藉助對IMP603之CRQ608來組態其VF613(步驟1422)。最後,HMC609可向使用者告知運作824之完成且該運作完成(步驟1426)。
圖15係一概述一根據一個說明性實施例之用於自一LPAR動態地移除一VF之例示性運作之流程圖。圖15中之動態VF移除運作1500係在系統601之各種LPAR之間四處移動I/O資源之另一項能力。亦即,可使用圖15中所示之運作將一VF自與一個LPAR之關聯移除並接著使用上文圖14中所概述之VF新增運作來將其新增至另一LPAR。
如圖15中所示,VF移除運作1500開始於在HMC609處使用者開始DR應用程式(步驟1504)。使用者可選擇一欲移除之VF(例如,VF 613)(步驟1506)且HMC 609可例如向超管理器625發送一動態移除PF/VF請求1018(步驟1508)。HMC 609可例如向用戶端分割604發送一VF之動態移除請求1018以開始VF移除過程(步驟1510)。用戶端分割604可如所指引接收此請求並停止使用VF 613(步驟1512)。
用戶端分割604可例如經由因動態移除而終止之CRQ 608經由VF運作因一動態移除而終止CRQ訊息826來向IMP 603傳訊(步驟1514)。用戶端分割604可傳訊分割韌體623例如經由新增/自LPAR移除VF使用呼叫922之「移除」功能而將VF 613自該分割之使用移除。分割韌體623可接著將相關聯之VF 613資源自用戶端分割604移除(步驟1516)。超管理器625可將該VF移除報告給HMC 609(步驟1518)。HMC 609可告知使用者該運作之完成(步驟1520)且該運作終止。
除動態地新增及移除1/O配接器或端點且能夠在LPAR中間移位VF及其相關聯之資源LPAR之外,在一經虛擬化之系統中,能夠自錯誤恢復之錯誤處理之強健性頗為有益。該等說明性實施例提供一能夠藉由擷取錯誤資訊、記錄錯誤資訊、重設並組態VF並接著嘗試重新開始未完成的I/O運作來自錯誤恢復之機制。在圖16中概述此運作,如下文所述。
圖16係一概述一根據一個說明性實施例之用於自一由一VF所招致之錯誤錯誤恢復之例示性運作之流程圖。圖16中所概述之運作使用一停止一VF之所有DMA及MMIO直至裝置驅動器可認識到存在一錯誤之現有技術,並可適度恢復。然而,圖16之運作利用該等說明性實施例之機制來增大此現有技術以利用CRQ機制來控制VF之錯誤恢復過程。
如圖16中所示,VF錯誤恢復運作1600在已發生一已將VF放入一MMIO已停止狀態及DMA已停止狀態之錯誤之後開始。在此狀態中,不將完成來自VF之DMA運作,在MMIO已停止狀態中時將放棄MMIO儲存運作,且MMIO載入運作將使所有全-1之資料皆返回。錯誤恢復過程開始於裝置驅動器(例如,裝置驅動器606)接收自一MMIO載入運作返回之所有-1之資料(步驟1604)。不期盼(或不確信其是否應期盼)所有全-1之資料返回之裝置驅動器606可例如對VF613使用VF之CRQ查詢錯誤狀態CRQ請求820來獲取VF狀態資訊(步驟1606)。由於VF 613在此點上處於錯誤狀態,因此IMP 603可對該查詢做出回應:VF 613處於MMIO已停止及DMA已停止錯誤狀態(步驟1608)。裝置驅動器606可使用獲取I/O構造錯誤資訊CRQ請求824以例如獲得關於I/O構造611中之錯誤暫存器之資訊,以供稍後問題確定(步驟1610)。IMP 603可藉助錯誤資訊對該查詢做出回應(步驟1612)且裝置驅動器606可將該資訊記錄至一錯誤記錄中以供稍後分析(步驟1614)。
裝置驅動器606現在已準備重設其VF並嘗試重新開始運作。裝置驅動器606可使用重設VF CRQ請求818例如來重設VF 613(步驟1616)且IMP 603可以一完成回應來對該請求做出回應(步驟1618)。裝置驅動器606可接著使用CRQ機制(且具體而言組態讀取CRQ請求814及組態寫入CRQ請求816)來例如組態其VF613(步驟1620)。裝置驅動器606嘗試重新開始未完成的I/O運作(步驟1622)且該運作終止。
如先前所述,IMP 603之一重要功能係提供對IOA或端點之資源之安全存取,該等IOA或端點係跨越多個正使用與一PF相關聯之VF之LPAR共享,或對一VF唯一但不應可存取而由該PF改變。一網路I/O配接器(IOA)或端點之此資源之一個實例係與一由VF所共享之PF相關聯之網路位址,或一對一VF唯一之網路位址。對該等裝置專用資源之管理稱為I/O配接器或端點之IOA「南側」管理。圖17係一概述一根據一個說明性實施例之用於改變一網路配接器上之一網路位址之例示性IOA南側管理運作之流程圖。應瞭解,雖然圖17具體貫注於改變一網路配接器上之一網路位址,但亦可對跨越多個正使用與一PF相關聯之VF或對一VF唯一之LPAR所共享之其他資源實施一類似運作。
如圖17中所示,該運作開始於HMC控制臺609處之使用者開始一應用程式來改變一VF 613之網路位址(步驟1704)。使用者可選擇VF 613及位址(或該應用程式可基於該運作之背景來提供位址)(步驟1706)。HMC 609可確定控制VF 613之PF 612及IMP 603並可向IMP 603發送一IOA南側管理請求1020,在IOA南側管理請求1020中傳遞VF 613及位址資訊(步驟1708)。IMP 603可將該資訊傳遞至PF裝置驅動器605且PF裝置驅動器605可將其傳給PF 612以供處理(步驟1710)。HMC 609可查詢IMP 603命令是否完成,且在完成時可告知使用者該運作完成(步驟1712)且該運作終止。
應瞭解,系統601中之用戶端分割604可在系統601在運作時終止運作。一用戶端分割604可終止的原因有許多,例如該用戶端分割中之軟體中之一不可恢復錯誤或僅影響彼硬體指派給其之分割之一不可恢復硬體錯誤。圖18係一概述一根據一個說明性實施例之用於用戶端分割終止之例示性運作之流程圖。圖18中所概述之運作1800係貫注於一其中用戶端分割終止且重新啟動或永久終止之情形。
如圖18中所示,該運作在用戶端分割604出於某些原因而終止時開始(步驟1802)。超管理器625(其可偵測一用戶端分割何時終止,例如自一因一不可恢復軟體錯誤而自該分割至該超管理器之恐慌呼叫或因一自硬體對一不可恢復硬體錯誤之機器檢查中斷)可偵測用戶端分割604已終止(步驟1804)。超管理器625可接著確定是否針對重新啟動來設定用戶端分割604,例如如自設定為初始設立分割之一部分之使用者之重新啟動策略所確定(步驟1806)。
若不針對重新啟動來設定用戶端分割604,則超管理器625可例如將一夥伴分割已終止CRQ事件806告示至與失敗用戶端分割604中之一VF 613相關聯之所有CRQ 607及608中(步驟1808)。事實係其係失敗用戶端分割604不準備很快在任一時間重新啟動之一終止方法,且因此IMP 603移除與終止訊息相關聯之CRQ 607(步驟1810)且該運作終止。
若做出將重新啟動用戶端分割604之確定(步驟1806),則超管理器625可例如將一夥伴分割已失敗CRQ事件804告示至與與失敗用戶端分割604中之所有VF 613相關聯之PF 612相關聯之所有CRQ 607中,此告知所牽涉之IMP 603正被重新啟動用戶端分割604且可即刻回來。在此情形下,IMP 603等待例如夥伴分割已連接CRQ事件802,並可在彼點處重新建立與用戶端分割604之通信(步驟1816)。接著,該運作終止。
應瞭解,在系統601之運作期間,IMP 603亦可能失敗。期盼IMP 603將始終設定為若其失敗則重新啟動,此乃因其正充當許多用戶端分割604中之可能許多VF 813之一伺服器。圖19係一概述一根據一個說明性實施例之用於IMP分割終止之例示性運作1900之流程圖。如圖19中所示,運作1900開始於IMP分割終止(步驟1902)。超管理器625可偵測IMP 604分割終止,例如自一因一不可恢復軟體錯誤而自該分割對該超管理器之恐慌呼叫或因一自硬體至一不可恢復硬體錯誤之機器檢查中斷),並起始IMP 604之一重新啟動(步驟1904)。
超管理器625可例如將一夥伴分割已失敗CRQ事件804告示至與正重新啟動之IMP 603中之PF 612相關聯之所有VF 613之用戶端分割之CRQ 608中(步驟1906)。用戶端分割604可注意到CRQ 608之臨時不可用狀態,但若在重新啟動IMP 603時不需要CRQ 608,則其可忽略夥伴分割已失敗CRQ事件訊息804。否則,用戶端分割604如由接收夥伴分割已連接CRQ事件802所指示等待例如在與VF613相關聯之CRQ608中重新建立CRQ連接以與CRQ608一起繼續該運作(步驟1906)。接著,該運作終止。
因此,該等說明性實施例提供允許管理組態軟體、錯誤管理及將在一單獨管理分割中而非在超管理器中實施之南側配接器特定管理之機制。期盼將I/O相依程式碼保持在超管理器外以防止實施對該超管理器產生影響。此外,期盼將I/O相依程式碼放入一單獨管理分割中以最小化該超管理器程式碼因頻率更新(例如,因針對不同配接器唯一南側管理及錯誤恢復軟體來更新程式碼之必要性)而導致之任何不穩定性。因此,該等說明性實施例之機制提供一甚有效之超管理器運作同時最小化不穩定性。
應瞭解,該等說明性實施例可採取一完全硬體實施例、一完全軟體實施例或一含有硬體及軟體元件兩者之實施例之形式。在一個例示性實施例中,該等說明性實施例之機制構建於軟體中,其包含但不限於韌體、駐存軟體、微程式碼等等。
此外,該等說明性實施例可採取可自一電腦可用或電腦可讀媒體存取之電腦程式產品之形式,該電腦程式產品提供可由一電腦或任一指令執行系統使用或結合一電腦或任何指令執行系統使用之程式碼。出於描述目的,一電腦可用或電腦可讀媒體可係可含有、儲存、通信、傳播或傳送該程式以供指令執行系統、設備或裝置使用或結合指令執行系統、設備或裝置使用之任何設備。
該媒體可係一電子、磁性、光學、電磁、紅外線或半導體系統(或設備或裝置)或一傳播媒體。電腦可讀媒體之實例包含:一半導體或固態記憶體、磁帶、一可抽換式電腦磁碟、一隨機存取記憶體(RAM)、一唯讀記憶體(ROM)、一剛性磁碟及一光碟。光碟之當前實例包含唯讀光碟(CD-ROM)、讀/寫光碟(CD-R/W)及DVD。
適宜於儲存及/或執行程式碼之一資料處理系統將包含至少一個直接或經由一系統匯流排間接耦接至記憶體元件之處理器。該等記憶體元件可包含在實際執行程式碼期間所採用之本端記憶體、大容量儲存器及快取記憶體,該等快取記憶體提供對至少某些程式碼之臨時儲存以在執行期間減少必須自大容量儲存器擷取程式碼之次數。
輸入/輸出或I/O裝置(包含但不限於鍵盤、顯示器、指向裝置等等)可直接或經由介入I/O控制器耦合至該系統。亦可將網路配接器耦合至該系統以使得該資料處理系統能夠耦合至其他資料處理系統或經由介入之專用或公用網路而耦合至遠端列印機或儲存裝置。數據機、電纜數據機及以太網卡僅係數個當前可用網路轉接器類型。
已出於圖解說明及描述目的呈現對本發明之描述,且並不意欲窮盡或限於所揭示之本發明形式。熟習此項技術者將顯而易見許多修改及改變。選擇並描述該等實施例以最佳地解釋本發明之原理、實際應用,並使其他熟習此項技術者能夠理解本發明因具有各種適於所涵蓋之特定使用之修改而具有各種實施例。
100...系統
110...主機處理器
120...記憶體
130...根聯合體
140...PCIe端點
150...PCI express至PCI橋接器
160...互連交換器
170...端點
182...端點
184...端點
186...端點
188...端點
210...應用程式
220...系統影像
230...虛擬系統
240...虛擬化層
250...實體系統資源
310...主機處理器組
320...系統影像
330...系統影像
340...虛擬化層
350...PCIe根聯合體
360...PCIe交換器
370...PCIe端點
380...PCIe端點
390...PCIe端點
410...主機處理器組
420...系統影像
430...系統影像
440...PCIe根聯合體
442...根聯合體虛擬化啟用器
450...虛擬化層
460...PCIe交換器
470...PCIeI/O虛擬化端點
480...PCIeI/O虛擬化端點
490...PCIeI/O虛擬化端點
510...PCIe埠
500...PCIeIOV端點
520...內部路由
530...組態管理功能
540...虛擬功能
550...虛擬功能
560...虛擬功能
570...不可分離資源
580...可共享資源池
601...系統
602...遠端管理命令(RMC)介面
603...IOV管理分割
604...用戶端分割
605...裝置驅動器
606...裝置驅動器
607...命令/回應佇列(CRQ)機制
608...命令/回應佇列(CRQ)機制
609...硬體管理控制臺
610...平臺硬體
611...I/O構造
612...實體功能
613...虛擬功能
614...I/O端點
615...I/O端點
616...I/O端點
617...組態空間
619...組態空間
620...介面
621...組態空間
623...分割韌體
624...分割韌體
625...超管理器
626...主機系統
631...作業系統
632...作業系統
640...管理應用程式
642...使用者介面
701...命令/回應佇列結構
702...發送佇列
703...發送佇列
704...接收佇列
705...接收佇列
706...C/R請求
707...中斷
708...用戶端獲取命令/回應介面
709...C/R請求
710...中斷
712...事件
713...事件
715...用戶端獲取命令/回應介面
800...事件
802...「夥伴分割已連接」事件
804...「夥伴分割已失敗」事件
806...「夥伴分割已終止連接」事件
810...用戶端請求
812...任一無效請求
814...組態請求
816...組態寫入請求
818...重設VF請求
820...「查詢VF之錯誤狀態」請求
822...「啟用向VF載入/儲存」請求
824...「獲取I/O構造錯誤資訊」請求
826...「VF運作因動態移除命令已終止」請求
828...VF驅動器對PF驅動器通信請求
900...平臺韌體呼叫
902...第一呼叫
904...第二呼叫
906...讀取/寫入I/O組態空間呼叫
908...重設PF呼叫
910...停用VF呼叫
912...查詢PF及VF錯誤狀態呼叫
914...為載入及恢復運作啟用PF及VF呼叫
916...查詢I/O構造錯誤資訊呼叫
918...查詢中斷源呼叫
920...設立DMA轉譯呼叫
922...新增/自LPAR移除VF使用呼叫
924...新增/自LPAR移除PF使用呼叫
1000...平臺韌體請求/回應
1002...查詢I/O構造組態請求
1004...獲取初始LPARI/O組態請求
1006...通電/斷電IOA請求
1008...PF/VF之動態新增請求
1010...PF之動態新增請求
1012...VF之動態新增/移除請求
1014...VF之動態新增請求
1016...PF/VF之動態移除請求
1018...VF之動態移除請求
1020...PF之動態移除請求
1022...南側管理請求
1024...查詢先前命令完成及狀態請求
在結合隨附圖式閱讀時藉由參考說明性實施例之以上詳細描述將會最佳地理解本發明及其一較佳使用模式及其他目標及優點,該等隨附圖式中:
圖1係一圖解說明一併入一如此技術中一般已知之PCIe構造拓撲之系統之例示圖;
圖2係一圖解說明如此技術中一般已知之系統虛擬化之例示圖;
圖3係一圖解說明一用於使用一虛擬化層來使一PCI根聯合體之I/O虛擬化之第一方法之例示圖;
圖4係一圖解說明一用於使用在本機上所共享之PCI I/O配接器來使一PCI根聯合體之I/O虛擬化之第二方法之例示圖;
圖5係一具有PCIe I/O虛擬化能力之端點之一例示圖;
圖6係一根據一個說明性實施例其中利用具有IOV能力之端點或配接器之系統結構之一例示圖;
圖7係一圖解說明一根據一個說明性實施例之一命令/回應佇列(CRQ)結構之例示性實施方案之細節之例示圖;
圖8A係一圖解說明一根據一個說明性實施例之一組例示性CRQ超管理器事件之定義之例示圖;
圖8B係一圖解說明一根據一個說明性實施例之連同所期盼之對應回應一起之一組CRQ用戶端請求之定義之例示圖;
圖9係一圖解說明一根據一個說明性實施例之對平臺韌體呼叫之一組例示性邏輯分割(LPAR)之定義之例示圖;
圖10A-10B係圖解說明一根據一個說明性實施例之平臺請求及回應之一組例示性硬體管理控制臺(HMC)之定義之例示圖;
圖11A-11B係概述一根據一個說明性實施例之一具有經I/O虛擬化之(IOV)配接器之系統之例示性「起始」運作之流程圖;
圖12A-12B係概述一根據一個說明性實施例之用於向一系統新增一IOV配接器之例示性熱插拔運作之流程圖;
圖13係一概述一根據一個說明性實施例之用於將一IOV配接器自一系統移除之例示性熱插拔運作之流程圖;
圖14係一概述一根據一個說明性實施例之用於向一邏輯分割(LPAR)動態地新增一虛擬功能(VF)之例示性運作之流程圖;
圖15係一概述一根據一個說明性實施例之用於將一VF自一LPAR動態地移除之例示性運作之流程圖;
圖16係一概述一根據一個說明性實施例之用於自一由一VF所招致之錯誤錯誤恢復之例示性運作之流程圖;
圖17係一概述一根據一個說明性實施例之用於改變一網路配接器上之一網路位址之例示性IOA南側管理運作之流程圖;
圖18係一概述一根據一個說明性實施例之用於用戶端分割終止之例示性運作之流程圖;及
圖19係一概述一根據一個說明性實施例之用於IMP分割終止之例示性運作之流程圖。
601...系統
602...遠端管理命令(RMC)介面
603...IOV管理分割
604...用戶端分割
605...裝置驅動器
606...裝置驅動器
607...命令/回應佇列(CRQ)機制
608...命令/回應佇列(CRQ)機制
609...硬體管理控制臺
610...平臺硬體
611...I/O構造
612...實體功能
613...虛擬功能
614...I/O端點
615...I/O端點
616...I/O端點
617...組態空間
619...組態空間
620...介面
621...組態空間
623...分割韌體
624...分割韌體
625...超管理器
626...主機系統
631...作業系統
632...作業系統
640...管理應用程式
642...使用者介面
Claims (20)
- 一種在一資料處理系統中用於管理輸入/輸出(I/O)虛擬化之方法,其包括:在該資料處理系統中創建一個或多個用戶端分割,每一用戶端分割皆具有該資料處理系統之資源之一相關聯部分;在該資料處理系統中創建一I/O虛擬化管理分割(IMP),其中該IMP對該資料處理系統之一I/O端點實施I/O虛擬化管理運作,藉以管理一組實體功能,該組實體功能包含該I/O端點之一或多個實體功能,且其中該一個或多個用戶端分割中之每一用戶端分割不被允許在該組實體功能上實施I/O虛擬化管理運作,但被允許在與該用戶端分割相關聯之該I/O端點中之一或多個虛擬功能上實施I/O虛擬化管理運作;創建至少一個通信結構用於在該IMP與該一個或多個用戶端分割之間通信;及由該IMP使用該至少一個通信結構對該I/O端點實施該I/O虛擬化管理運作。
- 如請求項1之方法,其中創建一個或多個用戶端分割、創建該IMP及創建該至少一個通信結構係由一與該資料處理系統相關聯之超管理器實施。
- 如請求項2之方法,其中該超管理器具有對該I/O端點中用於實體功能及虛擬功能之組態空間之存取,且其中該IMP具有對該I/O端點中僅用於指派給該IMP之實體功能 之組態空間及用於屬於指派給該IMP之實體功能之虛擬功能之組態空間之存取。
- 如請求項3之方法,其中該一個或多個用戶端分割不具有對該I/O端點中指派給該一個或多個用戶端分割之虛擬功能之組態空間之直接存取,而僅存取使用該至少一個通信結構經由該IMP指派給該一個或多個用戶端分割之虛擬功能之組態空間。
- 如請求項4之方法,其中該IMP准許一用戶端分割存取該I/O端點中指派給該用戶端分割之虛擬功能之組態空間,並阻斷該用戶端分割存取該I/O端點中未指派給該用戶端分割之虛擬功能之組態空間。
- 如請求項1之方法,其進一步包括自一指引該等I/O虛擬化管理運作之實施之硬體管理控制臺(HMC)接收一輸入。
- 如請求項6之方法,其中來自該HMC之該輸入係一起始一用於向該資料處理系統新增一新I/O端點之熱插拔運作之命令,且其中實施該等I/O虛擬化管理運作包括:基於該新I/O端點之新增而對該一個或多個用戶端分割分配資源;基於該新I/O端點之該新增而組態該IMP;將該新I/O端點之至少一個虛擬功能動態地新增至該一個或多個用戶端分割中之至少一個用戶端分割;及使用該至少一個通信結構經由該IMP組態該至少一個虛擬功能。
- 如請求項6之方法,其中來自該HMC之該輸入係一起始一用於自該資料處理系統移除一現有I/O端點之熱插拔運作之命令,且其中實施該等I/O虛擬化管理運作包括:識別具有與欲移除之該I/O端點之一虛擬功能相關聯之資源之該一個或多個用戶端分割中至少一個用戶端分割;移除該虛擬功能及與該虛擬功能相關聯之資源以不讓該至少一個用戶端分割使用;移除一實體功能及與欲移除之該I/O端點之該實體功能相關聯之資源以不讓該IMP使用;及使欲移除之該I/O端點斷電。
- 如請求項6之方法,其中來自該HMC之該輸入係一動態地重新組態該資料處理系統之命令,且其中實施該等I/O虛擬化管理運作包括:接收一I/O端點之一虛擬功能之一選擇以新增至該一個或多個用戶端分割中一選定用戶端分割;為該選定用戶端分割中之選定虛擬功能設立資源;為該IMP及該選定用戶端分割中之該選定虛擬功能創建至少一個通信結構;及為該選定用戶端分割中之該選定虛擬功能載入一裝置驅動器。
- 如請求項6之方法,其中來自該HMC之該輸入係一動態地重新組態該資料處理系統之命令,且其中該等I/O虛擬化管理運作包括:接收一I/O端點之一虛擬功能之一選擇以自該一個或多 個用戶端分割中一選定用戶端分割移除;移除該選定虛擬功能以不讓該選定用戶端分割進一步使用;移除用於該選定用戶端分割中之選定虛擬功能之資源;及移除用於該IMP及該選定用戶端分割中之該選定虛擬功能之該至少一個通信結構之一通信結構。
- 如請求項6之方法,其中來自該HMC之該輸入係一改變一與一I/O端點之一選定虛擬功能相關聯之網路位址之命令,且其中實施該等I/O虛擬化管理運作包括:識別一與該選定虛擬功能相關聯之實體功能;向該IMP發送一管理請求,其中該管理請求包含用於改變該選定虛擬功能之該網路位址之位址資訊;及基於該管理請求中之該位址資訊而經由一與該實體功能相關聯之裝置驅動器改變該選定虛擬功能之該網路位址。
- 如請求項1之方法,其中實施該等I/O虛擬化管理運作包括:在該IMP中經由該至少一個通信結構自該一個或多個用戶端分割中之一用戶端分割中一裝置驅動器接收一查詢虛擬功能錯誤狀態命令;自識別一I/O端點之一虛擬功能之一錯誤狀態之該IMP向該裝置驅動器提供錯誤資訊;由該裝置驅動器記錄自該IMP接收之該錯誤資訊; 經由該至少一個通信結構自該裝置驅動器向該IMP發送一重設虛擬功能請求以重設具有該錯誤狀態之該虛擬功能;及在重設之後組態該虛擬功能。
- 如請求項1之方法,其中實施該等I/O虛擬化管理運作包括:偵測一用戶端分割失敗;及向該至少一個通信結構中與該已失敗用戶端分割中之虛擬功能相關聯之一個或多個通信結構告示一事件,其中該事件致使該IMP移除與該已失敗用戶端分割中之該虛擬功能相關聯之該一個或多個通信結構或等待該已失敗用戶端分割重新啟動並接著重新建立一與該已失敗用戶端分割之連接。
- 如請求項1之方法,其中實施該等I/O虛擬化管理運作包括:偵測該IMP之一失敗;向該至少一個通信結構中與用於與一指派給該IMP之實體功能相關聯之虛擬功能之該一個或多個用戶端分割相關聯之一個或多個通信結構告示一事件;恢復該已失敗IMP之運作;及恢復該IMP與對應用戶端分割之間的運作。
- 一種電腦程式產品,其包括一具有一電腦可讀程式儲存於其上之電腦可讀儲存媒體,其中該電腦可讀程式當在一資料處理系統中執行時致使該資料處理系統: 在該資料處理系統中創建一個或多個用戶端分割,每一用戶端分割皆具有該資料處理系統之資源之一相關聯部分;在該資料處理系統中創建一I/O虛擬化管理分割(IMP),其中該IMP對該資料處理系統之一I/O端點實施I/O虛擬化管理運作,藉以管理一組實體功能,該組實體功能包含該I/O端點之一或多個實體功能,且其中該一個或多個用戶端分割中之每一用戶端分割不被允許在該組實體功能上實施I/O虛擬化管理運作,但被允許在與該用戶端分割相關聯之該I/O端點中之一或多個虛擬功能上實施I/O虛擬化管理運作;創建至少一個通信結構用於在該IMP與該一個或多個用戶端分割之間通信;及由該IMP使用該至少一個通信結構對該I/O端點實施該I/O虛擬化管理運作。
- 如請求項15之電腦程式產品,其中該電腦可讀程式致使該資料處理系統創建一個或多個用戶端分割、創建該IMP及使用一與該資料處理系統相關聯之超管理器創建該至少一個通信結構。
- 如請求項16之電腦程式產品,其中該超管理器具有對該I/O端點中實體功能及虛擬功能之組態空間之存取,且其中該IMP具有對該I/O端點中僅用於指派給該IMP之實體功能之組態空間及用於屬於指派給該IMP之實體功能之虛擬功能之組態空間之存取。
- 如請求項17之電腦程式產品,其中該一個或多個用戶端分割不具有對該I/O端點中指派給該一個或多個用戶端分割之虛擬功能之組態空間之直接存取,而僅使用該至少一個通信結構經由該IMP存取指派給該一個或多個用戶端分割之虛擬功能之組態空間。
- 如請求項18之電腦程式產品,其中該IMP准許一用戶端分割存取該I/O端點中指派給該用戶端分割之虛擬功能之組態空間,並阻斷該用戶端分割存取該I/O端點中對未指派給該用戶端分割之虛擬功能之組態空間。
- 一種資料處理系統,其包括:一個或多個用戶端分割,每一用戶端分割皆具有該資料處理系統之資源之一相關聯部分;一I/O虛擬化管理分割(IMP),其與該一個或多個用戶端分割通信;一I/O端點,其與該IMP通信,其中該IMP對該資料處理系統之該I/O端點實施I/O虛擬化管理運作,藉以管理一組實體功能,該組實體功能包含該I/O端點之一或多個實體功能,且其中該一個或多個用戶端分割中之每一用戶端分割不被允許在該組實體功能上實施I/O虛擬化管理運作,但被允許在與該用戶端分割相關聯之該I/O端點中之一或多個虛擬功能上實施I/O虛擬化管理運作;及至少一個通信結構,其係與該IMP及該一個或多個用戶端分割相關聯而提供,其中該IMP使用該至少一個通信結構對該I/O端點實施該I/O虛擬化管理運作。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/940,360 US8141093B2 (en) | 2007-11-15 | 2007-11-15 | Management of an IOV adapter through a virtual intermediary in an IOV management partition |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200925878A TW200925878A (en) | 2009-06-16 |
TWI453597B true TWI453597B (zh) | 2014-09-21 |
Family
ID=40643327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097141044A TWI453597B (zh) | 2007-11-15 | 2008-10-24 | 經由在一輸入輸出虛擬管理分割中之虛擬仲介以管理輸入輸出虛擬配接器的系統及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8141093B2 (zh) |
TW (1) | TWI453597B (zh) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8141092B2 (en) | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition |
US8141094B2 (en) | 2007-12-03 | 2012-03-20 | International Business Machines Corporation | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions |
KR101398935B1 (ko) * | 2008-04-29 | 2014-06-27 | 삼성전자주식회사 | 가상화를 이용한 시스템 복원 방법 및 장치 |
US8359415B2 (en) * | 2008-05-05 | 2013-01-22 | International Business Machines Corporation | Multi-root I/O virtualization using separate management facilities of multiple logical partitions |
US8990468B2 (en) * | 2008-05-28 | 2015-03-24 | Nec Corporation | I/O connection system, method and program |
US9736012B2 (en) * | 2008-11-14 | 2017-08-15 | Dell Products, Lp | System and method for sharing storage resources |
US7913024B2 (en) * | 2008-12-09 | 2011-03-22 | International Business Machines Corporation | Differentiating traffic types in a multi-root PCI express environment |
US8144582B2 (en) * | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
US8537860B2 (en) | 2009-11-03 | 2013-09-17 | International Business Machines Corporation | Apparatus for switching traffic between virtual machines |
US8700752B2 (en) * | 2009-11-03 | 2014-04-15 | International Business Machines Corporation | Optimized efficient LPAR capacity consolidation |
WO2011069784A1 (en) | 2009-12-11 | 2011-06-16 | International Business Machines Corporation | System and method of managing software content in virtual desktop environments |
US8327055B2 (en) | 2010-04-12 | 2012-12-04 | International Business Machines Corporation | Translating a requester identifier to a chip identifier |
US8606984B2 (en) | 2010-04-12 | 2013-12-10 | International Busines Machines Corporation | Hierarchical to physical bus translation |
US8316169B2 (en) | 2010-04-12 | 2012-11-20 | International Business Machines Corporation | Physical to hierarchical bus translation |
US8364879B2 (en) | 2010-04-12 | 2013-01-29 | International Business Machines Corporation | Hierarchical to physical memory mapped input/output translation |
US8429323B2 (en) | 2010-05-05 | 2013-04-23 | International Business Machines Corporation | Memory mapped input/output bus address range translation |
US8700811B2 (en) * | 2010-05-25 | 2014-04-15 | Microsoft Corporation | Virtual machine I/O multipath configuration |
US8650349B2 (en) | 2010-05-26 | 2014-02-11 | International Business Machines Corporation | Memory mapped input/output bus address range translation for virtual bridges |
US8271710B2 (en) | 2010-06-24 | 2012-09-18 | International Business Machines Corporation | Moving ownership of a device between compute elements |
US8949499B2 (en) | 2010-06-24 | 2015-02-03 | International Business Machines Corporation | Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch |
JP5569197B2 (ja) * | 2010-07-06 | 2014-08-13 | 富士通株式会社 | 計算機装置およびリセット制御プログラム |
US8561064B2 (en) * | 2010-10-26 | 2013-10-15 | International Business Machines Corporation | Retaining ownership of a virtual function while an adapter is replaced |
US8561065B2 (en) * | 2010-11-15 | 2013-10-15 | International Business Machines Corporation | Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions |
US8839240B2 (en) | 2010-11-29 | 2014-09-16 | International Business Machines Corporation | Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device |
US8561066B2 (en) * | 2010-12-08 | 2013-10-15 | International Business Machines Corporation | Simplified DMA mappings for self-virtualizing input/output device virtual functions |
US8726276B2 (en) * | 2011-01-26 | 2014-05-13 | International Business Machines Corporation | Resetting a virtual function that is hosted by an input/output adapter |
JP5585844B2 (ja) | 2011-03-25 | 2014-09-10 | 株式会社日立製作所 | 仮想計算機の制御方法及び計算機 |
US9218195B2 (en) | 2011-05-17 | 2015-12-22 | International Business Machines Corporation | Vendor-independent resource configuration interface for self-virtualizing input/output device |
JP5733628B2 (ja) | 2011-09-29 | 2015-06-10 | 株式会社日立製作所 | 仮想計算機を制御する計算機装置及び仮想計算機の制御方法 |
US8645600B2 (en) | 2011-11-10 | 2014-02-04 | International Business Machines Corporation | Configuring expansion component interconnect (‘ECI’) physical functions on an ECI device in a computing system |
US9411654B2 (en) | 2011-12-16 | 2016-08-09 | International Business Machines Corporation | Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation |
US9311127B2 (en) | 2011-12-16 | 2016-04-12 | International Business Machines Corporation | Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies |
US9626207B2 (en) | 2011-12-16 | 2017-04-18 | International Business Machines Corporation | Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies |
JP5748349B2 (ja) * | 2012-03-16 | 2015-07-15 | 株式会社日立製作所 | 仮想計算機の制御方法及び仮想計算機システム |
US9047208B1 (en) * | 2012-12-10 | 2015-06-02 | Qlogic, Corporation | Method and system of configuring virtual function in peripheral devices |
US9489210B2 (en) * | 2013-03-07 | 2016-11-08 | International Business Machines Corporation | Implementing configuration preserving relocation of SRIOV adapter |
US9971397B2 (en) | 2014-10-08 | 2018-05-15 | Apple Inc. | Methods and apparatus for managing power with an inter-processor communication link between independently operable processors |
US10067900B2 (en) | 2015-08-25 | 2018-09-04 | Oracle International Corporation | Virtualized I/O device sharing within a distributed processing node system |
US10085214B2 (en) | 2016-01-27 | 2018-09-25 | Apple Inc. | Apparatus and methods for wake-limiting with an inter-device communication link |
US10042720B2 (en) | 2016-02-22 | 2018-08-07 | International Business Machines Corporation | Live partition mobility with I/O migration |
US10042723B2 (en) | 2016-02-23 | 2018-08-07 | International Business Machines Corporation | Failover of a virtual function exposed by an SR-IOV adapter |
US10002018B2 (en) | 2016-02-23 | 2018-06-19 | International Business Machines Corporation | Migrating single root I/O virtualization adapter configurations in a computing system |
US10191852B2 (en) | 2016-02-29 | 2019-01-29 | Apple Inc. | Methods and apparatus for locking at least a portion of a shared memory resource |
US10025584B2 (en) | 2016-02-29 | 2018-07-17 | International Business Machines Corporation | Firmware management of SR-IOV adapters |
US10198364B2 (en) | 2016-03-31 | 2019-02-05 | Apple Inc. | Memory access protection apparatus and methods for memory mapped access between independently operable processors |
US9715469B1 (en) | 2016-10-21 | 2017-07-25 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9785451B1 (en) * | 2016-10-21 | 2017-10-10 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US9720863B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9720862B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US10551902B2 (en) * | 2016-11-10 | 2020-02-04 | Apple Inc. | Methods and apparatus for providing access to peripheral sub-system registers |
US10545771B2 (en) * | 2016-12-02 | 2020-01-28 | International Business Machines Corporation | Concurrent maintenance of an input/output adapter backing a virtual network interface controller |
US10346226B2 (en) | 2017-08-07 | 2019-07-09 | Time Warner Cable Enterprises Llc | Methods and apparatus for transmitting time sensitive data over a tunneled bus interface |
US10331612B1 (en) | 2018-01-09 | 2019-06-25 | Apple Inc. | Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors |
US10430352B1 (en) | 2018-05-18 | 2019-10-01 | Apple Inc. | Methods and apparatus for reduced overhead data transfer with a shared ring buffer |
US10585699B2 (en) | 2018-07-30 | 2020-03-10 | Apple Inc. | Methods and apparatus for verifying completion of groups of data transactions between processors |
US12032980B2 (en) | 2020-06-03 | 2024-07-09 | Baidu Usa Llc | Data protection with dynamic resource isolation for data processing accelerators |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003063A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Procedure for dynamic reconfiguration of resources of logical partitions |
US20040158834A1 (en) * | 2003-02-06 | 2004-08-12 | International Business Machines Corporation | Apparatus and method for dynamically allocating resources of a dead logical partition |
US20050034027A1 (en) * | 2003-08-07 | 2005-02-10 | International Business Machines Corporation | Services heuristics for computer adapter placement in logical partitioning operations |
US20050071446A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Auto-configuration of an internal vlan network interface |
US20050071514A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Autonomic configuration of interconnection cable speeds |
US20050240932A1 (en) * | 2004-04-22 | 2005-10-27 | International Business Machines Corporation | Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions |
TW200602865A (en) * | 2004-03-31 | 2006-01-16 | Ibm | Data processing system and computer program product for support of system memory addrsses with holes |
US20060250945A1 (en) * | 2005-04-07 | 2006-11-09 | International Business Machines Corporation | Method and apparatus for automatically activating standby shared Ethernet adapter in a Virtual I/O server of a logically-partitioned data processing system |
US20060281630A1 (en) * | 2003-05-15 | 2006-12-14 | International Business Machines Corporation | Autonomic recovery from hardware errors in an input/output fabric |
US20070067366A1 (en) * | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6247080B1 (en) | 1997-05-13 | 2001-06-12 | Micron Electronics, Inc. | Method for the hot add of devices |
US5941972A (en) | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US20030005068A1 (en) | 2000-12-28 | 2003-01-02 | Nickel Ronald H. | System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same |
US6842857B2 (en) | 2001-04-12 | 2005-01-11 | International Business Machines Corporation | Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine |
US6880002B2 (en) | 2001-09-05 | 2005-04-12 | Surgient, Inc. | Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources |
US7836211B2 (en) | 2003-01-21 | 2010-11-16 | Emulex Design And Manufacturing Corporation | Shared input/output load-store architecture |
US7073002B2 (en) | 2003-03-13 | 2006-07-04 | International Business Machines Corporation | Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system |
US8301809B2 (en) | 2003-07-02 | 2012-10-30 | Infortrend Technology, Inc. | Storage virtualization computer system and external controller thereof |
US7171417B2 (en) * | 2003-09-30 | 2007-01-30 | International Business Machines Corporation | Method and apparatus for improving performance and scalability of an object manager |
US7111102B2 (en) | 2003-10-06 | 2006-09-19 | Cisco Technology, Inc. | Port adapter for high-bandwidth bus |
US20070061441A1 (en) | 2003-10-08 | 2007-03-15 | Landis John A | Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions |
US7234037B2 (en) | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
US7660322B2 (en) | 2003-12-11 | 2010-02-09 | International Business Machines Corporation | Shared adapter |
US7487258B2 (en) | 2004-01-30 | 2009-02-03 | International Business Machines Corporation | Arbitration in a computing utility system |
US8782024B2 (en) | 2004-02-12 | 2014-07-15 | International Business Machines Corporation | Managing the sharing of logical resources among separate partitions of a logically partitioned computer system |
US20050246453A1 (en) | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Providing direct access to hardware from a virtual environment |
US7240177B2 (en) | 2004-05-27 | 2007-07-03 | International Business Machines Corporation | System and method for improving performance of dynamic memory removals by reducing file cache size |
US7249208B2 (en) | 2004-05-27 | 2007-07-24 | International Business Machines Corporation | System and method for extending the cross-memory descriptor to describe another partition's memory |
IL163314A (en) | 2004-08-02 | 2010-06-16 | Lsi Technologies Israel Ltd | Booting from a storage area network |
JP2006113767A (ja) | 2004-10-14 | 2006-04-27 | Sony Corp | 情報処理システム、および、情報処理方法、並びに、プログラム |
US20060123111A1 (en) * | 2004-12-02 | 2006-06-08 | Frank Dea | Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems |
JP4733399B2 (ja) | 2005-01-28 | 2011-07-27 | 株式会社日立製作所 | 計算機システム、計算機、ストレージ装置及び管理端末 |
US7694047B1 (en) | 2005-02-17 | 2010-04-06 | Qlogic, Corporation | Method and system for sharing input/output devices |
US20060195663A1 (en) | 2005-02-25 | 2006-08-31 | International Business Machines Corporation | Virtualized I/O adapter for a multi-processor data processing system |
US7543305B2 (en) * | 2005-03-24 | 2009-06-02 | International Business Machines Corporation | Selective event registration |
US20060236063A1 (en) | 2005-03-30 | 2006-10-19 | Neteffect, Inc. | RDMA enabled I/O adapter performing efficient memory management |
US7415034B2 (en) | 2005-04-04 | 2008-08-19 | Sun Microsystems, Inc. | Virtualized partitionable shared network interface |
US8223745B2 (en) | 2005-04-22 | 2012-07-17 | Oracle America, Inc. | Adding packet routing information without ECRC recalculation |
US7620741B2 (en) | 2005-04-22 | 2009-11-17 | Sun Microsystems, Inc. | Proxy-based device sharing |
US7949766B2 (en) | 2005-06-22 | 2011-05-24 | Cisco Technology, Inc. | Offload stack for network, block and file input and output |
US8521912B2 (en) | 2006-01-12 | 2013-08-27 | Broadcom Corporation | Method and system for direct device access |
US8230153B2 (en) | 2006-01-20 | 2012-07-24 | Broadcom Corporation | Method and system for HBA assisted storage virtualization |
US20070192518A1 (en) | 2006-02-14 | 2007-08-16 | Aarohi Communications, Inc., A California Corporation | Apparatus for performing I/O sharing & virtualization |
US7613749B2 (en) | 2006-04-12 | 2009-11-03 | International Business Machines Corporation | System and method for application fault tolerance and recovery using topologically remotely located computing devices |
US7613847B2 (en) | 2006-05-16 | 2009-11-03 | Hewlett-Packard Development Company, L.P. | Partially virtualizing an I/O device for use by virtual machines |
JP5068056B2 (ja) | 2006-10-11 | 2012-11-07 | 株式会社日立製作所 | 障害回復方法、計算機システム及び管理サーバ |
US9098347B2 (en) | 2006-12-21 | 2015-08-04 | Vmware | Implementation of virtual machine operations using storage system functionality |
US7734859B2 (en) | 2007-04-20 | 2010-06-08 | Nuon, Inc | Virtualization of a host computer's native I/O system architecture via the internet and LANs |
US8464260B2 (en) | 2007-10-31 | 2013-06-11 | Hewlett-Packard Development Company, L.P. | Configuration and association of a supervisory virtual device function to a privileged entity |
US7945436B2 (en) | 2007-11-06 | 2011-05-17 | Vmware, Inc. | Pass-through and emulation in a virtual machine environment |
US8141092B2 (en) | 2007-11-15 | 2012-03-20 | International Business Machines Corporation | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition |
US8141094B2 (en) | 2007-12-03 | 2012-03-20 | International Business Machines Corporation | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions |
US8359415B2 (en) | 2008-05-05 | 2013-01-22 | International Business Machines Corporation | Multi-root I/O virtualization using separate management facilities of multiple logical partitions |
US8144582B2 (en) | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
-
2007
- 2007-11-15 US US11/940,360 patent/US8141093B2/en not_active Expired - Fee Related
-
2008
- 2008-10-24 TW TW097141044A patent/TWI453597B/zh not_active IP Right Cessation
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003063A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Procedure for dynamic reconfiguration of resources of logical partitions |
US20040158834A1 (en) * | 2003-02-06 | 2004-08-12 | International Business Machines Corporation | Apparatus and method for dynamically allocating resources of a dead logical partition |
US20060281630A1 (en) * | 2003-05-15 | 2006-12-14 | International Business Machines Corporation | Autonomic recovery from hardware errors in an input/output fabric |
US20050034027A1 (en) * | 2003-08-07 | 2005-02-10 | International Business Machines Corporation | Services heuristics for computer adapter placement in logical partitioning operations |
US20050071446A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Auto-configuration of an internal vlan network interface |
US20050071514A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Autonomic configuration of interconnection cable speeds |
US20070067366A1 (en) * | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
TW200602865A (en) * | 2004-03-31 | 2006-01-16 | Ibm | Data processing system and computer program product for support of system memory addrsses with holes |
US20050240932A1 (en) * | 2004-04-22 | 2005-10-27 | International Business Machines Corporation | Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions |
US20060250945A1 (en) * | 2005-04-07 | 2006-11-09 | International Business Machines Corporation | Method and apparatus for automatically activating standby shared Ethernet adapter in a Virtual I/O server of a logically-partitioned data processing system |
Also Published As
Publication number | Publication date |
---|---|
TW200925878A (en) | 2009-06-16 |
US8141093B2 (en) | 2012-03-20 |
US20090133016A1 (en) | 2009-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI453597B (zh) | 經由在一輸入輸出虛擬管理分割中之虛擬仲介以管理輸入輸出虛擬配接器的系統及方法 | |
US8141094B2 (en) | Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions | |
JP5305848B2 (ja) | データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム | |
US11061712B2 (en) | Hot-plugging of virtual functions in a virtualized environment | |
US8359415B2 (en) | Multi-root I/O virtualization using separate management facilities of multiple logical partitions | |
TWI439867B (zh) | 動態實體及虛擬多重路徑輸入/輸出 | |
US8645755B2 (en) | Enhanced error handling for self-virtualizing input/output device in logically-partitioned data processing system | |
US10671423B2 (en) | Hot-plug hardware and software implementation | |
JP5222651B2 (ja) | 仮想計算機システムおよび仮想計算機システムの制御方法 | |
US7543084B2 (en) | Method for destroying virtual resources in a logically partitioned data processing system | |
JP5536878B2 (ja) | ファイバ・チャネル・ファブリックへのアクセスの変更 | |
US20170102952A1 (en) | Accessing data stored in a remote target using a baseboard management controler (bmc) independently of the status of the remote target's operating system (os) | |
US20120151265A1 (en) | Supporting cluster level system dumps in a cluster environment | |
US10169178B2 (en) | Implementing shared adapter configuration updates concurrent with maintenance actions in a virtualized system | |
JP2006209487A (ja) | 計算機システム、計算機、ストレージ装置及び管理端末 | |
US11474880B2 (en) | Network state synchronization for workload migrations in edge devices | |
US20100100892A1 (en) | Managing hosted virtualized operating system environments | |
US10620856B2 (en) | Input/output (I/O) fencing with persistent reservation information in shared virtual storage environments | |
CN117453242A (zh) | 一种虚拟机的应用更新方法、计算设备及计算系统 | |
US10474394B2 (en) | Persistent reservation emulation in shared virtual storage environments | |
EP4195021A1 (en) | Online migration method and system for bare metal server | |
US10223402B1 (en) | Multi-site block level write consistency | |
US20220237051A1 (en) | Method and system for providing composable infrastructure capabilities | |
US20230125909A1 (en) | Managing applications in a cluster | |
CN118567889A (zh) | 一种虚拟机的故障修复方法、计算设备及计算系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |