JP7359858B2 - 仮想化された環境におけるパススルーデバイスのための直接メモリアクセストラッキング - Google Patents
仮想化された環境におけるパススルーデバイスのための直接メモリアクセストラッキング Download PDFInfo
- Publication number
- JP7359858B2 JP7359858B2 JP2021550264A JP2021550264A JP7359858B2 JP 7359858 B2 JP7359858 B2 JP 7359858B2 JP 2021550264 A JP2021550264 A JP 2021550264A JP 2021550264 A JP2021550264 A JP 2021550264A JP 7359858 B2 JP7359858 B2 JP 7359858B2
- Authority
- JP
- Japan
- Prior art keywords
- guest
- computing system
- page
- hypervisor
- pinned
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
例1は、性能向上計算システムであって、デバイスであって、前記デバイスが仮想マシンにパススルーされ、直接制御される、デバイスと、プロセッサと、フロントエンドドライバ命令のセットを含むシステムメモリであって、前記フロントエンドドライバ命令は、前記プロセッサによって実行されるときに、前記計算システムに、前記デバイスのゲストドライバからのマップ要求をハイパーバイザに通知することであって、前記マップ要求は、前記デバイスが仮想化された実行環境においてゲストメモリページにアクセスしようとする試みに関連付けられる、通知することと、前記ゲストメモリページがピン留めされているかどうかを判定することと、前記ゲストメモリページがピン留めされていない場合、前記ハイパーバイザにマップハイパーコールを送信することと、を行わせる、システムメモリと、を含む、計算システムを含む。
例2は、前記ハイパーバイザおよび前記フロントエンドドライバ命令にアクセス可能な共有メモリをさらに含み、前記マップ要求を前記ハイパーバイザに通知するために、前記フロントエンドドライバ命令は、実行されるときに、前記計算システムに、ダイレクトメモリアクセス(DMA)ビットマップ内のゲストページフレーム番号に対応するビットを設定させ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記DMAビットマップは、前記共有メモリ内に位置する、例1に記載の計算システムを含む。
例3は、前記フロントエンドドライバ命令は、実行されるときに、前記計算システムに、前記ゲストドライバからのアンマップ要求に応答して前記ビットをクリアさせ、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、例2に記載の計算システムを含む。
例4は、前記ハイパーバイザおよび前記フロントエンドドライバ命令にアクセス可能な共有メモリをさらに含み、前記ゲストメモリページがピン留めされているかどうかを判定するために、前記フロントエンドドライバ命令は、実行されるときに、前記計算システムに、ピン留めされたビットマップ内のゲストページフレーム番号に対応するビットがセットされているかどうかを判定させ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは前記共有メモリ内に位置する、例1に記載の計算システムを含む。
例5は、前記フロントエンドドライバ命令は、実行されるときに、計算システムに、前記ゲストメモリページがピン留めされている場合、前記マップハイパーコールをバイパスすることと、 全てのアンマップハイパーコールをバイパスするすることと、を行わせる、例1~4のいずれか1つに記載の計算システムを含む。
例6は、フロントエンドドライバ命令のセットを含む少なくとも1つのコンピュータ可読記憶媒体であって、前記フロントエンドドライバ命令は、計算システムによって実行されるときに、前記計算システムに、デバイスのゲストドライバからのマップ要求をハイパーバイザに通知することであって、前記デバイスは、仮想マシンにパススルーされ、直接制御され、前記マップ要求は、前記デバイスが仮想化された実行環境においてゲストメモリページにアクセスしようとする試みに関連付けられる、通知することと、前記ゲストメモリページがピン留めされているかどうかを判定することと、前記ゲストメモリページがピン留めされていない場合、前記ハイパーバイザにマップハイパーコールを送信することと、を行わせる、少なくとも1つのコンピュータ可読記憶媒体を含む。
例7は、前記マップ要求を前記ハイパーバイザに通知するために、前記フロントエンドドライバ命令は、実行されるときに、前記計算システムに、ダイレクトメモリアクセス(DMA)ビットマップ内のゲストページフレーム番号に対応するビットを設定させ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記DMAビットマップは、前記ハイパーバイザ及び前記フロントエンドドライバ命令にアクセス可能な共有メモリ内に位置する、例6に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例8は、前記フロントエンドドライバ命令は、実行されるときに、前記計算システムに、前記ゲストドライバからのアンマップ要求に応答して前記ビットをクリアさせ、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、例7に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例9は、前記ゲストメモリページがピン留めされているかどうかを判定するために、前記フロントエンドドライバ命令は、実行されるときに、前記計算システムに、ピン留めされたビットマップ内のゲストページフレーム番号に対応するビットがセットされているかどうかを判定させ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、前記ハイパーバイザおよび前記フロントエンドドライバ命令にアクセス可能な共有メモリ内に位置する、例6に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例10は、前記フロントエンドドライバ命令は、実行されるときに、計算システムに、前記ゲストメモリページがピン留めされている場合、前記マップハイパーコールをバイパスすることと、全てのアンマップハイパーコールをバイパスすることと、を行わせる、例6~9のいずれか1つに記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例11は、性能向上計算システムであって、デバイスであって、前記デバイスが仮想マシンにパススルーされ、直接制御される、デバイスと、プロセッサと、ハイパーバイザ命令のセットを含むシステムメモリであって、前記ハイパーバイザ命令は、前記プロセッサによって実行されるときに、前記計算システムに、ゲストメモリページが仮想化された実行環境でピン留めされていることを判定することと、ダイレクトメモリアクセス(DMA)ビットマップに基づいて、デバイスのゲストドライバからのアンマップ要求が発行されたことを判定することであって、前記デバイスは、仮想マシンにパススルーされ、直接制御されるものであり、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、判定することと、前記ゲストメモリページをピン留め解除することと、を行わせる、計算デバイスを含む。
例12は、前記フロントエンドドライバ及び前記ハイパーバイザ命令にアクセス可能な共有メモリをさらに含み、前記アンマップ要求が発行されたことを判定するために、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、前記DMAビットマップ内のゲストページフレーム番号に対応するビットがセットされていないことを判定させ、前記ゲストページフレーム番号が前記ゲストメモリページに関連付けられ、前記DMAビットマップは、前記共有メモリ内に位置する、例11に記載の計算システムを含む。
例13は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、ピン留めされたビットマップ内のゲストページフレーム番号に対応するビットをクリアさせ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、前記共有メモリ内に位置する、例11に記載の計算システムを含む。
例14は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、レース条件が検出された場合、前記ビットをリセットさせ、前記レース条件が検出されない場合、前記ゲストメモリページはピン留め解除される、例13に記載の計算システムを含む。
例15は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、前記フロントエンドドライバからマップハイパーコールを受信することと、前記マップハイパーコールに応答して、前記ゲストメモリページをピン留めすることと、前記マップハイパーコールに応答して、ピン留めされたビットマップ内の前記ゲストページフレーム番号に対応するビットをセットすることであって、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、前記共有メモリ内に位置する、セットすることと、を行わせる、例11に記載の計算システムを含む。
例16は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、前記仮想マシンの作成時にピン留め操作をバイパスさせる、例15に記載の計算システムを含む。
例17は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、オーバーコミットポリシーに従って、前記ピン留め解除されたゲストメモリページをリクラメーションすることと、前記ゲストメモリページが汚れていることをライブマイグレーションマネージャに通知することと、を行わせる、例11~16のいずれか1つに記載のコンピューティングシステムを含む。
例18は、ハイパーバイザ命令のセットを含む少なくとも1つのコンピュータ可読記憶媒体であって、前記フロントエンドドライバ命令は、計算システムによって実行されるときに、前記計算システムに、ゲストメモリページが仮想化された実行環境でピン留めされていることを判定することと、ダイレクトメモリアクセス(DMA)ビットマップに基づいて、デバイスのゲストドライバからのアンマップ要求が発行されたことを判定することであって、前記デバイスは、仮想マシンにパススルーされ、直接制御されるものであり、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、判定することと、前記ゲストメモリページをピン留め解除することと、を行わせる、計算デバイスを含む。
例19は、前記アンマップ要求が発行されたことを判定するために、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、前記DMAビットマップ内のゲストページフレーム番号に対応するビットがセットされていないことを判定させ、前記ゲストページフレーム番号が前記ゲストメモリページに関連付けられ、前記DMAビットマップは、前記フロントエンドドライバ及び前記ハイパーバイザ命令にアクセス可能な共有メモリ内に位置する、例18に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例20は、前記ハイパーバイザ命令は、実行されると、ピン留めされたビットマップ内のゲストページフレーム番号に対応するビットをクリアさせ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、前記フロントエンドドライバがアクセス可能な共有メモリ内に配置される、例18に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例21は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、レース条件が検出された場合、前記ビットをリセットさせ、前記レース条件が検出されない場合、前記ゲストメモリページはピン留め解除される、例20に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例22は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、前記フロントエンドドライバからマップハイパーコールを受信することと、前記マップハイパーコールに応答して、前記ゲストメモリページをピン留めすることと、前記マップハイパーコールに応答して、ピン留めされたビットマップ内の前記ゲストページフレーム番号に対応するビットをセットすることであって、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、前記フロントエンドドライバにアクセス可能な共有メモリ内に位置する、セットすることと、を行わせる、例18に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例23は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、前記仮想マシンの作成時にピン留め操作をバイパスさせる、例22に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例24は、前記ハイパーバイザ命令は、実行されるときに、前記計算システムに、オーバーコミットポリシーに従って、前記ピン留め解除されたゲストメモリページをリクラメーションすることと、前記ゲストメモリページが汚れていることをライブマイグレーションマネージャに通知することと、を行わせる、例18~22のいずれか1つに記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
例25は、フロントエンドドライバを操作する方法であって、デバイスのゲストドライバからのマップ要求をハイパーバイザに通知することであって、前記デバイスは、仮想マシンにパススルーされ、直接制御され、前記マップ要求は、前記デバイスが仮想化された実行環境においてゲストメモリページにアクセスしようとする試みに関連付けられる、通知することと、前記ゲストメモリページがピン留めされているかどうかを判定することと、前記ゲストメモリページがピン留めされていない場合、前記ハイパーバイザにマップハイパーコールを送信することと、を含む方法を含む。
例26は、ハイパーバイザを操作する方法であって、ゲストメモリページが仮想化された実行環境でピン留めされていることを判定することと、ダイレクトメモリアクセス(DMA)ビットマップに基づいて、デバイスのゲストドライバからのアンマップ要求が発行されたことを判定することであって、前記デバイスは、仮想マシンにパススルーされ、直接制御されるものであり、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、判定することと、前記ゲストメモリページをピン留め解除することと、を含む方法を含む。
例27は、例25~26のいずれか1つの方法を実行するための手段を含む。
Claims (25)
- 性能向上計算システムであって、
デバイスであって、前記デバイスが仮想マシンにパススルーされ、直接制御される、デバイスと、
プロセッサと、
フロントエンドドライバ命令のセットを含むシステムメモリであって、前記フロントエンドドライバ命令は、前記プロセッサによって実行されるときに、前記性能向上計算システムに、
前記デバイスのゲストドライバからのマップ要求をハイパーバイザに通知することであって、前記マップ要求は、前記デバイスが仮想化された実行環境においてゲストメモリページにアクセスしようとする試みに関連付けられる、通知することと、
前記ゲストメモリページが前記仮想化された実行環境でピン留めされているかどうかを判定することと、
前記ゲストメモリページが前記仮想化された実行環境でピン留めされていない場合、前記ハイパーバイザにマップハイパーコールを送信して、前記ゲストメモリページを前記仮想化された実行環境でピン留めさせることと、を行わせる、システムメモリと、を含む、性能向上計算システム。 - 前記ハイパーバイザおよび前記フロントエンドドライバ命令にアクセス可能な共有メモリをさらに含み、前記マップ要求を前記ハイパーバイザに通知するために、前記フロントエンドドライバ命令は、実行されるときに、前記性能向上計算システムに、ダイレクトメモリアクセス(DMA)ビットマップ内のゲストページフレーム番号に対応するビットを設定させ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記DMAビットマップは、前記共有メモリ内に位置する、請求項1に記載の性能向上計算システム。
- 前記フロントエンドドライバ命令は、実行されるときに、前記性能向上計算システムに、前記ゲストドライバからのアンマップ要求に応答して前記ビットをクリアさせ、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、請求項2に記載の性能向上計算システム。
- 前記ハイパーバイザおよび前記フロントエンドドライバ命令にアクセス可能な共有メモリをさらに含み、前記ゲストメモリページがピン留めされているかどうかを判定するために、前記フロントエンドドライバ命令は、実行されるときに、前記性能向上計算システムに、ピン留めされたビットマップ内のゲストページフレーム番号に対応するビットがセットされているかどうかを判定させ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは前記共有メモリ内に位置する、請求項1~3のいずれか一項に記載の性能向上計算システム。
- 前記フロントエンドドライバ命令は、実行されるときに、前記性能向上計算システムに、
前記ゲストメモリページがピン留めされている場合、前記マップハイパーコールをバイパスすることと、
全てのアンマップハイパーコールをバイパスするすることと、を行わせる、請求項1~4のいずれか一項に記載の性能向上計算システム。 - フロントエンドドライバ命令のセットを含む少なくとも1つのコンピュータ可読記憶媒体であって、前記フロントエンドドライバ命令は、性能向上計算システムによって実行されるときに、前記性能向上計算システムに、
デバイスのゲストドライバからのマップ要求をハイパーバイザに通知することであって、前記デバイスは、仮想マシンにパススルーされ、直接制御され、前記マップ要求は、前記デバイスが仮想化された実行環境においてゲストメモリページにアクセスしようとする試みに関連付けられる、通知することと、
前記ゲストメモリページが前記仮想化された実行環境でピン留めされているかどうかを判定することと、
前記ゲストメモリページが前記仮想化された実行環境でピン留めされていない場合、前記ハイパーバイザにマップハイパーコールを送信して、前記ゲストメモリページを前記仮想化された実行環境でピン留めさせることと、を行わせる、少なくとも1つのコンピュータ可読記憶媒体。 - 前記マップ要求を前記ハイパーバイザに通知するために、前記フロントエンドドライバ命令は、実行されるときに、前記性能向上計算システムに、ダイレクトメモリアクセス(DMA)ビットマップ内のゲストページフレーム番号に対応するビットを設定させ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記DMAビットマップは、前記ハイパーバイザ及び前記フロントエンドドライバ命令にアクセス可能な共有メモリ内に位置する、請求項6に記載の少なくとも1つのコンピュータ可読記憶媒体。
- 前記フロントエンドドライバ命令は、実行されるときに、前記性能向上計算システムに、前記ゲストドライバからのアンマップ要求に応答して前記ビットをクリアさせ、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、請求項7に記載の少なくとも1つのコンピュータ可読記憶媒体。
- 前記ゲストメモリページがピン留めされているかどうかを判定するために、前記フロントエンドドライバ命令は、実行されるときに、前記性能向上計算システムに、ピン留めされたビットマップ内のゲストページフレーム番号に対応するビットがセットされているかどうかを判定させ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、前記ハイパーバイザおよび前記フロントエンドドライバ命令にアクセス可能な共有メモリ内に位置する、請求項6~8のいずれか一項に記載の少なくとも1つのコンピュータ可読記憶媒体。
- 前記フロントエンドドライバ命令は、実行されるときに、前記性能向上計算システムに、
前記ゲストメモリページがピン留めされている場合、前記マップハイパーコールをバイパスすることと、
全てのアンマップハイパーコールをバイパスすることと、を行わせる、請求項6~9のいずれか一項に記載の少なくとも1つのコンピュータ可読記憶媒体。 - 性能向上計算システムであって、
デバイスであって、前記デバイスが仮想マシンにパススルーされ、直接制御される、デバイスと、
プロセッサと、
ハイパーバイザ命令のセットを含むシステムメモリであって、前記ハイパーバイザ命令は、前記プロセッサによって実行されるときに、前記性能向上計算システムに、
ゲストメモリページが仮想化された実行環境でピン留めされていることを判定することと、
前記ゲストメモリページがピン留めされていた場合に、ダイレクトメモリアクセス(DMA)ビットマップに基づいて、デバイスのゲストドライバからのアンマップ要求が発行されたことを判定することであって、前記デバイスは、仮想マシンにパススルーされ、直接制御されるものであり、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、判定することと、
前記アンマップ要求が発行されていた場合、前記ゲストメモリページをピン留め解除することと、を行わせる、性能向上計算システム。 - フロントエンドドライバ及び前記ハイパーバイザ命令にアクセス可能な共有メモリをさらに含み、前記アンマップ要求が発行されたことを判定するために、前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、前記DMAビットマップ内のゲストページフレーム番号に対応するビットがセットされていないことを判定させ、前記ゲストページフレーム番号が前記ゲストメモリページに関連付けられ、前記DMAビットマップは、前記共有メモリ内に位置する、請求項11に記載の性能向上計算システム。
- 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、ピン留めされたビットマップ内のゲストページフレーム番号に対応するビットをクリアさせ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、共有メモリ内に位置する、請求項11または12に記載の性能向上計算システム。
- 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、レース条件が検出された場合、前記ビットをリセットさせ、前記レース条件が検出されない場合、前記ゲストメモリページはピン留め解除される、請求項13に記載の性能向上計算システム。
- 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、
フロントエンドドライバからマップハイパーコールを受信することと、
前記マップハイパーコールに応答して、前記ゲストメモリページをピン留めすることと、
前記マップハイパーコールに応答して、ピン留めされたビットマップ内の前記ゲストページフレーム番号に対応するビットをセットすることであって、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、前記共有メモリ内に位置する、セットすることと、を行わせる、請求項13または14に記載の性能向上計算システム。 - 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、前記仮想マシンの作成時にピン留め操作をバイパスさせる、請求項11~15のいずれか一項に記載の性能向上計算システム。
- 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、
オーバーコミットポリシーに従って、前記ピン留め解除されたゲストメモリページをリクラメーションすることと、
前記ゲストメモリページが汚れていることをライブマイグレーションマネージャに通知することと、を行わせる、請求項11~16のいずれか一項に記載の性能向上計算システム。 - ハイパーバイザ命令のセットを含む少なくとも1つのコンピュータ可読記憶媒体であって、前記ハイパーバイザ命令は、性能向上計算システムによって実行されるときに、前記性能向上計算システムに、
ゲストメモリページが仮想化された実行環境でピン留めされていることを判定することと、
前記ゲストメモリページがピン留めされていた場合に、ダイレクトメモリアクセス(DMA)ビットマップに基づいて、デバイスのゲストドライバからのアンマップ要求が発行されたことを判定することであって、前記デバイスは、仮想マシンにパススルーされ、直接制御されるものであり、前記アンマップ要求は、前記デバイスが前記ゲストメモリページへのアクセスを中止する試みに関連付けられる、判定することと、
前記アンマップ要求が発行されていた場合、前記ゲストメモリページをピン留め解除することと、を行わせる、少なくとも1つのコンピュータ可読記憶媒体。 - 前記アンマップ要求が発行されたことを判定するために、前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、前記DMAビットマップ内のゲストページフレーム番号に対応するビットがセットされていないことを判定させ、前記ゲストページフレーム番号が前記ゲストメモリページに関連付けられ、前記DMAビットマップは、フロントエンドドライバ及び前記ハイパーバイザ命令にアクセス可能な共有メモリ内に位置する、請求項18に記載の少なくとも1つのコンピュータ可読記憶媒体。
- 前記ハイパーバイザ命令は、実行されると、ピン留めされたビットマップ内のゲストページフレーム番号に対応するビットをクリアさせ、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、フロントエンドドライバがアクセス可能な共有メモリ内に配置される、請求項18または19に記載の少なくとも1つのコンピュータ可読記憶媒体。
- 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、レース条件が検出された場合、前記ビットをリセットさせ、前記レース条件が検出されない場合、前記ゲストメモリページはピン留め解除される、請求項20に記載の少なくとも1つのコンピュータ可読記憶媒体。
- 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、
フロントエンドドライバからマップハイパーコールを受信することと、
前記マップハイパーコールに応答して、前記ゲストメモリページをピン留めすることと、
前記マップハイパーコールに応答して、ピン留めされたビットマップ内の前記ゲストページフレーム番号に対応するビットをセットすることであって、前記ゲストページフレーム番号は、前記ゲストメモリページに関連付けられ、前記ピン留めされたビットマップは、前記フロントエンドドライバにアクセス可能な共有メモリ内に位置する、セットすることと、を行わせる、請求項20または21に記載の少なくとも1つのコンピュータ可読記憶媒体。 - 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、前記仮想マシンの作成時にピン留め操作をバイパスさせる、請求項18~22のいずれか一項に記載の少なくとも1つのコンピュータ可読記憶媒体。
- 前記ハイパーバイザ命令は、実行されるときに、前記性能向上計算システムに、
オーバーコミットポリシーに従って、前記ピン留め解除されたゲストメモリページをリクラメーションすることと、
前記ゲストメモリページが汚れていることをライブマイグレーションマネージャに通知することと、を行わせる、請求項18~23のいずれか一項に記載の少なくとも1つのコンピュータ可読記憶媒体。 - 請求項18~24のいずれか一項に記載の前記ハイパーバイザ命令によって規定される命令を実行するための手段を含む装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/080020 WO2020191697A1 (en) | 2019-03-28 | 2019-03-28 | Direct memory access tracking for pass-through devices in virtualized environments |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022534637A JP2022534637A (ja) | 2022-08-03 |
JP7359858B2 true JP7359858B2 (ja) | 2023-10-11 |
Family
ID=72610861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021550264A Active JP7359858B2 (ja) | 2019-03-28 | 2019-03-28 | 仮想化された環境におけるパススルーデバイスのための直接メモリアクセストラッキング |
Country Status (6)
Country | Link |
---|---|
US (1) | US11960422B2 (ja) |
EP (1) | EP3948531A4 (ja) |
JP (1) | JP7359858B2 (ja) |
KR (1) | KR20210138007A (ja) |
CN (1) | CN113614693A (ja) |
WO (1) | WO2020191697A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100180276A1 (en) | 2009-01-15 | 2010-07-15 | Jiva Azeem S | Application partitioning across a virtualized environment |
US20170147511A1 (en) | 2015-11-25 | 2017-05-25 | Red Hat Israel, Ltd. | Virtual machine memory lock-down |
US20170153908A1 (en) | 2015-12-01 | 2017-06-01 | Electronics And Telecommunications Research Institute | Method and apparatus for providing operating system based on lightweight hypervisor |
US9977690B2 (en) | 2016-05-23 | 2018-05-22 | Red Hat Israel, Ltd. | Hypervisor-visible guest thread management |
WO2019013965A1 (en) | 2017-07-11 | 2019-01-17 | Stratus Technologies Bermuda Ltd. | METHOD FOR FULL PAGE TRACKING AND COMPLETE MEMORY MIRROR REDUNDANCY IN A FAULT TOLERANT SERVER |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7209994B1 (en) * | 2004-05-11 | 2007-04-24 | Advanced Micro Devices, Inc. | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests |
US7552298B2 (en) * | 2006-09-28 | 2009-06-23 | Broadcom Corporation | Method and system for deferred pinning of host memory for stateful network interfaces |
US8479195B2 (en) * | 2007-05-16 | 2013-07-02 | Vmware, Inc. | Dynamic selection and application of multiple virtualization techniques |
US20090113111A1 (en) * | 2007-10-30 | 2009-04-30 | Vmware, Inc. | Secure identification of execution contexts |
US8521966B2 (en) * | 2007-11-16 | 2013-08-27 | Vmware, Inc. | VM inter-process communications |
US9195487B2 (en) * | 2009-05-19 | 2015-11-24 | Vmware, Inc. | Interposition method suitable for hardware-assisted virtual machine |
US8392628B2 (en) * | 2010-07-16 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Sharing memory spaces for access by hardware and software in a virtual machine environment |
US9990216B2 (en) * | 2013-06-27 | 2018-06-05 | Red Hat Israel, Ltd. | Providing hypercall interface for virtual machines |
US9697027B1 (en) * | 2013-07-02 | 2017-07-04 | Ca, Inc. | Hypercall-based security for hypervisors |
US20160285958A1 (en) | 2015-03-27 | 2016-09-29 | Intel Corporation | Application container for live migration of mobile applications |
WO2016205976A1 (en) | 2015-06-26 | 2016-12-29 | Intel Corporation | Apparatus and method for efficient communication between virtual machines |
US10853118B2 (en) | 2015-12-21 | 2020-12-01 | Intel Corporation | Apparatus and method for pattern-driven page table shadowing for graphics virtualization |
US10482567B2 (en) | 2015-12-22 | 2019-11-19 | Intel Corporation | Apparatus and method for intelligent resource provisioning for shadow structures |
-
2019
- 2019-03-28 EP EP19921047.7A patent/EP3948531A4/en not_active Withdrawn
- 2019-03-28 WO PCT/CN2019/080020 patent/WO2020191697A1/en unknown
- 2019-03-28 JP JP2021550264A patent/JP7359858B2/ja active Active
- 2019-03-28 CN CN201980093929.4A patent/CN113614693A/zh active Pending
- 2019-03-28 KR KR1020217027514A patent/KR20210138007A/ko unknown
- 2019-03-28 US US17/431,739 patent/US11960422B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100180276A1 (en) | 2009-01-15 | 2010-07-15 | Jiva Azeem S | Application partitioning across a virtualized environment |
US20170147511A1 (en) | 2015-11-25 | 2017-05-25 | Red Hat Israel, Ltd. | Virtual machine memory lock-down |
US20170153908A1 (en) | 2015-12-01 | 2017-06-01 | Electronics And Telecommunications Research Institute | Method and apparatus for providing operating system based on lightweight hypervisor |
US9977690B2 (en) | 2016-05-23 | 2018-05-22 | Red Hat Israel, Ltd. | Hypervisor-visible guest thread management |
WO2019013965A1 (en) | 2017-07-11 | 2019-01-17 | Stratus Technologies Bermuda Ltd. | METHOD FOR FULL PAGE TRACKING AND COMPLETE MEMORY MIRROR REDUNDANCY IN A FAULT TOLERANT SERVER |
Also Published As
Publication number | Publication date |
---|---|
KR20210138007A (ko) | 2021-11-18 |
US20220129399A1 (en) | 2022-04-28 |
EP3948531A4 (en) | 2022-10-26 |
JP2022534637A (ja) | 2022-08-03 |
WO2020191697A1 (en) | 2020-10-01 |
US11960422B2 (en) | 2024-04-16 |
CN113614693A (zh) | 2021-11-05 |
EP3948531A1 (en) | 2022-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8719464B2 (en) | Efficient memory and resource management | |
US8578129B2 (en) | Infrastructure support for accelerated processing device memory paging without operating system integration | |
US9892056B2 (en) | Multi-core shared page miss handler | |
JP7359858B2 (ja) | 仮想化された環境におけるパススルーデバイスのための直接メモリアクセストラッキング | |
US20230032586A1 (en) | Scalable access control checking for cross-address-space data movement | |
KR20210077588A (ko) | 분산 환경에서 딥 러닝 트레이닝을 최적화하기 위한 런타임에서의 서비스 클래스 속성의 초기화 및 관리 | |
US11907377B2 (en) | Supporting self-modifying graphics workloads in fully virtualized graphics architectures | |
US11048626B1 (en) | Technology to ensure sufficient memory type range registers to fully cache complex memory configurations | |
US20210089467A1 (en) | Page allocation for contiguity-aware translation lookaside buffers | |
WO2022198548A1 (en) | Pasid granularity resource control for iommu | |
US10528398B2 (en) | Operating system visibility into system states that cause delays and technology to achieve deterministic latency | |
CN114064198A (zh) | 经由os接口表的单numa域内的多虚拟numa域 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230613 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230928 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7359858 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |