Optimized extended context management for virtual machines

US2016253196A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016253196-A1
Application numberUS-201514634164-A
CountryUS
Kind codeA1
Filing dateFeb 27, 2015
Priority dateFeb 27, 2015
Publication dateSep 1, 2016
Grant date

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 system comprising: a memory; one or more processors, in communication with the memory; one or more virtual machines executing on the one or more processors; and a kernel executing on the one or more processors to: execute a virtual machine 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; 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 the kernel is configured to handle the process using a kernel space; responsive to determining that the kernel is configured to handle the process using the kernel space: handle the process using the kernel space without using a user space; after handling the process using the kernel space, resume execution of the virtual machine using the guest space; and responsive to determining that the kernel is not configured to handle the process using the kernel space: restore a user state in the extended state register; handle the process using 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 handling the process using the user space and saving the copy of the updated user state, restore the guest state in the extended state register; after restoring the guest state in the extended state register, resume execution of 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 the user state and the guest state in the extended state register over a period of time, where the user state and the guest state both relate to a task; stop execution of a different task; receive an instruction to resume handling the task; restore one of the user state of the task and the guest state of the task based on previous usage of the user state and the guest state; determine whether the task is being handled in one of user space and guest space; ensure access to one of the user state and the guest state is enabled; and handle the task with access to the extended state register enabled. 12 . A method comprising: executing a virtual machine using a guest space; storing 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; 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 a kernel is configured to handle the process using a kernel space; responsive to determining that the kernel is configured to handle the process using the kernel space: handling the process using the kernel space without using a user space; after handling the process using the kernel space, resuming execution of the virtual machine using the guest space; and responsive to determining that the kernel is not configured to handle the process using the kernel space: restoring a user state in the extended state register; handling the process using 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 handling the process using the user space and saving the copy of the updated user state, restoring the guest state in the extended state register; after restoring the guest state in the extended state register, resuming execution of 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 the user state and the guest state in the extended state register over a period of time, where the user state and the guest state both relate to a task; stopping execution of a different task; receiving an instruction to resume handling the task; restoring one of the user state of the task and the guest state of the task based on previous usage of the user state and the guest state; determining whether the task is being handled in one of user space and guest space; ensuring access to one of the user state and the guest state is enabled; and handling the task with access to the extended state register enabled. 20 . A 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 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 a kernel is configured to handle the process using a kernel space; responsive to determining that the kernel is configured to handle the process using the kernel space: handle the process using the kernel space without using a user space; after handling the process using the kernel space, resume execution of the virtual machine using the guest space; and responsive to determining that the kernel is not configured to handle the process using the kernel space: restore a user state in the extended state register; handle the process using 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 extend

Assignees

Inventors

Classifications

  • Creating, deleting, cloning virtual machine instances · CPC title

  • the resource being the memory · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Saving or restoring of program or task context · CPC title

  • I/O management, e.g. providing access to device drivers or storage · 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 US2016253196A1 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 Thu Sep 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).