Adjusting guest memory allocation in virtual non-uniform memory architecture (NUMA) nodes of a virtual machine

US10705879B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10705879-B2
Application numberUS-201615355754-A
CountryUS
Kind codeB2
Filing dateNov 18, 2016
Priority dateMar 26, 2009
Publication dateJul 7, 2020
Grant dateJul 7, 2020

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.

Techniques for effectuating a virtual Non-Uniform Memory Architecture (NUMA) for virtual machines and adjusting memory in virtual NUMA nodes are described. The virtual NUMA node topology may include a plurality of virtual NUMA nodes. The memory may be adjusted based on pressure in a specific virtual NUMA node of the plurality and an amount of guest memory assigned to the specific virtual NUMA node.

First claim

Opening claim text (preview).

What is claimed: 1. A method, comprising: receiving a request to instantiate a virtual machine; selecting a virtual non-uniform memory architecture (NUMA) node topology for the virtual machine, the virtual NUMA node topology including a plurality of virtual NUMA nodes; instantiating the virtual machine on a computer system, the virtual machine including the plurality of virtual NUMA nodes; and adjusting an amount of guest memory assigned to a specific virtual NUMA node by a second amount of guest memory, wherein the adjusting comprises exchanging the second amount of guest memory between the specific virtual NUMA node and a second virtual NUMA node of the plurality of virtual NUMA nodes. 2. The method of claim 1 , wherein adjusting an amount of guest memory assigned to the specific virtual NUMA node is based at least in part on memory pressure in the second virtual NUMA node. 3. The method of claim 1 , further comprising: sending a message to a guest operating system running on the specific virtual NUMA node, wherein the message indicates that at least one memory block of guest memory has been added to the specific virtual NUMA node. 4. The method of claim 1 , further comprising: associating at least one memory block of guest memory with system memory prior to adding, during runtime execution of the virtual machine, guest memory to the specific virtual NUMA node. 5. The method of claim 1 , further comprising: removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node. 6. The method of claim 5 , wherein removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node is based at least in part on memory pressure of the specific virtual NUMA node. 7. The method of claim 5 , wherein the removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node, further comprises: disassociating at least one memory block of guest memory of the specific virtual NUMA node from system memory. 8. A computer system, comprising: circuitry for receiving a request to instantiate a virtual machine; circuitry for selecting a virtual non-uniform memory architecture (NUMA) node topology for the virtual machine, the virtual NUMA node topology including a plurality of virtual NUMA nodes; circuitry for instantiating the virtual machine on a computer system, the virtual machine including the plurality of virtual NUMA nodes; and circuitry for adjusting an amount of guest memory assigned to a specific virtual NUMA node by a second amount of guest memory, wherein the adjusting comprises exchanging the second amount of guest memory between the specific virtual NUMA node and a second virtual NUMA node of the plurality of virtual NUMA nodes. 9. The computer system of claim 8 , wherein the amount of guest memory assigned to the specific virtual NUMA node is based at least in part on memory pressure in the second virtual NUMA node. 10. The computer system of claim 8 , further comprising: circuitry for sending a message to a guest operating system running on the specific virtual NUMA node, wherein the message indicates that at least one memory block of guest memory has been added to the specific virtual NUMA node. 11. The computer system of claim 8 , further comprising: circuitry for associating at least one memory block of guest memory with system memory prior to adding, during runtime execution of the virtual machine, guest memory to the specific NUMA node. 12. The computer system of claim 8 , further comprising: circuitry for removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node. 13. The computer system of claim 12 , wherein the removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node is based at least in part on memory pressure of the specific virtual NUMA node. 14. The computer system of claim 12 , wherein the circuitry for removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node, further comprises: circuitry for disassociating at least one memory block of guest memory of the specific virtual NUMA node from system memory. 15. A non-transitory computer readable medium including processor-executable instructions, comprising: instructions for receiving a request to instantiate a virtual machine; instructions for selecting a virtual non-uniform memory architecture (NUMA) node topology for the virtual machine, the virtual NUMA node topology including a plurality of virtual NUMA nodes; instructions for instantiating the virtual machine on a computer system, the virtual machine including the plurality of virtual NUMA nodes; and instructions for adjusting an amount of guest memory assigned to a specific virtual NUMA node by a second amount of guest memory, the second amount of guest memory being exchanged between the specific virtual NUMA node and a second virtual NUMA node of the plurality of virtual NUMA nodes. 16. The non-transitory computer readable medium of claim 15 , wherein the amount of guest memory assigned to the specific virtual NUMA node is based at least in part on memory pressure in the second virtual NUMA node. 17. The non-transitory computer readable medium of claim 15 , further comprising: instructions for associating at least one memory block of guest memory with system memory prior to adding, during runtime execution of the virtual machine, guest memory to the specific virtual NUMA node. 18. The non-transitory computer readable medium of claim 15 , further comprising: instructions for removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node. 19. The non-transitory computer readable medium of claim 18 , wherein the removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node is based at least in part on memory pressure of the specific virtual NUMA node. 20. The non-transitory computer readable medium of claim 18 , wherein the instructions for removing, during runtime execution of the virtual machine, guest memory from the specific virtual NUMA node, further comprise: instructions for disassociating at least one memory block of guest memory of the specific virtual NUMA node from system memory.

Assignees

Inventors

Classifications

  • Multiple user address space allocation, e.g. using different base addresses (interprocessor communication G06F15/163) · CPC title

  • Resource optimization · CPC title

  • the resource being the memory · CPC title

  • Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning (casings, cabinets, racks or drawers for data centers H05K5/00) · CPC title

  • Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines · 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 US10705879B2 cover?
Techniques for effectuating a virtual Non-Uniform Memory Architecture (NUMA) for virtual machines and adjusting memory in virtual NUMA nodes are described. The virtual NUMA node topology may include a plurality of virtual NUMA nodes. The memory may be adjusted based on pressure in a specific virtual NUMA node of the plurality and an amount of guest memory assigned to the specific virtual NUMA n…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/0284. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 07 2020 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).