Ballooning for multi-tiered pooled memory

US11681439B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11681439-B2
Application numberUS-202016914124-A
CountryUS
Kind codeB2
Filing dateJun 26, 2020
Priority dateJun 26, 2020
Publication dateJun 20, 2023
Grant dateJun 20, 2023

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.

An embodiment of an electronic apparatus may include one or more substrates, and logic coupled to the one or more substrates, the logic to allocate a first memory portion to a first application as a combination of a local memory and remote memory, wherein the remote memory is shared between multiple compute nodes, and manage a first memory balloon associated with the first memory portion based on two or more memory tiers associated with the local memory and the remote memory. Other embodiments are disclosed and claimed.

First claim

Opening claim text (preview).

What is claimed is: 1. An electronic apparatus, comprising: one or more substrates; and logic coupled to the one or more substrates, the logic to: allocate a first memory portion to a first application as a combination of a main memory of a compute node and multi-node pooled memory, wherein the multi-node pooled memory is shared between multiple compute nodes, and manage a first memory balloon associated with the first memory portion based on two or more memory tiers associated with the main memory and the multi-node pooled memory. 2. The apparatus of claim 1 , wherein the logic is further to: at least partially inflate the first memory balloon when the first application is first initialized. 3. The apparatus of claim 1 , wherein the first application corresponds to a virtual machine, and wherein the logic is further to: virtually map a first amount of memory for the entire first memory portion for the virtual machine when the virtual machine is instantiated; physically map a second amount of memory from the main memory for the virtual machine when the virtual machine is instantiated, wherein the second amount of memory is less than the first amount of memory; and inflate the first memory balloon based on a third amount of memory that remains to be physically mapped for the first portion of memory. 4. The apparatus of claim 1 , wherein the logic is further to: allocate the first memory balloon to a particular memory tier of the two or more memory tiers associated with the main memory and the multi-node pooled memory based on a performance characteristic associated with the first application. 5. The apparatus of claim 1 , wherein the logic is further to: maintain information that associates respective performance values with one or more tiers of the two or more memory tiers; and in response to a deflation of the first memory balloon, map one or more pages of the first memory balloon to a particular tier of the two or more memory tiers based on an evaluation of a performance characteristic associated with the first application relative to the respective performance values. 6. The apparatus of claim 1 , wherein the logic is further to: determine that the first application needs additional memory outside the first memory balloon; determine a preferred memory tier for the additional memory; and identify a second memory balloon associated with a second memory portion to provide the additional memory based on available memory from the second memory balloon in the preferred memory tier. 7. The apparatus of claim 6 , wherein the logic is further to: inflate the second memory balloon to free the available memory from the second memory portion; and allocate the freed available memory to the first memory portion for the additional memory. 8. An electronic system, comprising: a processor; a local memory communicatively coupled to the processor; and logic communicatively coupled to the processor and the local memory, the logic to: allocate a first memory portion to a first application as a combination of the local memory and remote memory, wherein the remote memory is remote with respect to the local memory and shared between multiple compute nodes, and manage a first memory balloon associated with the first memory portion based on two or more memory tiers associated with the local memory and the remote memory. 9. The system of claim 8 , wherein the first application corresponds to a virtual machine, and wherein the logic is further to: at least partially inflate the first memory balloon when the virtual machine is instantiated. 10. The system of claim 8 , wherein the first application corresponds to a virtual machine, and wherein the logic is further to: virtually map a first amount of memory for the entire first memory portion for the virtual machine when the virtual machine is instantiated; physically map a second amount of memory from the local memory for the virtual machine when the virtual machine is instantiated, wherein the second amount of memory is less than the first amount of memory; and inflate the first memory balloon based on a third amount of memory that remains to be physically mapped for the first portion of memory. 11. The system of claim 8 , wherein the logic is further to: maintain a table that maps respective performance values with each tier of the two or more memory tiers; and in response to a deflation of the first memory balloon, determine a particular tier of the two or more memory tiers based on an evaluation of a performance characteristic associated with the first application relative to the respective performance values in the table, and physically map one or more pages of the first memory balloon to the particular tier. 12. The system of claim 11 , wherein the local memory comprises main memory and wherein the remote memory comprises remote pooled memory. 13. The system of claim 8 , wherein the logic is further to: determine that the first application needs additional memory outside the first memory balloon; determine a preferred memory tier for the additional memory; and identify a second memory balloon associated with a second memory portion to provide the additional memory based on available memory from the second memory balloon in the preferred memory tier. 14. The system of claim 13 , wherein the logic is further to: inflate the second memory balloon to free the available memory from the second memory portion; and allocate the freed available memory to the first memory portion for the additional memory. 15. A method of managing memory, comprising: allocating a first memory portion to a first application as a combination of a local memory of a compute node and pooled memory, wherein the pooled memory is shared between multiple compute nodes; and managing a first memory balloon associated with the first memory portion based on two or more memory tiers associated with the local memory and the pooled memory. 16. The method of claim 15 , further comprising: at least partially inflating the first memory balloon when the first application is first initialized. 17. The method of claim 15 , wherein the first application corresponds to a virtual machine, further comprising: virtually mapping a first amount of memory for the entire first memory portion for the virtual machine when the virtual machine is instantiated; physically mapping a second amount of memory from the local memory for the virtual machine when the virtual machine is instantiated, wherein the second amount of memory is less than the first amount of memory; and inflating the first memory balloon based on a third amount of memory that remains to be physically mapped for the first portion of memory. 18. The method of claim 15 , further comprising: allocating the first memory balloon to a particular memory tier of the two or more memory tiers associated with the local memory and the pooled memory based on a performance characteristic associated with the first application. 19. The method of claim 15 , further comprising, in response to a request to initialize the first application with a first amount of memory for the first memory portion: allocating a second amount of memory from the local memory, where the second amount is less than the first amount; allocating a third amount of memory from the remote memory, where the third amount is less than or equal to a difference between the first amount and the second amount; managing the third amount of memory with the first memory balloon; and pa

Assignees

Inventors

Classifications

  • G06F3/0608Primary

    Saving storage space on storage systems · CPC title

  • by allocating resources to storage systems · CPC title

  • Single storage device · CPC title

  • at area level, e.g. provisioning of virtual or logical volumes · 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 US11681439B2 cover?
An embodiment of an electronic apparatus may include one or more substrates, and logic coupled to the one or more substrates, the logic to allocate a first memory portion to a first application as a combination of a local memory and remote memory, wherein the remote memory is shared between multiple compute nodes, and manage a first memory balloon associated with the first memory portion based …
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F3/0608. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 20 2023 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).