Guest Enlightened Virtual Faults

US2018046536A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2018046536-A1
Application numberUS-201615343970-A
CountryUS
Kind codeA1
Filing dateNov 4, 2016
Priority dateAug 9, 2016
Publication dateFeb 15, 2018
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.

Processing faults in a virtual computing environment. A method includes receiving a request to perform a memory access for a virtual machine. The method further includes identifying that that the memory access is unable to be performed without taking a fault. The method further includes identifying that a virtual fault can be taken to service the fault. The virtual fault is taken by servicing the fault asynchronously with respect to the virtual machine. The method further includes identifying that a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously. As a result of identifying that a virtual fault should be taken, the method farther includes notifying the virtual machine that a virtual fault should be taken for the memory access. The method further includes servicing the fault asynchronously with respect to the virtual machine.

First claim

Opening claim text (preview).

What is claimed is: 1 . A system comprising: one or more processors; and one or more computer-readable media having stored thereon instructions that are executable by the one or more processors to configure the computer system to process faults in a virtual computing environment, including instructions that are executable to configure the system to perform at least the following: receive a request to perform a memory access for a virtual machine; identify that that the memory access is unable to be performed without taking a fault; identify that a virtual fault can be taken to service the fault, where the virtual fault is taken by servicing the fault asynchronously with respect to the virtual machine; identify that a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously; as a result of identify that a virtual fault should be taken, notifying the virtual machine that a virtual fault should be taken for the memory access; and service the fault asynchronously with respect to the virtual machine. 2 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria indicating how long the fault will take to service. 3 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria indicating whether the fault is a hard fault or a soft fault. 4 . The system of claim 1 , wherein evaluating criteria to weigh taking virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether or not a memory page needs to be zeroed to service the fault. 5 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether or not a memory page needs to be decompressed to service the fault. 6 . The system of claim 1 , wherein evaluating criteria to weigh taking a a fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying priority of one or more virtual machines. 7 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying evaluating priority of one or more threads scheduled to be run by virtual machines. 8 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying a rate at which faults are occurring. 9 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether there are other runnable threads at the virtual machine. 10 . The system of claim 1 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying a cost for synchronous fault servicing versus a cost for asynchronous fault servicing. 11 . A computer implemented method for processing faults in a virtual computing environment, the method comprising: receiving a request to perform a memory access for a virtual machine; identifying that that the memory access is unable to be performed without taking a fault; identifying that a virtual fault can be taken to service the fault,-here the virtual fault is taken by servicing the fault asynchronously with respect to the virtual machine; identifying that a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously; as a result of identifying that a virtual fault should be taken, notifying the virtual machine that a virtual fault should be taken for the memory access; and servicing the fault asynchronously with respect to the virtual machine. 12 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria indicating how long the fault will take to service. 13 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria indicating whether the fault is a hard fault or a soft fault. 14 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether or not a memory page needs to be zeroed to service the fault. 15 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether or not a memory page needs to be decompressed to service the fault. 16 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying priority of one or more virtual machines. 17 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying evaluating priority of one or more threads scheduled to be run by virtual machines. 18 . The method of claim 11 , wherein evaluating criteria to weigh taking a a fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying a rate at which faults are occurring. 19 . The method of claim 11 , wherein evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously comprises evaluating criteria identifying whether there are other runnable threads at the virtual machine. 20 . A host computer system comprising: a host portion, the host portion comprising one or more physical processors for hosting virtual processors for virtual machines; a hypervisor coupled to the host portion, wherein the hypervisor manages running virtual machines on the host computer system; one or more virtual machines, wherein at least one of the one or more virtual machines comprises a guest virtual machine enlightenment that allows the hypervisor to notify a guest virtual machine that it has taken such an intercept to allow the guest virtual machine to de-schedule a current faulting thread from a physical processor; and wherein the hypervisor is configured to determine if a virtual fault should be taken by evaluating criteria to weigh taking a virtual fault for servicing the fault asynchronously versus servicing the fault synchronously.

Assignees

Inventors

Classifications

  • Hypervisor-specific management and integration aspects · CPC title

  • Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40) · CPC title

  • Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06) · CPC title

  • Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers · CPC title

  • Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36) · 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 US2018046536A1 cover?
Processing faults in a virtual computing environment. A method includes receiving a request to perform a memory access for a virtual machine. The method further includes identifying that that the memory access is unable to be performed without taking a fault. The method further includes identifying that a virtual fault can be taken to service the fault. The virtual fault is taken by servicing t…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
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 Feb 15 2018 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).