US2023205560A1PendingUtilityA1

Selective memory deduplication for virtualized computer systems

Assignee: RED HAT INCPriority: Dec 30, 2019Filed: Feb 17, 2023Published: Jun 29, 2023
Est. expiryDec 30, 2039(~13.4 yrs left)· nominal 20-yr term from priority
G06F 9/45545G06F 12/0246G06F 12/1009G06F 2009/45583G06F 9/45558G06F 12/1036G06F 2212/151G06F 12/10
69
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A processing device executing a guest receives a request from an application to disable memory deduplication for a memory page associated with the application; identifies a non-mergeable memory range for memory space of the guest, where the non-mergeable memory range is associated with guest memory pages not to be deduplicated; maps, in a page table of the guest, an entry for the memory page to a memory address within the non-mergeable memory range; and causes a host to disable memory deduplication for the memory page responsive to detecting an access of the memory page by the application.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method comprising:
 receiving, by a processing device executing a guest, a request from an application to disable memory deduplication for a memory page associated with the application;   identifying a non-mergeable memory range for memory space of the guest, wherein the non-mergeable memory range is associated with guest memory pages not to be deduplicated;   mapping, in a page table of the guest, an entry for the memory page to a memory address within the non-mergeable memory range; and   causing a host to disable memory deduplication for the memory page responsive to detecting an access of the memory page by the application.   
     
     
         2 . The method of  claim 1 , further comprising:
 receiving, from the host, information indicating the range of memory addresses for the non-mergeable memory range.   
     
     
         3 . The method of  claim 1 , further comprising:
 identifying a portion of a guest physical address (GPA) associated with a range of memory addresses for the non-mergeable memory range; and   setting a value for the portion of the GPA to generate the non-mergeable GPA.   
     
     
         4 . The method of  claim 3 , further comprising:
 responsive to determining that the portion of the GPA is associated with the non-mergeable memory range, modifying the portion of the GPA to generate a mergeable GPA associated with a second memory address within a mergeable memory range; and   storing the mergeable memory range in the entry for the memory page.   
     
     
         5 . The method of  claim 3 , further comprising:
 receiving another request from the application to enable memory deduplication for the memory page;   identifying a mergeable memory range for the memory space of the guest, wherein the mergeable memory range is associated with guest memory pages to be deduplicated;   mapping, in the page table of the guest, the entry for the memory page to a second memory address within the mergeable memory range; and   causing the host to enable deduplication for the memory page responsive to detecting another access of the memory page by the application.   
     
     
         6 . The method of  claim 5 , further comprising:
 identifying the portion of the GPA associated with the range of memory addresses for the mergeable memory range; and   resetting the value for the portion of the GPA to generate the mergeable GPA.   
     
     
         7 . The method of  claim 5 , wherein the host is to:
 detect the access of the memory page by the application;   determine that the entry for the memory page maps to the memory address within the mergeable memory range;   store, in an extended page table (EPT) of the host, an EPT entry for the memory page that associates the mergeable GPA with a host physical address for the memory page in a host memory space; and   perform a memory deduplication operation for the memory page in view of additional EPT entries for corresponding additional guest memory pages within the mergeable range.   
     
     
         8 . A system comprising:
 a memory; and   a processing device, operatively coupled to the memory, executing a guest to:
 receive a request from an application to disable memory deduplication for a memory page associated with the application; 
 identify a non-mergeable memory range for memory space of the guest, wherein the non-mergeable memory range is associated with guest memory pages not to be deduplicated; 
 map, in a page table of the guest, an entry for the memory page to a memory address within the non-mergeable memory range; and 
 cause a host to disable memory deduplication for the memory page responsive to detecting an access of the memory page by the application. 
   
     
     
         9 . The system of  claim 8 , wherein the processing device is further to:
 receive, from the host, information indicating the range of memory addresses for the non-mergeable memory range.   
     
     
         10 . The system of  claim 8 , wherein the processing device is further to:
 identify a portion of a guest physical address (GPA) associated with a range of memory addresses for the non-mergeable memory range; and   set a value for the portion of the GPA to generate the non-mergeable GPA.   
     
     
         11 . The system of  claim 10 , wherein the processing device is further to:
 responsive to determining that the portion of the GPA is associated with the non-mergeable memory range, modify the portion of the GPA to generate a mergeable GPA associated with a second memory address within a mergeable memory range; and   store the mergeable memory range in the entry for the memory page.   
     
     
         12 . The system of  claim 10 , wherein the processing device is further to:
 receive another request from the application to enable memory deduplication for the memory page;   identify a mergeable memory range for the memory space of the guest, wherein the mergeable memory range is associated with guest memory pages to be deduplicated;   map, in the page table of the guest, the entry for the memory page to a second memory address within the mergeable memory range; and   cause the host to enable deduplication for the memory page responsive to detecting another access of the memory page by the application.   
     
     
         13 . The system of  claim 12 , wherein the processing device is further to:
 identify the portion of the GPA associated with the range of memory addresses for the mergeable memory range; and   reset the value for the portion of the GPA to generate the mergeable GPA.   
     
     
         14 . The system of  claim 12 , wherein the host is further to:
 detect the access of the memory page by the application;   determine that the entry for the memory page maps to the memory address within the mergeable memory range;   store, in an extended page table (EPT) of the host, an EPT entry for the memory page that associates the mergeable GPA with a host physical address for the memory page in a host memory space; and   perform a memory deduplication operation for the memory page in view of additional EPT entries for corresponding additional guest memory pages within the mergeable range.   
     
     
         15 . A non-transitory computer readable medium comprising instructions, which when accessed by a processing device executing a guest, cause the processing device to:
 receive a request from an application to disable memory deduplication for a memory page associated with the application;   identify a non-mergeable memory range for memory space of the guest, wherein the non-mergeable memory range is associated with guest memory pages not to be deduplicated;   map, in a page table of the guest, an entry for the memory page to a memory address within the non-mergeable memory range; and   cause a host to disable memory deduplication for the memory page responsive to detecting an access of the memory page by the application.   
     
     
         16 . The non-transitory computer readable storage medium of  claim 15 , wherein the processing device is further to:
 receive, from the host, information indicating the range of memory addresses for the non-mergeable memory range.   
     
     
         17 . The non-transitory computer readable storage medium of  claim 15 , wherein the processing device is further to:
 identify a portion of a guest physical address (GPA) associated with a range of memory addresses for the non-mergeable memory range; and   set a value for the portion of the GPA to generate the non-mergeable GPA.   
     
     
         18 . The non-transitory computer readable storage medium of  claim 17 , wherein the processing device is further to:
 responsive to determining that the portion of the GPA is associated with the non-mergeable memory range, modify the portion of the GPA to generate a mergeable GPA associated with a second memory address within a mergeable memory range; and   store the mergeable memory range in the entry for the memory page.   
     
     
         19 . The non-transitory computer readable storage medium of  claim 17 , wherein the processing device is further to:
 receive another request from the application to enable memory deduplication for the memory page;   identify a mergeable memory range for the memory space of the guest, wherein the mergeable memory range is associated with guest memory pages to be deduplicated;   map, in the page table of the guest, the entry for the memory page to a second memory address within the mergeable memory range; and   cause the host to enable deduplication for the memory page responsive to detecting another access of the memory page by the application.   
     
     
         20 . The non-transitory computer readable storage medium of  claim 19 , wherein the processing device is further to:
 identify the portion of the GPA associated with the range of memory addresses for the mergeable memory range; and   reset the value for the portion of the GPA to generate the mergeable GPA.

Join the waitlist — get patent alerts

Track US2023205560A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.