Optimized extended context management for virtual machines

US9715403B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9715403-B2
Application numberUS-201514634164-A
CountryUS
Kind codeB2
Filing dateFeb 27, 2015
Priority dateFeb 27, 2015
Publication dateJul 25, 2017
Grant dateJul 25, 2017

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.

Optimized extended context management for virtual machines is disclosed. An example system includes a memory, processor, VM, and kernel, which executes the VM using guest space, stores a guest state in an extended state register, which the VM has access to, receives an instruction, saves the guest state, and determines whether the kernel is configured to handle the process using kernel space. If so, the process is handled using kernel space without using user space, and if not, a user state in the extended state register is restored, the process is handled using user space, an updated user state is stored in the extended state register, the updated user state is saved, and the guest state is restored in the extended state register. Finally, execution of the VM using the guest space is resumed.

First claim

Opening claim text (preview).

The invention is claimed as follows: 1. A host system comprising: a memory including a reserve memory; one or more processors, in communication with the memory; one or more virtual machines executing on the one or more processors; one or more interconnected nodes; and a kernel executing on the one or more processors to: execute a virtual machine of the one or more virtual machines using a guest space; store a guest state in an extended state register based on the execution of the virtual machine, wherein the virtual machine has access to the extended state register located in a node of the one or more interconnected nodes; receive an instruction for handling a process outside of the guest space; save a copy of the guest state in the reserve memory outside the extended state register; determine whether handling the process requires access to the extended state register; responsive to determining that handling the process does not require access to the extended state register: handle the process using a kernel space without using a user space; and after the process is handled by the kernel space, determine whether the guest state is still loaded; if the guest state is not still loaded, then the guest state is restored and the process switches to the guest space and continues execution; and if the guest state is still loaded, then the process switches to the guest space and continues execution; and responsive to determining that handling the process requires access to the extended state register: restore a user state, from the reserve memory to the extended state register; handle the process using the user space; after the process is handled by the user space, store an updated user state in the extended state register; save a copy of the updated user state in the reserve memory outside the extended state register; after storing the updated user state in the extended state register, determine that the guest space will next require the extended state register; restore the guest state to the extended state register, upon switching to the guest space; and continue executing the virtual machine using the guest space. 2. The system of claim 1 , wherein the kernel includes a hypervisor and a context switch module. 3. The system of claim 1 , wherein the kernel includes a kernel-based virtual machine (KVM). 4. The system of claim 1 , wherein the extended state register includes a floating point unit register (FPU register). 5. The system of claim 1 , wherein the extended state register includes a vector register. 6. The system of claim 1 , wherein the extended state register includes an FPU register and a vector register. 7. The system of claim 1 , wherein the instruction is a virtual machine exit instruction. 8. The system of claim 1 , wherein the instruction is an interrupt. 9. The system of claim 1 , wherein the extended state register is not overwritten during the handling of the process using the kernel space. 10. The system of claim 1 , wherein the reserve memory includes a first memory location for the guest state and a second different memory location for the updated user state. 11. The system of claim 1 , wherein the kernel further executes to: track a previous usage of the extended state register by the user state and the guest state over a period of time; and after handling the process and storing the updated user state in the extended state register, restore one of the user state and the guest state to the extended state register based on the previous usage of the user state and the guest state prior to a subsequent request by one of the user state and the guest state to access the extended state register. 12. A method comprising: executing a virtual machine using a guest space; storing a guest state in an extended state register located in a node based on the execution of the virtual machine, wherein the virtual machine has access to the extended state register; receiving an instruction for handling a process outside of the guest space; saving a copy of the guest state in a reserve memory outside the extended state register; determining whether handling the process requires access to the extended state register; responsive to determining that handling the process does not require access to the extended state register: handling the process using a kernel space without using a user space; and after the process is handled by the kernel space, determining whether the guest state is still loaded; if the guest state is not still loaded, then restoring the guest state and switching the process to the guest space and continuing execution; and if the guest state is still loaded, then switching the process to the guest space and continuing execution; and responsive to determining that handling the process requires access to the extended state register: restoring a user state, from the reserve memory to the extended state register; handling the process using the user space; after the process is handled by the user space, storing an updated user state in the extended state register; saving a copy of the updated user state in the reserve memory outside the extended state register; after storing the updated user state in the extended state register, determining that the guest space will next require the extended state register; restoring the guest state to the extended state register, upon switching to the guest space; and continuing executing the virtual machine using the guest space. 13. The method of claim 12 , wherein the guest state includes a guest floating point unit state. 14. The method of claim 12 , wherein the guest state includes a guest vector state. 15. The method of claim 12 , wherein the guest state includes guest floating point unit state and a guest vector state. 16. The method of claim 12 , wherein the instruction is at least one of a virtual machine exit instruction and an interrupt. 17. The method of claim 12 , wherein the extended state register is not overwritten during the handling of the process using the kernel space. 18. The method of claim 12 , wherein the reserve memory includes a first memory location for the guest state and a second different memory location for the updated user state. 19. The method of claim 12 , further comprising: tracking a previous usage of the extended state register by the user state and the guest state over a period of time; and after handling the process and storing the updated user state in the extended state register, restoring one of the user state and the guest state to the extended state register based on the previous usage of the user state and the guest state prior to a subsequent request by one of the user state and the guest state to access the extended state register. 20. A non-transitory computer-readable storage medium storing executable instructions which, when executed by a computer system, cause the computer system to: execute a virtual machine using a guest space; store a guest state in an extended state register located in a node based on the execution of the virtual machine, wherein the virtual machine has access to the extended state register; receive an instruction for handling a process outside of the guest space; save a copy of the guest state in a reserve memory outside the extended state register; determine whether handling the process requires access to the extended state register; responsive to determining that handling the process does not require access to the exte

Assignees

Inventors

Classifications

  • Starting, stopping, suspending or resuming virtual machine instances · CPC title

  • the resource being the memory · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • by interrupt, e.g. masked · CPC title

  • Saving or restoring of program or task context · 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 US9715403B2 cover?
Optimized extended context management for virtual machines is disclosed. An example system includes a memory, processor, VM, and kernel, which executes the VM using guest space, stores a guest state in an extended state register, which the VM has access to, receives an instruction, saves the guest state, and determines whether the kernel is configured to handle the process using kernel space. I…
Who is the assignee on this patent?
Red Hat Inc
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 Jul 25 2017 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).