IP Library › Granted Patent US 11,256,530
Granted Patent B2
US 11,256,530 · App. 16/220,779 · Granted Feb 22, 2022

Targeted page migration for guest virtual machine

Inventors: Yinan Jiang (Markham, CA); Jeffrey G. Cheng (Markham, CA)
Assignee: ATI TECHNOLOGIES ULC
G06F9/45558G06F12/1009G06F2009/4557G06F2009/45583G06T1/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,256,530
App. No.
16/220,779
Granted
Feb 22, 2022
Kind
B2
Abstract

A processing system identifies a subset of pages of memory allocated to a source guest virtual machine (VM) running at a first graphics processing unit (GPU) that were modified by the source guest VM and transferring only the subset to a destination guest VM running at a second GPU when performing a live migration from the source guest VM to the destination guest VM. The first GPU maintains a page table of system memory addresses or frame buffer addresses allocated to and accessed by the source guest VM during a session, including an indication of whether the data was modified. Based on the page table information, the processing system identifies and transfers only the modified pages from the source guest VM to the destination guest VM, thereby reducing the time and bandwidth used for migration.

Claims (61)

1. A method comprising:

identifying a subset of pages of system memory allocated to a first virtual machine, the subset of pages comprising pages modified by a first graphics processing unit (GPU) at the first virtual machine; and

copying only the subset of pages to at least one of system memory, device internal memory, or a device frame buffer allocated to a second virtual machine in response to migrating a client or application from the first virtual machine to the second virtual machine.

2. The method of claim 1 , further comprising:

maintaining, at the first GPU, a page table of addresses of pages of at least one of system memory, device internal memory, or a device frame buffer requested by the first virtual machine, the page table indicating for each page if the page is a subject of at least one of a read/write request or a write request; and

wherein identifying the subset comprises identifying pages that are subjects of read/write requests or write requests based on the page table.

3. The method of claim 2 , further comprising:

tracking, at the page table, pages of system memory and the device frame buffer allocated to the first virtual machine that were modified by the first GPU at the first virtual machine between a first time and a second time; and

wherein identifying is based on the tracked pages.

4. The method of claim 2 , further comprising:

tracking, at the page table, pages of device internal memory that were modified by the first GPU at the first virtual machine between a first time and a second time; and

wherein identifying is based on the tracked pages.

5. The method of claim 1 , further comprising:

identifying a subset of pages of frame buffer memory allocated to the first virtual machine, the subset of pages comprising pages modified by the first GPU at the first virtual machine; and

copying only the subset of pages to frame buffer memory allocated to a second GPU at a second virtual machine in response to migrating a client or application from the first virtual machine to the second virtual machine.

6. The method of claim 5 , further comprising:

tracking, at a page table, pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU at the first virtual machine between a first time and a second time; and

wherein identifying is based on the tracked pages.

7. The method of claim 6 , further comprising:

tracking, at the page table, pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU at the first virtual machine between the second time and a third time, wherein identifying is based on the tracked pages; and

copying the pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU at the first virtual machine between the second time and the third time to the second virtual machine.

8. A method, comprising:

migrating a first virtual machine executing at a first processing unit to a second virtual machine executing at a second processing unit, wherein migrating comprises transferring from the first virtual machine to the second virtual machine only a subset of pages of system memory allocated to the first virtual machine, the subset comprising pages that were modified by a first graphics processing unit (GPU) executing the first virtual machine.

9. The method of claim 8 , further comprising:

maintaining, at the first GPU, a page table comprising entries of addresses of pages of system memory requested by the first virtual machine, the page table indicating for each page if the page is a subject of at least one of a read/write request or a write request; and

identifying the subset based on the entries of the page table.

10. The method of claim 9 , further comprising:

tracking, at the page table, pages of system memory allocated to the first virtual machine that were modified by the first GPU in the first virtual machine between a first time and a second time; and

wherein identifying is based on the tracked pages.

11. The method of claim 9 , further comprising:

tracking, at the page table, pages of device internal memory that were modified by the first GPU at the first virtual machine between a first time and a second time; and

wherein identifying is based on the tracked pages.

12. The method of claim 8 , further comprising:

identifying a subset of pages of frame buffer memory allocated to the first virtual machine, the subset comprising pages modified by the first GPU in the first virtual machine; and

copying only the subset of pages to frame buffer memory allocated to a second GPU in the second virtual machine in response to migrating a client or application from the first virtual machine to the second virtual machine.

13. The method of claim 12 , further comprising:

tracking, at a page table, pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU in the first virtual machine between a first time and a second time; and

wherein identifying the subset of pages of frame buffer memory is based on the tracked pages.

14. The method of claim 13 , further comprising:

tracking, at the page table, pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU in first virtual machine between the second time and a third time, wherein identifying is based on the tracked pages; and

copying the pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU in the first virtual machine between the second time and the third time to the second virtual machine.

15. A processing system, comprising:

a first virtual machine executing at a first processing unit comprising a first graphics processing unit (GPU);

a second processing unit;

a system memory, wherein a portion of pages of system memory is allocated to the first virtual machine; and

one or more hypervisors to migrate the first virtual machine from the first processing unit to a second virtual machine executing at the second processing unit,

wherein the one or more hypervisors are configured to transfer from the first processing unit to at least one of system memory, device internal memory, or a device frame buffer allocated to the second virtual machine only a subset of the portion of pages of system memory allocated to the first virtual machine, the subset comprising pages modified by the first GPU at the first virtual machine, in response to migrating the first virtual machine to the second virtual machine.

16. The processing system of claim 15 , wherein the first processing unit is configured to maintain a page table of addresses of pages of system memory requested by the first virtual machine, the page table indicating for each page if the page is a subject of at least one of a read/write request or a write request, and wherein the subset of the pages is identified based on the page table.

17. The processing system of claim 16 , wherein the page table is further configured to track pages of device internal memory that were modified by the first GPU in the first virtual machine between a first time and a second time; and

wherein the one or more hypervisors are further configured to transfer from the first processing unit to the second processing unit the tracked pages of device internal memory.

18. The processing system of claim 15 , further comprising:

a frame buffer allocated to the first processing unit; and

wherein the hypervisor is further configured to:

identify a subset of pages of frame buffer memory allocated to the first virtual machine, the subset comprising pages modified by the first GPU in the first virtual machine; and

transfer only the subset of pages to frame buffer memory allocated to the second virtual machine in response to migrating a client or application from the first virtual machine to the second virtual machine.

19. The processing system of claim 18 , wherein the hypervisor is further to:

track, at a page table, pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU in the first virtual machine between a first time and a second time; and

identify the subset of pages of frame buffer memory based on the tracked pages.

20. The processing system of claim 19 , wherein the hypervisor is further to:

track, at the page table, pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU in the first virtual machine between the second time and a third time; and

transfer the pages of frame buffer memory allocated to the first virtual machine that were modified by the first GPU in the first virtual machine between the second time and the third time to the second virtual machine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2019
From: JIANG, YINAN; CHENG, JEFFREY G.
To: ATI TECHNOLOGIES ULC
Reel/Frame 048067/0239 →
Continuity (1)
Related Publication 20200192691A1 · Jun 18, 2020
Cited By (1)
US 12,639,090