Memory page de-duplication in a computer system that includes a plurality of virtual machines

US9342336B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9342336-B2
Application numberUS-201313832530-A
CountryUS
Kind codeB2
Filing dateMar 15, 2013
Priority dateMar 14, 2013
Publication dateMay 17, 2016
Grant dateMay 17, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Memory page de-duplication in a computer system that includes a plurality of virtual machine partitions managed by a hypervisor, where each virtual machine is assigned a different dedicated memory partition, may include: identifying, by the hypervisor, a plurality of identical memory pages in memory of one or more dedicated memory partitions; assigning, by the hypervisor, one of the identical memory pages as a master page; mapping, for each virtual machine having an identical memory page, each of the identical memory pages to the master page; and directing, by the hypervisor, reads of the memory page to the master page.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of memory page de-duplication in a computer system comprising a plurality of virtual machine partitions managed by a hypervisor, wherein each virtual machine is assigned a different dedicated memory partition, the method comprising: managing a plurality of virtual machine partitions by a hypervisor, each virtual machine being assigned a different dedicated memory partition; identifying, by the hypervisor, a plurality of identical memory pages in memory of one or more dedicated memory partitions; assigning, by the hypervisor, one of the identical memory pages as a master page, including mapping, for each virtual machine, each of the identical memory pages to the master page, wherein mapping, for each virtual machine, each of the identical memory pages to the master page comprises: maintaining, for each virtual machine, a logical page information table with each entry representing a logical address of a page of memory for the virtual machine, wherein each entry indicates whether the page at the logical address is mapped to the master page; and in response to a write to the master page by a virtual machine whose assigned dedicated memory partition includes the master page, performing operations including: assigning, by the hypervisor, a different identical memory page as a new master page; and remapping, for each virtual machine, each of the identical memory pages to the new master page; and directing, by virtual machines having an identical memory page mapped to the master page, reads of the identical memory page to the master page. 2. The method of claim 1 , further comprising: upon a write to the master page by a virtual machine, remapping, by the hypervisor, the virtual machine's mapping from the master page to the identical memory page in the virtual machine's dedicated memory partition. 3. The method of claim 1 , wherein mapping, for each virtual machine, each of the identical memory pages to the master page further comprises: maintaining, for each virtual machine, a hardware page information table with each entry associated with an entry of a hardware page table of the virtual machine, each entry of the hardware page table representing a hardware address of a page for the virtual machine and each entry of the hardware page information table including an indication as to whether the hardware address of the page is mapped to a master page; and maintaining, for each master page, an array of objects, wherein each different object is associated with a different virtual machine and a different page mapped to the master page and each object includes: a virtual machine identifier that identifies the virtual machine having a page mapped to the master page; a forward pointer that points to a subsequent object in the array of objects for the master page; a back pointer that points to a previous object in the array of objects for the master mage; and a pointer to the memory address of the master page; each separate entry of a virtual machine's hardware page information table including an indication that the hardware address of a page is mapped to the master page further comprises a pointer to a separate one of the objects associated with the virtual machine in the array for the master page; and every entry of a virtual machine's logical page information table that represents a logical address of a page mapped to the master page includes a pointer to a first object associated with the virtual machine in the array for the master page. 4. The method of claim 3 , further comprising: upon a write to the master page by a write-accessing virtual machine: removing, from the array for the master page, an object associated with the write-accessing virtual machine; updating the forward and back pointers of one or more remaining objects of the array; and removing the mapping of the virtual machine's identical memory page to the master page. 5. The method of claim 4 , further comprising identifying, by the hypervisor, a write to a master page, including: receiving calls, from the virtual machine, into the hypervisor, each call representing a memory access request. 6. The method of claim 1 , wherein mapping, for each virtual machine each of the identical memory pages to the master page further comprises: maintaining, for each master page, an array of objects, wherein each different object is associated with a different virtual machine and a different page mapped to the master page and each object includes a logical page number comprising an index into the logical page information table and utilized by the hypervisor for logical to physical address translation. 7. The method of claim 1 , wherein mapping, for each virtual machine each of the identical memory pages to the master page further comprises: maintaining, for each master page, an array of objects, wherein each different object is associated with a different virtual machine and a different page mapped to the master page and each object includes a hardware page table index into an entry of the virtual machine's hardware page table at the entry representing the hardware address of the page mapped to the master page. 8. The method of claim 1 wherein identifying, the hypervisor, a plurality of identical memory pages in memory of one or more dedicated memory partitions includes: applying a hashing algorithm to a plurality of memory pages of the one or more dedicated memory partitions to create respective hash values; comparing the respective hash values; in response to one or more of the respective hash values matching, identifying the corresponding memory pages as the identical memory pages. 9. The method of claim 3 , wherein in response to a write to the master page by a virtual machine whose assigned dedicated memory partition includes the master page, further comprises an operation including updating the hardware page information table, the hardware page table, and the logical page information table. 10. The method of claim 4 further comprising identifying, by the hypervisor, a write to a master page, including receiving redirected interrupts responsive to memory accesses by one or more of the virtual machines.

Assignees

Inventors

Classifications

  • Hypervisor-specific management and integration aspects · CPC title

  • Memory management, e.g. access or allocation · CPC title

  • Hypervisors; Virtual machine monitors · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9342336B2 cover?
Memory page de-duplication in a computer system that includes a plurality of virtual machine partitions managed by a hypervisor, where each virtual machine is assigned a different dedicated memory partition, may include: identifying, by the hypervisor, a plurality of identical memory pages in memory of one or more dedicated memory partitions; assigning, by the hypervisor, one of the identical m…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 17 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).